readback.py

back to table · edit · history · where entries came from · files · download

930 bytes, as of the version from 2026-11-10 02:09 (current). Recorded here, not run.

import sys,json
from decimal import Decimal
import numberdb.sage as numberdb
from sage.rings.real_arb import RealBallField
from sage.rings.rational_field import QQ
from generate import Table
from checks import run
from flatten import to_records
key=sys.stdin.read().strip()
if '=' in key and key.split('=',1)[0].isupper():key=key.split('=',1)[1].strip().strip('\'"')
c=numberdb.Client(api_key=key)
doc=numberdb.table('T703',client=c);R=RealBallField(768);values={}
print('ENVIRONMENT_JSON '+json.dumps(Table().environment()),flush=True)
for row in to_records(doc):
 p=row['params'];key=tuple(int(p[k]) for k in Table.parameters)
 text=row['number'];d=Decimal(text);numer,denom=d.as_integer_ratio()
 # A plain written decimal denotes +/- one unit in its last place.
 value=R(QQ(numer)/QQ(denom)).add_error(R(10)**int(d.as_tuple().exponent))
 values[key]=value
report=run(values)
print('READBACK_EVIDENCE_JSON '+json.dumps(report))