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

Function main

tools/data_process.py:48–96  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

46 self.processor.process(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 processor = PROCESSOR.build(cfg.processor)
79 stocks = processor.stocks
80
81 batch_size = cfg.batch_size if cfg.batch_size < len(stocks) else 5
82 batch_size = min(len(stocks), batch_size)
83
84 processes = []
85 remaining_stocks = stocks.copy()
86
87 while remaining_stocks:
88 batch = remaining_stocks[:batch_size]
89 remaining_stocks = remaining_stocks[batch_size:]
90
91 process = StockProcessorProcess(batch, processor)
92 processes.append(process)
93 process.start()
94
95 for process in processes:
96 process.join()
97
98if __name__ == '__main__':
99 main()

Callers 1

data_process.pyFile · 0.70

Calls 3

update_data_rootFunction · 0.90
parse_argsFunction · 0.70

Tested by

no test coverage detected