#!/usr/bin/env python3 """Chinese Equity Quant Pipeline — decoupled phase CLI. Phases: data — Download daily bars to parquet alpha — Compute alpha weights from data combo — Combine alphas into a single weight """ import logging import click from pipeline.data.cli import data from pipeline.alpha.cli import alpha from pipeline.combo.cli import combo from tools.pqcat import pqcat @click.group() @click.option( "--log-level", default="INFO", type=click.Choice(["DEBUG", "INFO", "WARNING", "ERROR"], case_sensitive=False), help="Logging verbosity (default INFO shows download/compute progress)", ) def cli(log_level): """Chinese Equity Quant Pipeline. Each phase is independent: read from parquet, write to parquet. """ logging.basicConfig( level=getattr(logging, log_level.upper()), format="%(asctime)s %(levelname)s %(name)s: %(message)s", datefmt="%H:%M:%S", ) cli.add_command(data) cli.add_command(alpha) cli.add_command(combo) cli.add_command(pqcat) if __name__ == "__main__": cli()