"""Authenticate interactively and build a canonical JQData index snapshot.""" from __future__ import annotations import argparse import json from datetime import date from adapters.jqdata_local import ( authenticate, fetch_index_daily_snapshot, load_jqdata, ) def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("--index", default="000905.XSHG") parser.add_argument("--start", required=True, type=date.fromisoformat) parser.add_argument("--end", required=True, type=date.fromisoformat) parser.add_argument("--output", required=True) args = parser.parse_args() sdk = load_jqdata() authenticate(sdk) paths = fetch_index_daily_snapshot( sdk, index_symbol=args.index, start_date=args.start, end_date=args.end, output_dir=args.output, ) print(json.dumps({"ok": True, "artifacts": paths}, indent=2, sort_keys=True)) return 0 if __name__ == "__main__": raise SystemExit(main())