"""Pinned source-derived numerical inference. Research fixtures only.""" from pathlib import Path import json,sys,argparse ROOT=Path(__file__).resolve().parent sys.path.insert(0,str(ROOT)) from humanization_research.parameters import ParameterPack,ContractError from humanization_research.predictors import NCLPredictor,MRIPredictor,RhythmPredictor PIN='f687e0fdcf1f807988d275102cbe2c8c21e923e959ef2ec8356f90c189b89e7b' PRODUCT='rhythm' def run(request): if type(request)!=dict or request.get('synthetic') is not True:raise ContractError('Synthetic research-use declaration required; patient execution is disabled') p=ParameterPack(ROOT/'parameters',PIN) f=request.get('features') if PRODUCT=='ncl':return NCLPredictor(p).run(f,synthetic=True) if PRODUCT=='mri':return MRIPredictor(p).run(f,space=request.get('space','huret'),variant=request.get('variant','optimized'),synthetic=True) return RhythmPredictor(p).run(f,synthetic=True,acknowledge_export_version_mismatch=request.get('acknowledge_export_version_mismatch') is True) def main(): ap=argparse.ArgumentParser();ap.add_argument('--request',type=Path,default=ROOT/'example.json');a=ap.parse_args() if a.request.stat().st_size>1000000:raise ValueError('Request too large') def pairs(items): out={} for k,v in items: if k in out:raise ValueError('Duplicate JSON key') out[k]=v return out request=json.loads(a.request.read_text(),object_pairs_hook=pairs,parse_constant=lambda _:(_ for _ in ()).throw(ValueError('Nonfinite JSON'))) print(json.dumps(run(request),ensure_ascii=False,indent=2,allow_nan=False)) if __name__=='__main__': try:main() except (OSError,ValueError,TypeError,KeyError) as e:print(json.dumps({'status':'ERROR','reason':str(e)}),file=sys.stderr);raise SystemExit(2)