MCPcopy Create free account
hub / github.com/ScaleML/AgentSPEX / main

Function main

src/benchmarks/writing_bench/run.py:270–362  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

268
269
270def main():
271 args = parse_args()
272
273 # Register signal handlers so Ctrl+C exits immediately
274 # instead of blocking on ThreadPoolExecutor.shutdown(wait=True)
275 signal.signal(signal.SIGINT, _signal_handler)
276 signal.signal(signal.SIGTERM, _signal_handler)
277
278 # Step 1: Ensure data is available
279 _ensure_data()
280
281 # Step 2: Load queries
282 queries = _load_queries(query_indices=args.query_indices, limit=args.limit)
283 print(f"\n{len(queries)} queries to process")
284
285 # Step 3: Run agent on each query
286 runs_dir = Path(args.output_dir) / "runs"
287 runs_dir.mkdir(parents=True, exist_ok=True)
288
289 # Derive experiment name from --output-dir for cohesive sandbox naming.
290 # e.g. "outputs/my_experiment" -> "my_experiment"
291 experiment_name = Path(args.output_dir).name
292
293 results: List[WritingResult] = []
294
295 if args.max_parallel > 1:
296 print(f"Running with max {args.max_parallel} parallel instances")
297 print(f"Sandbox output: outputs/{experiment_name}/query_*/")
298 if args.save_logs:
299 print(f"Logs: {runs_dir}/<index>/<index>_full.log")
300 if args.quiet:
301 print(
302 "Terminal output suppressed (--quiet). Use dashboard to view logs."
303 )
304 with ThreadPoolExecutor(max_workers=args.max_parallel) as executor:
305 futures = {
306 executor.submit(
307 _run_single_query,
308 i + 1,
309 len(queries),
310 q,
311 args,
312 runs_dir,
313 experiment_name,
314 ): q
315 for i, q in enumerate(queries)
316 }
317 for future in as_completed(futures):
318 try:
319 results.append(future.result())
320 except Exception as e:
321 q = futures[future]
322 results.append(
323 WritingResult(
324 index=q["index"],
325 query=q["query"],
326 status="failed",
327 error=str(e),

Callers 1

run.pyFile · 0.70

Calls 7

parse_argsFunction · 0.90
WritingResultClass · 0.90
evaluateFunction · 0.90
_ensure_dataFunction · 0.85
_load_queriesFunction · 0.85
_run_single_queryFunction · 0.85
submitMethod · 0.80

Tested by

no test coverage detected