LogViewer
2025-06-10 19:05:02 | INFO | data_prepare::345 - {'action': 'data_prepare', 'status': 'started'}
2025-06-10 19:05:02 | INFO | data_prepare:gen_daily_data:230 - {'action': 'gen_daily_data', 'status': 'started'}
2025-06-10 19:05:05 | INFO | data_prepare:gen_daily_data:236 - {'action': 'connect_client', 'status': 'success'}
2025-06-10 19:05:05 | INFO | data_prepare:gen_daily_data:238 - {'action': 'fetch_meta_mapping', 'status': 'started'}
2025-06-10 19:05:05 | INFO | data_prepare:gen_daily_data:251 - {'action': 'get_trading_day_path', 'status': 'attempt'}
2025-06-10 19:05:05 | INFO | data_prepare:get_trading_day_path:64 - {'action': 'get_trading_day_path', 'status': 'started'}
2025-06-10 19:05:05 | INFO | data_prepare:get_trading_day_path:110 - {'action': 'get_trading_day_path', 'status': 'completed', 'path': '/root/data/Research1//daily_data//2025-06-10/'}
2025-06-10 19:05:05 | INFO | data_prepare:gen_daily_data:254 - {'action': 'fetch_data', 'status': 'started', 'category': 'basic_trading'}
2025-06-10 19:05:05 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'switch', 'status': 'started'}
2025-06-10 19:05:08 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'switch', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:08 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'switch', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:08 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'history_factor', 'status': 'started'}
2025-06-10 19:05:10 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'history_factor', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:11 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'history_factor', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:11 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'volume', 'status': 'started'}
2025-06-10 19:05:13 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'volume', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:13 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'volume', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:13 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'settle', 'status': 'started'}
2025-06-10 19:05:15 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'settle', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:15 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'settle', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:15 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'pre_settle', 'status': 'started'}
2025-06-10 19:05:18 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'pre_settle', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'pre_settle', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:18 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'contract', 'status': 'started'}
2025-06-10 19:05:20 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'contract', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:20 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'contract', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:20 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'factor_multiply', 'status': 'started'}
2025-06-10 19:05:23 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'factor_multiply', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:23 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'factor_multiply', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:23 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'close', 'status': 'started'}
2025-06-10 19:05:26 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'close', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:26 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'close', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:26 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'opencol', 'status': 'started'}
2025-06-10 19:05:28 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'opencol', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:28 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'opencol', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:28 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'turnover', 'status': 'started'}
2025-06-10 19:05:31 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'turnover', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:31 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'turnover', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:31 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'high', 'status': 'started'}
2025-06-10 19:05:34 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'high', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:34 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'high', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:34 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'low', 'status': 'started'}
2025-06-10 19:05:36 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'low', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:36 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'low', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:36 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'open_interest', 'status': 'started'}
2025-06-10 19:05:39 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'open_interest', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:39 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'open_interest', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:39 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'near_contract_price', 'status': 'started'}
2025-06-10 19:05:40 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'near_contract_price', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:40 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'near_contract_price', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:40 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'dominant_contract_price', 'status': 'started'}
2025-06-10 19:05:42 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'dominant_contract_price', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:42 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'dominant_contract_price', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:42 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'near_basis', 'status': 'started'}
2025-06-10 19:05:44 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'near_basis', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:44 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'near_basis', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:44 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'dom_basis', 'status': 'started'}
2025-06-10 19:05:46 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'dom_basis', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:46 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'dom_basis', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:46 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'near_basis_rate', 'status': 'started'}
2025-06-10 19:05:47 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'near_basis_rate', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:47 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'near_basis_rate', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:47 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'dom_basis_rate', 'status': 'started'}
2025-06-10 19:05:49 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'dom_basis_rate', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:49 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'dom_basis_rate', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:49 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'long_hld', 'status': 'started'}
2025-06-10 19:05:51 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'long_hld', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:51 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'long_hld', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:51 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'long_chg', 'status': 'started'}
2025-06-10 19:05:54 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'long_chg', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:54 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'long_chg', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:54 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'short_hld', 'status': 'started'}
2025-06-10 19:05:56 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'short_hld', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:56 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'short_hld', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:56 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'short_chg', 'status': 'started'}
2025-06-10 19:05:58 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'short_chg', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:58 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'short_chg', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:05:58 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'vol', 'status': 'started'}
2025-06-10 19:06:01 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'vol', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:01 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'vol', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:01 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'vol_chg', 'status': 'started'}
2025-06-10 19:06:03 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'vol_chg', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:03 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'vol_chg', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:03 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'maturity_month', 'status': 'started'}
2025-06-10 19:06:06 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'maturity_month', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:06 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'maturity_month', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:06 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'maturity_day', 'status': 'started'}
2025-06-10 19:06:08 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'maturity_day', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:08 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'maturity_day', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:08 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'contract_yymm', 'status': 'started'}
2025-06-10 19:06:11 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'contract_yymm', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:11 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'contract_yymm', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:11 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'long_margin_rate_amount', 'status': 'started'}
2025-06-10 19:06:11 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'long_margin_rate_amount', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:11 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'long_margin_rate_amount', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:11 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'contract_multiplier', 'status': 'started'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'contract_multiplier', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'contract_multiplier', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'open_position_rate_amount', 'status': 'started'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'open_position_rate_amount', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'open_position_rate_amount', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'open_position_fee_per_hand', 'status': 'started'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'open_position_fee_per_hand', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'open_position_fee_per_hand', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'close_position_rate_amount', 'status': 'started'}
2025-06-10 19:06:12 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'close_position_rate_amount', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'close_position_rate_amount', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'close_position_fee_per_hand', 'status': 'started'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'close_position_fee_per_hand', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'close_position_fee_per_hand', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'close_today_rate_amount', 'status': 'started'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'close_today_rate_amount', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'close_today_rate_amount', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'close_today_fee_per_hand', 'status': 'started'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'close_today_fee_per_hand', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'close_today_fee_per_hand', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:13 | INFO | data_prepare:get_and_save_and_reset_daily_data:165 - {'action': 'get_save_reset_data', 'file': 'min_price_movement', 'status': 'started'}
2025-06-10 19:06:14 | INFO | data_prepare:get_and_save_and_reset_daily_data:184 - {'action': 'process_data', 'file': 'min_price_movement', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:14 | INFO | data_prepare:get_and_save_and_reset_daily_data:218 - {'action': 'get_save_reset_data', 'file': 'min_price_movement', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:14 | INFO | data_prepare:gen_daily_data:301 - {'action': 'calculate_atr', 'status': 'started'}
2025-06-10 19:06:14 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'high,low,pre_settle', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:131 - {'action': 'process_data', 'file': 'high,low,pre_settle', 'last_date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'high,low,pre_settle', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:gen_daily_data:325 - {'action': 'calculate_adjusted_data', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'contract', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'contract', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'factor_multiply', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'factor_multiply', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'close', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'close', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'opencol', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'opencol', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:120 - {'action': 'get_save_data', 'file': 'turnover', 'status': 'started'}
2025-06-10 19:06:18 | INFO | data_prepare:get_and_save_daily_data:155 - {'action': 'get_save_data', 'file': 'turnover', 'status': 'completed', 'date': '2025-06-10 00:00:00+08:00'}
2025-06-10 19:06:18 | INFO | data_prepare:gen_daily_data:336 - {'action': 'gen_daily_data', 'status': 'completed'}
2025-06-10 19:06:18 | INFO | data_prepare:generate_and_save_dicts:27 - {'action': 'generate_dicts', 'status': 'started'}
2025-06-10 19:06:18 | CRITICAL | data_prepare::352 - {'action': 'data_prepare', 'status': 'failed', 'error': "'未分类'"}
2025-06-10 19:06:18 | ERROR | data_prepare::353 - 数据预处理过程中发生严重错误
Traceback (most recent call last):

> File "/root/project/auto/auto/data_prepare.py", line 349, in 
    COMD_DICT, SECTOR_DICT, EXCHANGE_DICT = generate_and_save_dicts()
                                            └ 

  File "/root/project/auto/auto/data_prepare.py", line 47, in generate_and_save_dicts
    sector_dict = meta_mapping['sector'].apply(lambda x: sector_range[x]).to_dict()
                  │                                      └ {'Agriculture': 0, 'Ferrous': 1, 'Finance': 2, 'Energy': 3, 'Precious': 4, 'NonFerrous': 5}
                  └        id comd_name exchange       sector
                    comd                                     
                    AP      1        苹果     CZCE  Agriculture...

  File "/usr/local/lib/python3.10/site-packages/pandas/core/series.py", line 4935, in apply
    ).apply()
  File "/usr/local/lib/python3.10/site-packages/pandas/core/apply.py", line 1422, in apply
    return self.apply_standard()
           │    └ 
  File "/usr/local/lib/python3.10/site-packages/pandas/core/apply.py", line 1502, in apply_standard
    mapped = obj._map_values(
             │   └ 
             └ comd
               AP    Agriculture
               CF    Agriculture
               CJ    Agriculture
               CY    Agriculture
               FG        Ferrous
                        ...     
               zn     NonFe...
  File "/usr/local/lib/python3.10/site-packages/pandas/core/base.py", line 925, in _map_values
    return algorithms.map_array(arr, mapper, na_action=na_action, convert=convert)
           │          │         │    │                 │                  └ True
           │          │         │    │                 └ None
           │          │         │    └ . at 0x7fcac28dce50>
           │          │         └ array(['Agriculture', 'Agriculture', 'Agriculture', 'Agriculture',
           │          │                  'Ferrous', 'Finance', 'Finance', 'Finance', 'Financ...
           │          └ 
  File "/usr/local/lib/python3.10/site-packages/pandas/core/algorithms.py", line 1743, in map_array
    return lib.map_infer(values, mapper, convert=convert)
           │   │         │       │               └ True
           │   │         │       └ . at 0x7fcac28dce50>
           │   │         └ array(['Agriculture', 'Agriculture', 'Agriculture', 'Agriculture',
           │   │                  'Ferrous', 'Finance', 'Finance', 'Finance', 'Financ...
           │   └ 
  File "pandas/_libs/lib.pyx", line 2999, in pandas._libs.lib.map_infer

  File "/root/project/auto/auto/data_prepare.py", line 47, in 
    sector_dict = meta_mapping['sector'].apply(lambda x: sector_range[x]).to_dict()
                                                      │  │            └ '未分类'
                                                      │  └ {'Agriculture': 0, 'Ferrous': 1, 'Finance': 2, 'Energy': 3, 'Precious': 4, 'NonFerrous': 5}
                                                      └ '未分类'

KeyError: '未分类'
2025-06-10 19:06:18 | INFO | data_prepare::355 - {'action': 'data_prepare', 'status': 'completed'}
future_1d/main_daily/switch
select date, comd, switch from main_daily where method='turnover'
future_1d/main_daily/history_factor
select date, comd, history_factor from main_daily where method='turnover'
future_1d/main_daily/volume
select date, comd, volume from main_daily where method='turnover'
future_1d/main_daily/settle
select date, comd, settle from main_daily where method='turnover'
future_1d/main_daily/pre_settle
select date, comd, pre_settle from main_daily where method='turnover'
future_1d/main_daily/contract
select date, comd, contract from main_daily where method='turnover'
future_1d/main_daily/factor_multiply
select date, comd, factor_multiply from main_daily where method='turnover'
future_1d/main_daily/close
select date, comd, close from main_daily where method='turnover'
future_1d/main_daily/opencol
select date, comd, opencol from main_daily where method='turnover'
future_1d/main_daily/turnover
select date, comd, turnover from main_daily where method='turnover'
future_1d/main_daily/high
select date, comd, high from main_daily where method='turnover'
future_1d/main_daily/low
select date, comd, low from main_daily where method='turnover'
future_1d/main_daily/open_interest
select date, comd, open_interest from main_daily where method='turnover'
future_1d/future_spot/near_contract_price
select date, comd, near_contract_price from future_spot 
future_1d/future_spot/dominant_contract_price
select date, comd, dominant_contract_price from future_spot 
future_1d/future_spot/near_basis
select date, comd, near_basis from future_spot 
future_1d/future_spot/dom_basis
select date, comd, dom_basis from future_spot 
future_1d/future_spot/near_basis_rate
select date, comd, near_basis_rate from future_spot 
future_1d/future_spot/dom_basis_rate
select date, comd, dom_basis_rate from future_spot 
technical/rank20/long_hld
select date, comd, long_hld from rank20 
technical/rank20/long_chg
select date, comd, long_chg from rank20 
technical/rank20/short_hld
select date, comd, short_hld from rank20 
technical/rank20/short_chg
select date, comd, short_chg from rank20 
technical/rank20/vol
select date, comd, vol from rank20 
technical/rank20/vol_chg
select date, comd, vol_chg from rank20 
future_1d/main_daily/maturity_month
select date, comd, maturity_month from main_daily where method='turnover'
future_1d/main_daily/maturity_day
select date, comd, maturity_day from main_daily where method='turnover'
future_1d/main_daily/contract_yymm
select date, comd, contract_yymm from main_daily where method='turnover'
future_1d/main_fee/long_margin_rate_amount
select date, comd, long_margin_rate_amount from main_fee 
future_1d/main_fee/contract_multiplier
select date, comd, contract_multiplier from main_fee 
future_1d/main_fee/open_position_rate_amount
select date, comd, open_position_rate_amount from main_fee 
future_1d/main_fee/open_position_fee_per_hand
select date, comd, open_position_fee_per_hand from main_fee 
future_1d/main_fee/close_position_rate_amount
select date, comd, close_position_rate_amount from main_fee 
future_1d/main_fee/close_position_fee_per_hand
select date, comd, close_position_fee_per_hand from main_fee 
future_1d/main_fee/close_today_rate_amount
select date, comd, close_today_rate_amount from main_fee 
future_1d/main_fee/close_today_fee_per_hand
select date, comd, close_today_fee_per_hand from main_fee 
future_1d/main_fee/min_price_movement
select date, comd, min_price_movement from main_fee 
future_1d/main_daily/high,low,pre_settle
select date, comd, high,low,pre_settle from main_daily where method='turnover'