38 lines
1004 B
Python
38 lines
1004 B
Python
"""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())
|