"""Run the Python model using candidate metadata; never fill a learner verdict."""
from pathlib import Path
import argparse,json
from api_model import ApiModel
L=Path(__file__).resolve().parent
if __name__=='__main__':
 p=argparse.ArgumentParser(description=__doc__);p.add_argument('--case');p.add_argument('--fixture',type=Path,default=L/'fixtures/baseline.json');a=p.parse_args()
 contracts=json.loads((L/'contracts.json').read_text());fixture=json.loads(a.fixture.read_text());impl=fixture['implementation'];ids=contracts['profiles'][fixture['profile']]['required_case_ids']
 if a.case and a.case not in ids:raise SystemExit('Choose a required case ID from contracts.json for this profile.')
 output=[{'case_id':cid,'observation':ApiModel(impl).run(contracts['case_specs'][cid])} for cid in ([a.case] if a.case else ids)]
 print(json.dumps({'execution_kind':'ACTUAL_PYTHON_MODEL','aspnet_core_executed':False,'network_opened':False,'cases':output},ensure_ascii=False,indent=2))
