mns-scheduler 1.4.0.2__py3-none-any.whl → 1.4.3.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mns-scheduler might be problematic. Click here for more details.

Files changed (23) hide show
  1. mns_scheduler/company_info/base/sync_company_base_info_api.py +148 -65
  2. mns_scheduler/company_info/base/sync_company_hold_info_api.py +2 -5
  3. mns_scheduler/company_info/base/sync_company_product_area_industry.py +0 -5
  4. mns_scheduler/company_info/clean/company_info_clean_api.py +1 -1
  5. mns_scheduler/company_info/constant/company_constant_data.py +3 -0
  6. mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +33 -30
  7. mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py +4 -5
  8. mns_scheduler/irm/stock_irm_cninfo_service.py +3 -2
  9. mns_scheduler/k_line/clean/k_line_info_clean_task.py +7 -2
  10. mns_scheduler/risk/transactions/transactions_check_api.py +1 -1
  11. mns_scheduler/self_choose/ths_self_choose_service.py +21 -13
  12. mns_scheduler/trade/sync_position_api.py +38 -5
  13. mns_scheduler/zb/stock_zb_pool_sync.py +1 -1
  14. mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +250 -55
  15. mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +23 -12
  16. mns_scheduler/zz_task/compensation/compensate_task_one_day.py +2 -2
  17. mns_scheduler/zz_task/data_sync_task.py +6 -6
  18. {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/METADATA +1 -1
  19. {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/RECORD +21 -23
  20. mns_scheduler/debt/__init__.py +0 -7
  21. mns_scheduler/debt/kzz_bond_info_sync.py +0 -33
  22. {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/WHEEL +0 -0
  23. {mns_scheduler-1.4.0.2.dist-info → mns_scheduler-1.4.3.3.dist-info}/top_level.txt +0 -0
@@ -18,8 +18,13 @@ import mns_common.api.ths.zt.ths_stock_zt_pool_v2_api as ths_stock_zt_pool_v2_ap
18
18
  import mns_common.component.zt.zt_common_service_api as zt_common_service_api
19
19
  import mns_common.component.em.em_real_time_quotes_api as em_real_time_quotes_api
20
20
  from datetime import datetime
21
+ import mns_common.api.ths.zt.ths_stock_zt_pool_api as ths_stock_zt_pool_api
22
+ import mns_common.constant.db_name_constant as db_name_constant
23
+ import mns_common.component.deal.deal_service_api as deal_service_api
24
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
21
25
  import mns_common.api.ths.company.ths_company_info_api as ths_company_info_api
22
26
  import mns_common.component.cookie.cookie_info_service as cookie_info_service
27
+ import time
23
28
 
24
29
  '''
25
30
  东方财富涨停池
@@ -44,18 +49,27 @@ ZT_FIELD = ['_id', 'symbol', 'name', 'now_price', 'chg', 'first_closure_time',
44
49
  'list_date',
45
50
  'exchange', 'flow_mv', 'total_mv',
46
51
  'classification', 'flow_mv_sp', 'total_mv_sp', 'flow_mv_level',
47
- 'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day', 'main_line']
52
+ 'amount_level', 'new_stock', 'list_date_01', 'index', 'str_day', 'main_line', 'sub_main_line']
48
53
 
49
54
 
50
55
  def save_zt_info(str_day):
51
56
  if bool(1 - trade_date_common_service_api.is_trade_day(str_day)):
52
- return None
57
+ return pd.DataFrame()
53
58
 
54
59
  stock_em_zt_pool_df_data = stock_zt_pool_api.stock_em_zt_pool_df(
55
60
  date_handle_util.no_slash_date(str_day))
56
61
 
57
62
  # fix 涨停池没有的股票
58
- stock_em_zt_pool_df_data = sync_miss_zt_data(stock_em_zt_pool_df_data.copy(), str_day)
63
+ stock_em_zt_pool_df_data = handle_miss_zt_data(stock_em_zt_pool_df_data.copy(), str_day)
64
+
65
+ try:
66
+ # 同花顺问财涨停池
67
+ ths_zt_pool_df_data = ths_stock_zt_pool_v2_api.get_ths_stock_zt_reason_with_cache(str_day)
68
+ except BaseException as e:
69
+ logger.error("使用问财同步ths涨停数据异常")
70
+ ths_zt_pool_df_data = pd.DataFrame()
71
+
72
+ stock_em_zt_pool_df_data = handle_ths_em_diff_data(ths_zt_pool_df_data, stock_em_zt_pool_df_data)
59
73
 
60
74
  stock_em_zt_pool_df_data = common_service_fun_api.total_mv_classification(stock_em_zt_pool_df_data.copy())
61
75
 
@@ -64,48 +78,14 @@ def save_zt_info(str_day):
64
78
  stock_em_zt_pool_df_data = common_service_fun_api.symbol_amount_simple(stock_em_zt_pool_df_data.copy())
65
79
 
66
80
  stock_em_zt_pool_df_data = company_common_service_api.amendment_industry(stock_em_zt_pool_df_data.copy())
81
+
67
82
  # 主线标记 复盘用
68
83
  stock_em_zt_pool_df_data['main_line'] = '无'
84
+ stock_em_zt_pool_df_data['sub_main_line'] = '无'
85
+
69
86
  # 上个交易交易日涨停股票
70
87
  last_trade_day_zt_df = zt_common_service_api.get_last_trade_day_zt(str_day)
71
88
 
72
- try:
73
- # 同花顺问财涨停池
74
- ths_zt_pool_df_data = ths_stock_zt_pool_v2_api.get_ths_stock_zt_reason_with_cache(str_day)
75
-
76
- # del stock_em_zt_pool_df_data['ths_concept_name']
77
- # del stock_em_zt_pool_df_data['ths_concept_code']
78
- for stock_one in stock_em_zt_pool_df_data.itertuples():
79
- try:
80
-
81
- # 设置连板数目
82
- stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data.copy(),
83
- stock_one.symbol, last_trade_day_zt_df.copy())
84
-
85
- ths_zt_pool_one_df = ths_zt_pool_df_data.loc[ths_zt_pool_df_data['symbol'] == stock_one.symbol]
86
- if data_frame_util.is_empty(ths_zt_pool_one_df):
87
- stock_em_zt_pool_df_data['zt_reason'] = '0'
88
- continue
89
- stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = \
90
- list(ths_zt_pool_one_df['zt_reason'])[0]
91
-
92
- first_closure_time = list(ths_zt_pool_one_df['first_closure_time'])[0]
93
- first_closure_time = first_closure_time.replace(":", "")
94
-
95
- stock_em_zt_pool_df_data.loc[
96
- stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'first_closure_time'] = first_closure_time
97
-
98
- zt_analysis = ths_company_info_api.get_company_hot_info(stock_one.symbol,
99
- cookie_info_service.get_ths_cookie())
100
- stock_em_zt_pool_df_data.loc[
101
- stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_analysis'] = zt_analysis
102
-
103
- except BaseException as e:
104
- stock_em_zt_pool_df_data['zt_reason'] = '0'
105
- logger.error("出现异常:{}", e)
106
- except BaseException as e:
107
- stock_em_zt_pool_df_data['zt_reason'] = '0'
108
- logger.error("出现异常:{}", e)
109
89
  stock_em_zt_pool_df_data['first_closure_time'] = stock_em_zt_pool_df_data['first_closure_time'].str.strip()
110
90
  stock_em_zt_pool_df_data['list_date'] = stock_em_zt_pool_df_data['list_date'].apply(
111
91
  lambda x: pd.to_numeric(x, errors="coerce"))
@@ -130,48 +110,136 @@ def save_zt_info(str_day):
130
110
 
131
111
  stock_em_zt_pool_df_data['str_day'] = str_day
132
112
  stock_em_zt_pool_df_data['_id'] = stock_em_zt_pool_df_data['symbol'] + "_" + str_day
113
+ stock_em_zt_pool_df_data.drop_duplicates('symbol', keep='last', inplace=True)
133
114
 
134
- stock_em_zt_pool_df_data = stock_em_zt_pool_df_data[ZT_FIELD]
115
+ query_today_zt = {'str_day': str_day}
135
116
 
136
- stock_em_zt_pool_df_data.drop_duplicates('symbol', keep='last', inplace=True)
117
+ stock_today_zt_pool_df = mongodb_util.find_query_data(db_name_constant.STOCK_ZT_POOL, query_today_zt)
118
+
119
+ if data_frame_util.is_empty(stock_today_zt_pool_df):
137
120
 
138
- exist_zt_pool_today = mongodb_util.find_query_data('stock_zt_pool', {'str_day': str_day})
139
- if data_frame_util.is_empty(exist_zt_pool_today):
140
- mongodb_util.save_mongo(stock_em_zt_pool_df_data, 'stock_zt_pool')
121
+ today_new_zt_pool_df = stock_em_zt_pool_df_data.copy()
141
122
  else:
142
- exist_zt_pool_today_not_nan = exist_zt_pool_today.loc[exist_zt_pool_today['zt_reason'] != '0']
123
+ today_new_zt_pool_df = stock_em_zt_pool_df_data.loc[
124
+ ~stock_em_zt_pool_df_data['symbol'].isin(stock_today_zt_pool_df['symbol'])]
125
+
126
+ try:
127
+
128
+ today_main_line_df = mongodb_util.find_query_data(db_name_constant.MAIN_LINE_DETAIL, {'str_day': str_day})
143
129
 
144
- stock_em_zt_pool_df_data = stock_em_zt_pool_df_data.loc[:, ~stock_em_zt_pool_df_data.columns.duplicated()]
145
- stock_em_zt_pool_df_data_new = stock_em_zt_pool_df_data.loc[~(
146
- stock_em_zt_pool_df_data['symbol'].isin(exist_zt_pool_today_not_nan['symbol']))]
147
- if data_frame_util.is_not_empty(stock_em_zt_pool_df_data_new):
148
- mongodb_util.save_mongo(stock_em_zt_pool_df_data_new, 'stock_zt_pool')
130
+ for stock_one in today_new_zt_pool_df.itertuples():
131
+ try:
132
+ zt_reason = ''
133
+ zt_analyse_detail = ''
134
+
135
+ # 设置连板数目
136
+ stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data.copy(),
137
+ stock_one.symbol,
138
+ last_trade_day_zt_df.copy())
139
+
140
+ reason_tag = False
141
+ # 网页获取
142
+ try:
143
+ ths_cookie = cookie_info_service.get_ths_cookie()
144
+ # 问财获取涨停分析
145
+ zt_analyse_detail = ths_company_info_api.get_company_hot_info(stock_one.symbol, ths_cookie)
146
+
147
+ zt_reason = zt_analyse_detail.split("\n")[0]
148
+ reason_tag = True
149
+ time.sleep(2)
150
+ except BaseException as e:
151
+ time.sleep(2)
152
+ logger.error("网页获取涨停详情异常:{},{}", stock_one.symbol, e)
153
+
154
+ # 问财获取
155
+ if bool(1 - reason_tag):
156
+ try:
157
+ # 问财获取涨停分析
158
+ zt_result_dict = ths_stock_zt_pool_api.zt_analyse_reason(stock_one.symbol)
159
+ zt_analyse_detail = zt_result_dict['zt_analyse_detail']
160
+ zt_reason = zt_result_dict['zt_reason']
161
+ time.sleep(2)
162
+ except BaseException as e:
163
+ time.sleep(2)
164
+ logger.error("问财获取涨停详情异常:{},{}", stock_one.symbol, e)
165
+
166
+ stock_em_zt_pool_df_data.loc[
167
+ stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_reason'] = zt_reason
168
+
169
+ stock_em_zt_pool_df_data.loc[
170
+ stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'zt_analysis'] = zt_analyse_detail
171
+
172
+ if data_frame_util.is_not_empty(today_main_line_df):
173
+ today_main_line_one_df = today_main_line_df.loc[today_main_line_df['symbol'] == stock_one.symbol]
174
+ if data_frame_util.is_not_empty(today_main_line_one_df):
175
+ stock_em_zt_pool_df_data.loc[
176
+ stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'main_line'] = \
177
+ list(today_main_line_one_df['main_line'])[0]
178
+
179
+ stock_em_zt_pool_df_data.loc[
180
+ stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'sub_main_line'] = \
181
+ list(today_main_line_one_df['sub_main_line'])[0]
182
+
183
+ query_exist = {'symbol': stock_one.symbol, 'str_day': str_day}
184
+ if mongodb_util.exist_data_query(db_name_constant.STOCK_ZT_POOL, query_exist):
185
+ continue
186
+ else:
187
+
188
+ stock_em_zt_pool_df_data_one = stock_em_zt_pool_df_data.loc[
189
+ stock_em_zt_pool_df_data['symbol'] == stock_one.symbol]
190
+ stock_em_zt_pool_df_data_one = stock_em_zt_pool_df_data_one[ZT_FIELD]
191
+
192
+ chg = round(float(list(stock_em_zt_pool_df_data_one['chg'])[0]), 2)
193
+ stock_em_zt_pool_df_data_one['chg'] = chg
194
+
195
+ mongodb_util.save_mongo(stock_em_zt_pool_df_data_one, db_name_constant.STOCK_ZT_POOL)
196
+
197
+ except BaseException as e:
198
+
199
+ logger.error("同步涨停信息出现异常:{},{}", stock_one.symbol, e)
200
+ except BaseException as e:
201
+ stock_em_zt_pool_df_data['zt_reason'] = '0'
202
+ logger.error("出现异常:{}", e)
203
+
204
+ stock_em_zt_pool_df_data = pd.concat([stock_today_zt_pool_df, today_new_zt_pool_df])
205
+ stock_em_zt_pool_df_data = stock_em_zt_pool_df_data[ZT_FIELD]
149
206
  return stock_em_zt_pool_df_data
150
207
 
151
208
 
152
209
  # 设置连板数目
153
210
  def set_connected_boards_numbers(stock_em_zt_pool_df_data, symbol, last_trade_day_zt_df):
211
+ # 连板股票
154
212
  connected_boards_df_copy = last_trade_day_zt_df.loc[
155
213
  last_trade_day_zt_df['symbol'].isin(stock_em_zt_pool_df_data['symbol'])]
214
+
156
215
  connected_boards_df = connected_boards_df_copy.copy()
157
216
  connected_boards_df['connected_boards_numbers'] = connected_boards_df['connected_boards_numbers'] + 1
158
217
 
218
+ # 连板股票
159
219
  connected_boards_df_one = connected_boards_df.loc[connected_boards_df['symbol'] == symbol]
220
+
160
221
  if data_frame_util.is_not_empty(connected_boards_df_one):
161
222
  stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'connected_boards_numbers'] = \
162
223
  list(connected_boards_df_one['connected_boards_numbers'])[0]
163
224
 
164
- stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'main_line'] = \
165
- list(connected_boards_df_one['main_line'])[0]
225
+ if 'main_line' in connected_boards_df_one.columns:
226
+ stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'main_line'] = \
227
+ list(connected_boards_df_one['main_line'])[0]
228
+
229
+ if 'sub_main_line' in connected_boards_df_one.columns:
230
+ stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == symbol, 'sub_main_line'] = \
231
+ list(connected_boards_df_one['sub_main_line'])[0]
166
232
 
167
233
  return stock_em_zt_pool_df_data
168
234
 
169
235
 
170
- def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
236
+ def handle_miss_zt_data(stock_em_zt_pool_df_data, str_day):
171
237
  now_date = datetime.now()
172
238
  now_day = now_date.strftime('%Y-%m-%d')
173
239
  if now_day == str_day:
174
240
  real_time_quotes_all_stocks_df = em_real_time_quotes_api.get_real_time_quotes_now(None, None)
241
+ if data_frame_util.is_empty(real_time_quotes_all_stocks_df):
242
+ return stock_em_zt_pool_df_data
175
243
  real_time_quotes_all_stocks_df = real_time_quotes_all_stocks_df.loc[
176
244
  (real_time_quotes_all_stocks_df['wei_bi'] == 100) & (real_time_quotes_all_stocks_df['chg'] >= 9)]
177
245
  miss_zt_data_df_copy = real_time_quotes_all_stocks_df.loc[~(
@@ -221,8 +289,135 @@ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
221
289
  return stock_em_zt_pool_df_data
222
290
 
223
291
 
292
+ def handle_ths_em_diff_data(ths_zt_pool_df_data, stock_em_zt_pool_df_data):
293
+ if data_frame_util.is_empty(ths_zt_pool_df_data):
294
+ return stock_em_zt_pool_df_data
295
+ else:
296
+ diff_ths_zt_df = ths_zt_pool_df_data.loc[
297
+ ~(ths_zt_pool_df_data['symbol'].isin(stock_em_zt_pool_df_data['symbol']))]
298
+ if data_frame_util.is_empty(diff_ths_zt_df):
299
+ return stock_em_zt_pool_df_data
300
+ else:
301
+ diff_ths_zt_df = diff_ths_zt_df[[
302
+ 'symbol',
303
+ 'name',
304
+ 'chg',
305
+ 'now_price',
306
+ # 'amount',
307
+ # 'flow_mv',
308
+ # 'total_mv',
309
+ # 'exchange',
310
+ 'closure_funds',
311
+ 'first_closure_time',
312
+ 'last_closure_time',
313
+ 'frying_plates_numbers',
314
+ 'statistics',
315
+ 'connected_boards_numbers'
316
+
317
+ ]]
318
+
319
+ company_info_df = query_company_info_with_share()
320
+ company_info_df['symbol'] = company_info_df['_id']
321
+ company_info_df = company_info_df.loc[company_info_df['symbol'].isin(list(diff_ths_zt_df['symbol']))]
322
+
323
+ company_info_df = common_service_fun_api.add_after_prefix(company_info_df)
324
+
325
+ symbol_prefix_list = list(company_info_df['symbol_prefix'])
326
+ real_time_quotes_list = deal_service_api.get_qmt_real_time_quotes_detail('qmt',
327
+ symbol_prefix_list)
328
+
329
+ real_time_quotes_df = pd.DataFrame(real_time_quotes_list)
330
+
331
+ real_time_quotes_df['symbol'] = real_time_quotes_df['symbol'].str.slice(0, 6)
332
+ company_info_df = company_info_df.set_index(['symbol'], drop=True)
333
+ real_time_quotes_df = real_time_quotes_df.set_index(['symbol'], drop=False)
334
+
335
+ real_time_quotes_df = pd.merge(company_info_df, real_time_quotes_df, how='outer',
336
+ left_index=True, right_index=True)
337
+
338
+ real_time_quotes_df['amount'] = round(real_time_quotes_df['amount'], 1)
339
+
340
+ real_time_quotes_df['total_mv'] = round(
341
+ real_time_quotes_df['lastPrice'] * real_time_quotes_df['total_share'], 1)
342
+ real_time_quotes_df['flow_mv'] = round(real_time_quotes_df['lastPrice'] * real_time_quotes_df['flow_share'],
343
+ 1)
344
+ real_time_quotes_df['exchange'] = round(
345
+ real_time_quotes_df['amount'] * 100 / real_time_quotes_df['flow_mv'], 1)
346
+
347
+ real_time_quotes_df = real_time_quotes_df[
348
+ ['symbol', 'amount', 'total_mv', 'flow_mv', 'exchange', 'industry']]
349
+
350
+ real_time_quotes_df = real_time_quotes_df.set_index(['symbol'], drop=True)
351
+ diff_ths_zt_df = diff_ths_zt_df.set_index(['symbol'], drop=False)
352
+ diff_ths_zt_df = pd.merge(real_time_quotes_df, diff_ths_zt_df, how='outer',
353
+ left_index=True, right_index=True)
354
+
355
+ diff_ths_zt_df = diff_ths_zt_df[[
356
+ 'symbol',
357
+ 'name',
358
+ 'chg',
359
+ 'now_price',
360
+ 'amount',
361
+ 'flow_mv',
362
+ 'total_mv',
363
+ 'exchange',
364
+ 'closure_funds',
365
+ 'first_closure_time',
366
+ 'last_closure_time',
367
+ 'frying_plates_numbers',
368
+ 'statistics',
369
+ 'connected_boards_numbers',
370
+ 'industry'
371
+
372
+ ]]
373
+
374
+ exist_number = stock_em_zt_pool_df_data.shape[0] + 1
375
+
376
+ diff_ths_zt_df.index = range(exist_number, exist_number + len(diff_ths_zt_df))
377
+ diff_ths_zt_df['index'] = diff_ths_zt_df.index
378
+
379
+ stock_em_zt_pool_df_data = pd.concat([stock_em_zt_pool_df_data, diff_ths_zt_df])
380
+ return stock_em_zt_pool_df_data
381
+
382
+
383
+ def query_company_info_with_share():
384
+ query_field = {"_id": 1,
385
+ "industry": 1,
386
+ "company_type": 1,
387
+ "ths_industry_code": 1,
388
+ "ths_concept_name": 1,
389
+ "ths_concept_code": 1,
390
+ "ths_concept_sync_day": 1,
391
+ "first_sw_industry": 1,
392
+ "second_sw_industry": 1,
393
+ "second_industry_code": 1,
394
+ "third_sw_industry": 1,
395
+ "mv_circulation_ratio": 1,
396
+ "list_date": 1,
397
+ "diff_days": 1,
398
+ 'em_industry': 1,
399
+ 'operate_profit': 1,
400
+ 'total_operate_income': 1,
401
+ "name": 1,
402
+ 'pb': 1,
403
+ 'pe_ttm': 1,
404
+ 'ROE': 1,
405
+ 'ths_industry_name': 1,
406
+ 'total_share': 1,
407
+ 'flow_share': 1
408
+ }
409
+ de_list_company_symbols = company_common_service_new_api.get_de_list_company()
410
+ query_field_key = str(query_field)
411
+ query = {"_id": {"$regex": "^[^48]"},
412
+ 'symbol': {"$nin": de_list_company_symbols}, }
413
+ query_key = str(query)
414
+ company_info_df = company_common_service_new_api.get_company_info_by_field(query_key, query_field_key)
415
+
416
+ return company_info_df
417
+
418
+
224
419
  if __name__ == '__main__':
225
- save_zt_info('2025-05-14')
420
+ save_zt_info('2025-11-18')
226
421
  # from datetime import datetime
227
422
  #
228
423
  # if __name__ == '__main__':
@@ -14,9 +14,15 @@ from loguru import logger
14
14
 
15
15
 
16
16
  def update_null_zt_reason(str_day):
17
- query = {"str_day": str_day, "$or": [{"zt_reason": "0", },
17
+ query = {"str_day": str_day, "$or": [{"zt_reason": "0"},
18
18
  {"zt_reason": ""},
19
- {"zt_reason": float('nan')}]}
19
+ {"zt_reason": float('nan')},
20
+
21
+ {"zt_analysis": "0"},
22
+ {"zt_analysis": ""},
23
+ {"zt_analysis": float('nan')},
24
+
25
+ ]}
20
26
  stock_zt_pool_df_null_zt_reason = mongodb_util.find_query_data('stock_zt_pool', query)
21
27
  if data_frame_util.is_empty(stock_zt_pool_df_null_zt_reason):
22
28
  return None
@@ -24,24 +30,29 @@ def update_null_zt_reason(str_day):
24
30
  repeat_number = 0
25
31
  # 循环10次
26
32
  while len(no_reason_list) > 0 and repeat_number < 10:
27
- ths_zt_pool_df_data = ths_stock_zt_pool_api.get_zt_reason(str_day)
33
+
28
34
  for stock_zt_one in stock_zt_pool_df_null_zt_reason.itertuples():
29
35
  try:
30
- ths_pool_zt_reason_one_df = ths_zt_pool_df_data.loc[
31
- ths_zt_pool_df_data['symbol'] == stock_zt_one.symbol]
32
- if data_frame_util.is_not_empty(ths_pool_zt_reason_one_df):
33
- stock_zt_pool_df_one_df = stock_zt_pool_df_null_zt_reason.loc[
34
- stock_zt_pool_df_null_zt_reason['symbol'] == stock_zt_one.symbol]
35
- stock_zt_pool_df_one_df['zt_reason'] = list(ths_pool_zt_reason_one_df['zt_reason'])[0]
36
- mongodb_util.save_mongo(stock_zt_pool_df_one_df, 'stock_zt_pool')
36
+ # 涨停原因
37
+ stock_zt_pool_df_one_df = stock_zt_pool_df_null_zt_reason.loc[
38
+ stock_zt_pool_df_null_zt_reason['symbol'] == stock_zt_one.symbol]
39
+ # 涨停分析
40
+ zt_result_dict = ths_stock_zt_pool_api.zt_analyse_reason(stock_zt_one.symbol)
41
+ zt_analysis = zt_result_dict['zt_analyse_detail']
42
+ zt_reason = zt_result_dict['zt_reason']
43
+
44
+ stock_zt_pool_df_one_df['zt_analysis'] = zt_analysis
45
+ stock_zt_pool_df_one_df['zt_reason'] = zt_reason
46
+
47
+ mongodb_util.save_mongo(stock_zt_pool_df_one_df, 'stock_zt_pool')
48
+ if stock_zt_one.symbol in no_reason_list:
37
49
  no_reason_list.remove(stock_zt_one.symbol)
38
50
  except BaseException as e:
39
51
  logger.error("出现异常:{},{}", stock_zt_one.symbol, e)
40
52
  continue
41
53
  repeat_number = repeat_number + 1
42
-
43
54
  return stock_zt_pool_df_null_zt_reason
44
55
 
45
56
 
46
57
  if __name__ == '__main__':
47
- update_null_zt_reason('2024-12-12')
58
+ update_null_zt_reason('2025-11-14')
@@ -134,8 +134,8 @@ def col_data_move():
134
134
 
135
135
  if __name__ == '__main__':
136
136
  # todo 修改日期
137
- str_day = '2025-10-16'
138
- col_data_move()
137
+ str_day = '2025-11-13'
138
+ # col_data_move()
139
139
  sync_daily_data_info()
140
140
  sync_stock_zt_pool()
141
141
  sync_stock_dt_pool()
@@ -321,7 +321,7 @@ def sync_position():
321
321
  # 同步持仓
322
322
  if trade_date_common_service_api.is_trade_day(str_day):
323
323
  logger.info('同步持仓任务完成')
324
- sync_position_api.sync_position()
324
+ sync_position_api.sync_position_qmt()
325
325
 
326
326
 
327
327
  # 同步开盘啦当日精选指数行情数据
@@ -354,7 +354,7 @@ def sync_all_interactive_questions():
354
354
  tag = bool(1 - trade_date_common_service_api.is_trade_day(str_day))
355
355
  if tag:
356
356
  logger.info('同步互动回答')
357
- stock_irm_cninfo_service.sync_all_interactive_questions(None)
357
+ stock_irm_cninfo_service.sync_symbols_interactive_questions([])
358
358
 
359
359
 
360
360
  # # 重开定时任务同步
@@ -448,7 +448,7 @@ def check_k_line_sync_count():
448
448
 
449
449
  # 同步公司产品区域信息
450
450
  def sync_company_product_area_industry():
451
- sync_company_product_area_industry_api.sync_company_product_area_industry(None)
451
+ sync_company_product_area_industry_api.sync_company_product_area_industry_task(None)
452
452
 
453
453
 
454
454
  # # 定义BlockingScheduler
@@ -474,7 +474,7 @@ blockingScheduler.add_job(sync_position, 'cron', hour='0,08,09', minute='14')
474
474
  blockingScheduler.add_job(update_company_base_info, 'cron', hour='08,18', minute='05')
475
475
 
476
476
  # 同步互动回答
477
- blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='08,12,17', minute='06')
477
+ blockingScheduler.add_job(sync_all_interactive_questions, 'cron', hour='06,17', minute='30')
478
478
 
479
479
  # 同步十大流通股东信息
480
480
  blockingScheduler.add_job(sync_stock_gdfx_free_top_10_one_day, 'cron', hour='06,18', minute='05')
@@ -566,7 +566,7 @@ blockingScheduler.add_job(sync_all_kpl_plate_info, 'interval', minutes=5, max_in
566
566
  # blockingScheduler.add_job(sync_company_announce, 'cron', hour='07,18,23', minute='33')
567
567
 
568
568
  # check 前复权k线和下一个交易日策略k线数据同步状态
569
- blockingScheduler.add_job(check_k_line_sync_count, 'cron', hour='0,23', minute='10')
569
+ blockingScheduler.add_job(check_k_line_sync_count, 'cron', hour='6,23', minute='10')
570
570
 
571
571
  # 同步公司产品区域信息
572
572
  blockingScheduler.add_job(sync_company_product_area_industry, 'cron', day_of_week='sat,sun', hour='10,20',
@@ -576,4 +576,4 @@ print('定时任务启动成功')
576
576
  blockingScheduler.start()
577
577
  #
578
578
  # if __name__ == '__main__':
579
- # generate_new_day_k_line_info()
579
+ # sync_company_product_area_industry()
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.4.0.2
3
+ Version: 1.4.3.3
4
4
 
@@ -3,17 +3,17 @@ mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
3
3
  mns_scheduler/company_info/announce/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
4
4
  mns_scheduler/company_info/announce/company_announce_sync_service.py,sha256=q8zYOZJmRin_QU2uPk52wngNdgnZooabnfrnqzqFIrM,3055
5
5
  mns_scheduler/company_info/base/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
6
- mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=SIBQqUbAZXGCfAoYq78McvIZ6vrttlCfAlqhZl23z9U,21050
7
- mns_scheduler/company_info/base/sync_company_hold_info_api.py,sha256=ep9CthkoL_NNqkZgAeAdZqaf7_LNFDCrZonUjrT7w5o,1587
8
- mns_scheduler/company_info/base/sync_company_product_area_industry.py,sha256=g1g3NvJFteKMKkovoLrfL5MZovFnj_K4uWdB9EVzviY,7529
6
+ mns_scheduler/company_info/base/sync_company_base_info_api.py,sha256=QAwzK7lex_BuDYwA02XNWiS8xCB402LEisdCnbcUzfo,24393
7
+ mns_scheduler/company_info/base/sync_company_hold_info_api.py,sha256=XEdJzDt6RQqzZOv4mEOFfeh7q7LPTTNWNwT0AR1zHJc,1409
8
+ mns_scheduler/company_info/base/sync_company_product_area_industry.py,sha256=fEWvYjknjC19yUiitfCdQeFKt77tfYQDSJv1bv1ZSXY,7295
9
9
  mns_scheduler/company_info/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
10
- mns_scheduler/company_info/clean/company_info_clean_api.py,sha256=P_-Nms6S1nVyqVOFKDT-Cq1RvriZV4IMz9eZCDF5Ovk,6104
10
+ mns_scheduler/company_info/clean/company_info_clean_api.py,sha256=vm6gr2yKoMpIFRmsz_EvKfd_7ItbfInjkISHhKWHqBA,6102
11
11
  mns_scheduler/company_info/constant/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
12
- mns_scheduler/company_info/constant/company_constant_data.py,sha256=0qhRXLASsQlYnJe_vy5HCwNQZWz-hmJslbr9VuBnmGY,22486
12
+ mns_scheduler/company_info/constant/company_constant_data.py,sha256=7emiXUeAla8nfyYYauGjsMarfY3ckN4TgYlON477jQE,22566
13
13
  mns_scheduler/company_info/de_list_stock/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
14
14
  mns_scheduler/company_info/de_list_stock/de_list_stock_service.py,sha256=QNtKc1ZI6xHjupcxbOBN7fBhi6oAGtL7X1TQZVzfpnk,1993
15
15
  mns_scheduler/company_info/em_stock_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
16
- mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=csPArPy7IZPcycvEB3vl1ENVsrkcv0db5dMxVXIfn0c,3738
16
+ mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py,sha256=9NIv8HRAgjGFcTnw_i9YGQzQBZc57T2hdt66ciZcMZY,3922
17
17
  mns_scheduler/company_info/remark/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
18
18
  mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=L8wC8LU7-GYZb1TyKLjODJURROOEO4izZBxnWEM7Ahc,2334
19
19
  mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -46,8 +46,6 @@ mns_scheduler/db/script/sync/sync_hui_ce_test_data.py,sha256=oymZRnt-cMnrrHod796
46
46
  mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py,sha256=32F7kmxgube7F-_9-QhAHdjqWAQfRZZ51p7MdKi1u6I,2172
47
47
  mns_scheduler/db/script/update/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
48
48
  mns_scheduler/db/script/update/update_col_field.py,sha256=m7RJbNLTcaeknwHR50i3aebT--Rc6udpbOqyGwt61qg,1274
49
- mns_scheduler/debt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
50
- mns_scheduler/debt/kzz_bond_info_sync.py,sha256=FOefhRDqSN1YRqY6drCN3p6PgzVD_isWQ15l9OllCGI,1346
51
49
  mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
52
50
  mns_scheduler/dt/stock_dt_pool_sync.py,sha256=5ivRUOnFtOapZniwTbujf1lVq3y4btm2Cmd5R6JJAVo,3466
53
51
  mns_scheduler/finance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -58,7 +56,7 @@ mns_scheduler/finance/em/em_financial_profit_sync_service_api.py,sha256=j5xnzcSt
58
56
  mns_scheduler/finance/em/finance_common_api.py,sha256=rqsVJZEklJjvM9ogl-9GQaWxyh1LE6IKoTkQkN5cBvE,2453
59
57
  mns_scheduler/finance/xue_qiu/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
60
58
  mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py,sha256=r_RtfM2SBzQcvO1MH8Dt8mOXg2tbZOLz0sNwqne9jFs,2769
61
- mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py,sha256=SqJhq57BHyz0pJbLLv1fqfmhtapxQFT_OdNNL7v4wgk,7275
59
+ mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py,sha256=aRqNPqnyCP_sKl7afdk3Xrfa9IRCbU6MDK3_AlxTDBQ,7218
62
60
  mns_scheduler/hk/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
63
61
  mns_scheduler/hk/hk_company_info_sync_service_api.py,sha256=MGIKodN9oXaY0iwtdsrg4wwHXkMglFvY8eyeTpbas6k,3724
64
62
  mns_scheduler/hk/hk_industry_info_sync_service_api.py,sha256=WdCTaBi4GDicWfmiYbI-byBCXZwknkYZHk6y2IloMys,2275
@@ -67,14 +65,14 @@ mns_scheduler/industry/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlI
67
65
  mns_scheduler/industry/ths/ths_industry_index_service.py,sha256=MHvzUsDHnmdQn-mJc_D2uBKP0qvVWWagDV568xChPqg,2686
68
66
  mns_scheduler/industry/ths/ths_industry_sync_service.py,sha256=r0jLbY3JcnCGgLWYzRrXiqIbeT8PBGnG2dT_INuN824,2762
69
67
  mns_scheduler/irm/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
70
- mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=CWNJ5O-Rx3X2c3YcVRJ2L6VWq77aHq7Ee3wPpUBPNSA,9730
68
+ mns_scheduler/irm/stock_irm_cninfo_service.py,sha256=ChOl_zWNSCXpj-NlveLaSsfie8hARusU4Ut1V_LAeOc,9759
71
69
  mns_scheduler/irm/api/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
72
70
  mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py,sha256=EE09q9iIPNAEzxhKCM-2tsm1FZID3-fqdfikK1VS6H8,4931
73
71
  mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py,sha256=iJ9K8FhatQpCx5PqusIH5x4MAw3F1v3fYC1Ztsp_2Zw,6199
74
72
  mns_scheduler/k_line/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
75
73
  mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
76
74
  mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=ZTnSpQ2zKnNPWCkHKPJkLdkxVK29szgufxNV6uvXG7s,1344
77
- mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=htllTDOmzJLhhdpHTEgAn03iSlJT7D8GQOhhdnwDktc,8852
75
+ mns_scheduler/k_line/clean/k_line_info_clean_task.py,sha256=i-6XSHUC6NxgZubCfU8NGyA0YHHMgi1b-xxlrRhg-is,9026
78
76
  mns_scheduler/k_line/clean/daily/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
79
77
  mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py,sha256=gIoInwd1eCKCmhIOJHo8MuNEwj8ehMxYw83j52pxmxk,20447
80
78
  mns_scheduler/k_line/clean/daily/daily_k_line_service.py,sha256=1S-6sih0KptZEWYBN3jgVJHlv5y11QPONYjR-MpOQn8,6906
@@ -124,13 +122,13 @@ mns_scheduler/risk/self/wei_pan_stock_api.py,sha256=ac_hhdwoK8-uI_ag40YEj4iTOkB8
124
122
  mns_scheduler/risk/test/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
125
123
  mns_scheduler/risk/test/fix_blask_list.py,sha256=IRDedHWuTi9y8EIZSwdiRxEUZcYAY3TH15GgJRmnQEw,1245
126
124
  mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
- mns_scheduler/risk/transactions/transactions_check_api.py,sha256=fSHa15GlmzT-fnsYBTlhigKkXHHmO4JIUjpwQ66fszE,7379
125
+ mns_scheduler/risk/transactions/transactions_check_api.py,sha256=8lXid7P8NTVW9aPKS-v6Tv0wiseCnasVQQzD9sR49XI,7379
128
126
  mns_scheduler/self_choose/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
129
- mns_scheduler/self_choose/ths_self_choose_service.py,sha256=8GYkl7GwZWypcCYttFgmwVZlQqBIloOk1g-H1-Vznw8,6832
127
+ mns_scheduler/self_choose/ths_self_choose_service.py,sha256=g3w4DBE_BGo-ey4Sj_Z5wqjUugTrMBAjEpGcoDGPyHE,7155
130
128
  mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
131
129
  mns_scheduler/trade/auto_ipo_buy_api.py,sha256=jVe5ZiXwzkDy_j_4X4rUamSzJpmzhV16lNKwbeWgpQw,386
132
130
  mns_scheduler/trade/auto_sell_service_api.py,sha256=A2RB3WFxVHqbNPaPvhIgO-3uaicFZVmBKUy2TsfMU90,4624
133
- mns_scheduler/trade/sync_position_api.py,sha256=eGJAL1WoP_WwDloKQqeUXZUqtQv8G6VlODe8EDhmgMY,2748
131
+ mns_scheduler/trade/sync_position_api.py,sha256=o73_qdh_2uzOed6HFzAipM5hKOLqVhThph2DcAri3Oc,4136
134
132
  mns_scheduler/trade/auto_login/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
135
133
  mns_scheduler/trade/auto_login/trader_auto_service.py,sha256=bsagj26s74Zv5OEyGahhBX_OK4Iuo5ZmuItsON9DDmY,795
136
134
  mns_scheduler/trade/balance/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
@@ -140,7 +138,7 @@ mns_scheduler/trade/task/trader_task_service.py,sha256=1vdjfs-M9y0ana2OLwWdlkB9Y
140
138
  mns_scheduler/trade/tfp/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
141
139
  mns_scheduler/trade/tfp/stock_tfp_info_sync.py,sha256=7sHUhvMW_5vEyfVhFGDP7It2F27STb0OcpNnBCQjZ8I,2574
142
140
  mns_scheduler/zb/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
143
- mns_scheduler/zb/stock_zb_pool_sync.py,sha256=YXXmofkOsXxTQSUboy7AfEQUeszXVop5oZxLKBqQpJE,1272
141
+ mns_scheduler/zb/stock_zb_pool_sync.py,sha256=ri8J2tgDduGY5eTYIpN6sYPNtqk_tmJxG5spvpWT2_s,1272
144
142
  mns_scheduler/zt/__init__.py,sha256=Rzolrn2R5RZIj-eOmu9KcL6oZBY9Wjz_uBFXPlzirQc,1641
145
143
  mns_scheduler/zt/connected_boards/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
146
144
  mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py,sha256=HfjPHKD99fU9c37kSenEX2_qNvFAjQGgy8ERuacSxwk,10916
@@ -157,15 +155,15 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=k2nrBjG41LU4
157
155
  mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=WX5ZlV0x2kkXiLTep8fcs2ZkWY5BMWS8lQv8xpq4DlY,1685
158
156
  mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=7qUtn58ty9Vc6kY33BooCDIOojDGmSf9U5ncAtZt4cc,1853
159
157
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
160
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=LOEUyTA5g7N6FWxUpHWimWTeXiiMAnUdsYqhG4HpuOY,12154
158
+ mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=coTMbMgoFa0c7SJNzTyuON_XegzOw4rs6a3dAOGQ4Sw,20512
161
159
  mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=LI4o4_sovmLj1tMROPRQRCj5gaITKLGoYH-nUCuysbU,7501
162
- mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=caW-MuF0RFLavJZafeLDYQ29-GxwGsmr5YVrN4lost8,2135
160
+ mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=A-qohVTrnSd8Bs9gubjxScGjB7zEZOBLJuVZfuIwLeU,2445
163
161
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
164
- mns_scheduler/zz_task/data_sync_task.py,sha256=V17cYsn_NxmbJoPG_AFcqrps1XzQF-wMPah7oe9ZMlo,23531
162
+ mns_scheduler/zz_task/data_sync_task.py,sha256=GbOJ0DhHVxTAz9W09POLZl3AzYFlTsPP7Q1VikSfQkY,23545
165
163
  mns_scheduler/zz_task/compensation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
164
  mns_scheduler/zz_task/compensation/compensate_task.py,sha256=Dyo66NcSnXZ-Cne4_v77BBb27SemAiuGXRLnvQ26X0E,6464
167
- mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=ize69Ocy1k5rf8Xckk1izcEJ361HBtWH1zoJrScBS28,5751
168
- mns_scheduler-1.4.0.2.dist-info/METADATA,sha256=B8qLX6Sn2V_umRcLHuql5aZWAjHMZuvtCepnb5OzzJI,64
169
- mns_scheduler-1.4.0.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
170
- mns_scheduler-1.4.0.2.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
171
- mns_scheduler-1.4.0.2.dist-info/RECORD,,
165
+ mns_scheduler/zz_task/compensation/compensate_task_one_day.py,sha256=jvaYpUS8AyJHgJTNchbco6eXMSzW1o4YNHgUBqrRTDk,5753
166
+ mns_scheduler-1.4.3.3.dist-info/METADATA,sha256=gcTNHaKsJ_Xl305CqVUkUQg4sWWQdN1-rrXcnNilEAo,64
167
+ mns_scheduler-1.4.3.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
168
+ mns_scheduler-1.4.3.3.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
169
+ mns_scheduler-1.4.3.3.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 17
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)