#!/usr/bin/env python3 """Generate research reports from GP outputs and qlib experiment artifacts.""" import argparse import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[1] if str(ROOT) not in sys.path: sys.path.insert(0, str(ROOT)) from reports.analysis import generate_experiment_report, generate_gp_only_report def main(): parser = argparse.ArgumentParser(description="Generate IC/backtest/GP analysis charts") parser.add_argument("--run-id", type=str, default=None, help="GP mining run id") parser.add_argument("--recorder-id", type=str, default=None, help="qlib Recorder id from mlruns") parser.add_argument( "--experiment-name", type=str, default=None, help="qlib experiment name (e.g. ml_alpha_baseline, ml_alpha_gp)", ) parser.add_argument("--output-dir", type=str, default=None, help="Custom report output directory") args = parser.parse_args() out_dir = Path(args.output_dir) if args.output_dir else None if args.recorder_id and args.experiment_name: generate_experiment_report( recorder_id=args.recorder_id, experiment_name=args.experiment_name, output_dir=out_dir, run_id=args.run_id, ) else: generate_gp_only_report(run_id=args.run_id, output_dir=out_dir) if __name__ == "__main__": main()