MCPcopy Create free account
hub / github.com/DVampire/FinAgent / main

Function main

tools/download_prices.py:48–99  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

46 self.downloader.download(self.stocks)
47
48def main():
49 args = parse_args()
50
51 cfg = Config.fromfile(args.config)
52
53 if args.cfg_options is None:
54 args.cfg_options = dict()
55 if args.root is not None:
56 args.cfg_options["root"] = args.root
57 if args.workdir is not None:
58 args.cfg_options["workdir"] = args.workdir
59 if args.tag is not None:
60 args.cfg_options["tag"] = args.tag
61 if args.batch_size is not None:
62 args.cfg_options["batch_size"] = args.batch_size
63 cfg.merge_from_dict(args.cfg_options)
64
65 update_data_root(cfg, root=args.root)
66
67 exp_path = os.path.join(cfg.root, cfg.workdir, cfg.tag)
68 if args.if_remove is None:
69 args.if_remove = bool(input(f"| Arguments PRESS 'y' to REMOVE: {exp_path}? ") == 'y')
70 if args.if_remove:
71 import shutil
72 shutil.rmtree(exp_path, ignore_errors=True)
73 print(f"| Arguments Remove work_dir: {exp_path}")
74 else:
75 print(f"| Arguments Keep work_dir: {exp_path}")
76 os.makedirs(exp_path, exist_ok=True)
77
78 downloader = DOWNLOADER.build(cfg.downloader)
79
80 print(f"| Check Downloading {cfg.tag}...")
81 stocks = downloader.check_download()
82 print(f"| Check Downloading {cfg.tag} Done! Failed: {len(stocks)} / {len(downloader.stocks)}")
83
84 batch_size = cfg.batch_size if cfg.batch_size < len(stocks) else 5
85 batch_size = min(len(stocks), batch_size)
86
87 processes = []
88 remaining_stocks = downloader.check_download()
89
90 while remaining_stocks:
91 batch = remaining_stocks[:batch_size]
92 remaining_stocks = remaining_stocks[batch_size:]
93
94 process = StockDownloaderProcess(batch, downloader)
95 processes.append(process)
96 process.start()
97
98 for process in processes:
99 process.join()
100
101if __name__ == '__main__':
102 main()

Callers 1

download_prices.pyFile · 0.70

Calls 4

update_data_rootFunction · 0.90
parse_argsFunction · 0.70
check_downloadMethod · 0.45

Tested by

no test coverage detected