#!/usr/bin/env python3 """Explain the role of ML and the limits of a paper-inspired pilot.""" import argparse,json,sys from pathlib import Path import pandas as pd ROOT=Path(__file__).resolve().parents[1];sys.path.insert(0,str(ROOT/'backend')) from app.research.artifacts import load_platform_results,digest def report(bundle,output): bundle=Path(bundle);output=Path(output);result=load_platform_results(bundle) if result['status']!='complete':raise ValueError(result.get('reason')) r=result['research'];output.mkdir(parents=True,exist_ok=False) trials={t['candidate']['name']:t for t in r['trials']} baseline=trials['conditional_ridge_control']['summary']['net_pnl'];equal=trials['conditional_equal']['summary']['net_pnl'] rows=[] for name,t in trials.items(): d=pd.read_csv(bundle/f'{name}_cost5/daily.csv') rows.append(dict(candidate=name,**t['summary'],versus_ridge=t['summary']['net_pnl']-baseline, versus_equal=t['summary']['net_pnl']-equal,first_five=d.net_pnl.iloc[:5].sum(),last_four=d.net_pnl.iloc[5:].sum())) training=json.loads((bundle/f'{name}_cost5/training.json').read_text()) assert all(x['last_train']