3131if str (HERE ) not in sys .path :
3232 sys .path .insert (0 , str (HERE ))
3333
34- import freshdata as fd # noqa: E402
35-
3634import harness_metrics as hm # noqa: E402
35+ from results_schema import SCHEMA_VERSION # noqa: E402
36+
37+ import freshdata as fd # noqa: E402
3738from fixtures import REGISTRY # noqa: E402
38- from results_schema import RESULTS_SCHEMA , SCHEMA_VERSION # noqa: E402
3939
4040RESULTS_DIR = HERE / "results"
4141
@@ -143,13 +143,16 @@ def _write_result(run_id: str, result: dict) -> Path:
143143def cmd_run (args : argparse .Namespace ) -> int :
144144 run_id = _now ()
145145 fixtures = args .fixtures or list (DEFAULT_SIZES )
146- print (f"benchmark run { run_id } freshdata={ fd .__version__ } mode={ 'aggressive' if args .aggressive else 'balanced' } " )
146+ mode = "aggressive" if args .aggressive else "balanced"
147+ print (f"benchmark run { run_id } freshdata={ fd .__version__ } mode={ mode } " )
147148 summary_rows = []
148149 for name in fixtures :
149150 size = args .size or DEFAULT_SIZES [name ]
150- result = run_single (name , size , seed = args .seed , aggressive = args .aggressive , repeat = args .repeat )
151+ result = run_single (
152+ name , size , seed = args .seed , aggressive = args .aggressive , repeat = args .repeat
153+ )
151154 result ["run_id" ] = run_id
152- path = _write_result (run_id , result )
155+ _write_result (run_id , result )
153156 m = result ["metrics" ]
154157 print (f" { name :12s} n={ result ['n_rows' ]:>8,} cols={ result ['n_cols' ]:>4} "
155158 f"p50={ m ['wall_clock_p50_sec' ]:.3f} s peak={ m ['peak_memory_mb' ]:.1f} MB "
@@ -182,7 +185,10 @@ def cmd_compare(args: argparse.Namespace) -> int:
182185 config = hm .config_for (name , df )
183186
184187 print (f"compare on { name } n={ len (df ):,} cols={ df .shape [1 ]} \n " )
185- header = f"{ 'tool' :24s} { 'n_rows' :>8} { 'n_cols' :>6} { 'p50_sec' :>8} { 'p95_sec' :>8} { 'peak_mb' :>8} mode"
188+ header = (
189+ f"{ 'tool' :24s} { 'n_rows' :>8} { 'n_cols' :>6} "
190+ f"{ 'p50_sec' :>8} { 'p95_sec' :>8} { 'peak_mb' :>8} mode"
191+ )
186192 print (header )
187193 print ("-" * len (header ))
188194
@@ -258,16 +264,20 @@ def _render_markdown(run_id: str, results: list[dict]) -> str:
258264 f"- python: `{ results [0 ]['python_version' ] if results else '?' } `" ,
259265 f"- platform: `{ results [0 ]['platform' ] if results else '?' } `" ,
260266 "" ,
261- "| fixture | n_rows | n_cols | p50 s | p95 s | peak MB | repair % | false-repair % | preserve % | trust | monotonic | export % |" ,
267+ "| fixture | n_rows | n_cols | p50 s | p95 s | peak MB | repair % "
268+ "| false-repair % | preserve % | trust | monotonic | export % |" ,
262269 "|---|--:|--:|--:|--:|--:|--:|--:|--:|--:|:--:|--:|" ,
263270 ]
264271 for r in sorted (results , key = lambda x : x ["fixture" ]):
265272 m = r ["metrics" ]
266273 lines .append (
267274 f"| { r ['fixture' ]} | { r ['n_rows' ]:,} | { r ['n_cols' ]} | "
268- f"{ m ['wall_clock_p50_sec' ]:.3f} | { m ['wall_clock_p95_sec' ]:.3f} | { m ['peak_memory_mb' ]:.1f} | "
269- f"{ m ['repair_fidelity_pct' ]} | { m ['false_repair_rate_pct' ]} | { m ['preservation_rate_pct' ]} | "
270- f"{ m ['trust_score' ]} | { '✅' if m ['trust_monotonic_valid' ] else '❌' } | { m ['export_completeness_pct' ]} |"
275+ f"{ m ['wall_clock_p50_sec' ]:.3f} | { m ['wall_clock_p95_sec' ]:.3f} | "
276+ f"{ m ['peak_memory_mb' ]:.1f} | "
277+ f"{ m ['repair_fidelity_pct' ]} | { m ['false_repair_rate_pct' ]} | "
278+ f"{ m ['preservation_rate_pct' ]} | "
279+ f"{ m ['trust_score' ]} | { '✅' if m ['trust_monotonic_valid' ] else '❌' } | "
280+ f"{ m ['export_completeness_pct' ]} |"
271281 )
272282 lines += ["" , "## Authored-code reduction (Metric 6)" , "" ]
273283 if results :
@@ -291,7 +301,10 @@ def cmd_fixtures(args: argparse.Namespace) -> int:
291301 bundle = mod .generate (size , seed = args .seed )
292302 bundle .dirty_df .to_csv (out / "gold_dirty.csv" , index = False )
293303 bundle .clean_df .to_csv (out / "gold_clean.csv" , index = False )
294- print (f" gold -> gold_dirty.csv ({ bundle .dirty_df .shape } ), gold_clean.csv ({ bundle .clean_df .shape } )" )
304+ print (
305+ f" gold -> gold_dirty.csv ({ bundle .dirty_df .shape } ), "
306+ f"gold_clean.csv ({ bundle .clean_df .shape } )"
307+ )
295308 else :
296309 df = mod .generate (size , seed = args .seed )
297310 path = out / f"{ name } .csv"
0 commit comments