import json import argparse from pathlib import Path import requests from agent import ROOT, API from run import save def main(): parser = argparse.ArgumentParser() parser.add_argument('--preview',action='store_true',help='Save submission JSON without sending it') args = parser.parse_args() config = json.loads((ROOT/'config.json').read_text(encoding='utf-8-sig')) records = json.loads((ROOT/'results/v2/answers.json').read_text(encoding='utf-8')) answers = [{k:x[k] for k in ('task_id','submitted_answer')} for x in records if not x.get('error') and x.get('submitted_answer')] if not answers: raise ValueError('No answers to submit') payload = {'username':config['username'],'agent_code':config['agent_code'],'answers':answers} save(ROOT/'results/v2/submission.json',payload) if args.preview: print('Prepared',len(answers),'answers for',config['username'],'without submitting') return response = requests.post(API+'/submit',json=payload,timeout=120) response.raise_for_status() save(ROOT/'results/v2/score.json',response.json()) print(response.json()) if __name__=='__main__': main()