mns-scheduler 1.0.9.1__py3-none-any.whl → 1.0.9.4__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.

@@ -22,6 +22,7 @@ def annual_report_audit_check(new_report_df, period_time):
22
22
  opinion_type = list(new_report_one_df['OPINION_TYPE'])[0]
23
23
  symbol = list(new_report_one_df['SECURITY_CODE'])[0]
24
24
  name = list(new_report_one_df['SECURITY_NAME_ABBR'])[0]
25
+ notice_date = list(new_report_one_df['NOTICE_DATE'])[0]
25
26
  now_date = datetime.now()
26
27
  str_day = now_date.strftime('%Y-%m-%d')
27
28
  str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
@@ -33,7 +34,7 @@ def annual_report_audit_check(new_report_df, period_time):
33
34
  symbol,
34
35
  name,
35
36
  str_day,
36
- str_now_date,
37
+ notice_date,
37
38
  '年报审计有问题:' + "[" + str(opinion_type) + "]",
38
39
  '年报审计有问题',
39
40
  '',
@@ -8,8 +8,8 @@ from mns_common.constant.black_list_classify_enum import BlackClassify
8
8
  mongodb_util = MongodbUtil('27017')
9
9
  # 最大负债比
10
10
  MAX_LIABILITY_RATIO = 90
11
- # 负载超过90%时候最小净资产
12
- MIN_NET_ASSET = 1000000000
11
+ # 最小净资产1.5亿
12
+ MIN_NET_ASSET = 150000000
13
13
  # 排除校验负债比的行业
14
14
  EXCLUDE_INDUSTRY = ['保险', '银行', '证券']
15
15
 
@@ -20,7 +20,9 @@ def net_assets_check(report_type, new_report_df, period_time):
20
20
  new_report_df = new_report_df.sort_values(by=['REPORT_DATE'], ascending=False)
21
21
  new_report_one_df = new_report_df.iloc[0:1]
22
22
  # 负债比
23
- liability_ratio = list(new_report_one_df['liability_ratio'])[0]
23
+ liability_ratio = round(
24
+ list(new_report_one_df['TOTAL_LIABILITIES'])[0] * 100 / list(new_report_one_df['TOTAL_ASSETS'])[0],
25
+ 2)
24
26
  # 净资产
25
27
  net_asset = round(list(new_report_one_df['TOTAL_ASSETS'])[0] - list(new_report_one_df['TOTAL_LIABILITIES'])[0],
26
28
  2)
@@ -31,7 +33,7 @@ def net_assets_check(report_type, new_report_df, period_time):
31
33
  str_day = now_date.strftime('%Y-%m-%d')
32
34
  str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
33
35
  id_key = symbol + "_" + period_time + "_" + BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code
34
-
36
+ notice_date = list(new_report_one_df['NOTICE_DATE'])[0]
35
37
  query_company = {'_id': symbol, 'industry': {'$in': EXCLUDE_INDUSTRY}}
36
38
  if mongodb_util.exist_data_query(db_name_constant.COMPANY_INFO, query_company):
37
39
  return None
@@ -41,8 +43,8 @@ def net_assets_check(report_type, new_report_df, period_time):
41
43
  symbol,
42
44
  name,
43
45
  str_day,
44
- str_now_date,
45
- '负债过高:' + "[" + str(
46
+ notice_date,
47
+ '负债过高:' + "[" + "负债比:" + str(
46
48
  liability_ratio) + "]" + "," + "净资产:"
47
49
  + str(round(net_asset / common_service_fun_api.HUNDRED_MILLION,
48
50
  0)) + "亿",
@@ -52,3 +54,19 @@ def net_assets_check(report_type, new_report_df, period_time):
52
54
  BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_name,
53
55
  BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code,
54
56
  BlackClassify.FINANCIAL_PROBLEM_DEBT.level_name)
57
+ if net_asset < MIN_NET_ASSET:
58
+ black_list_service_api.save_black_stock(id_key,
59
+ symbol,
60
+ name,
61
+ str_day,
62
+ notice_date,
63
+ '净资产低:' + "[" + "负债比:" + str(
64
+ liability_ratio) + "]" + "," + "净资产:"
65
+ + str(round(net_asset / common_service_fun_api.HUNDRED_MILLION,
66
+ 0)) + "亿",
67
+ '净资产低:' + "[" + str(liability_ratio) + "]",
68
+ '',
69
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_code,
70
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.up_level_name,
71
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.level_code,
72
+ BlackClassify.FINANCIAL_PROBLEM_DEBT.level_name)
@@ -26,7 +26,7 @@ def profit_income_check(new_report_df, period_time, report_type):
26
26
  now_date = datetime.now()
27
27
  str_day = now_date.strftime('%Y-%m-%d')
28
28
  str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
29
-
29
+ notice_date = list(new_report_one_df['NOTICE_DATE'])[0]
30
30
  if report_type == db_name_constant.EM_STOCK_PROFIT:
31
31
  # 利润总额 净利润 扣除非经常性损益后的净利润 三者最小为负
32
32
  # 利润总额
@@ -63,7 +63,7 @@ def profit_income_check(new_report_df, period_time, report_type):
63
63
  symbol,
64
64
  name,
65
65
  str_day,
66
- str_now_date,
66
+ notice_date,
67
67
  '年报:利润:' + '[' + str(min_profit) + '万]' + '收入:' + str(
68
68
  total_operate_income) + '[' + '亿元]--' + '触发退市风险',
69
69
  '年报:利润:' + '[' + str(min_profit) + '万]' + '收入:' + str(
@@ -62,7 +62,7 @@ def sync_all_investigate_stocks(page_size, search_key, begin_day, end_day):
62
62
 
63
63
  # 立案调查的股票
64
64
  def sync_new_high_risk_stocks():
65
- before_days = 500
65
+ before_days = 60
66
66
  const_num = 30
67
67
  init_date = datetime.now()
68
68
  str_day = init_date.strftime('%Y-%m-%d')
@@ -0,0 +1,165 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import mns_common.api.em.east_money_stock_api as east_money_stock_api
9
+ from datetime import datetime
10
+ import mns_common.component.self_choose.black_list_service_api as black_list_service_api
11
+ import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
12
+ from loguru import logger
13
+ import mns_common.constant.db_name_constant as db_name_constant
14
+ from mns_common.db.MongodbUtil import MongodbUtil
15
+ import mns_common.component.company.company_common_service_new_api as company_common_service_new_api
16
+ from mns_common.constant.black_list_classify_enum import BlackClassify
17
+ import mns_common.component.common_service_fun_api as common_service_fun_api
18
+ import mns_common.utils.date_handle_util as date_handle_util
19
+
20
+ mongodb_util = MongodbUtil('27017')
21
+
22
+ # 主板 市值最小值 6亿 20个交易日低于5亿退市
23
+ MAIN_MARKET_MIN_MV = 600000000
24
+
25
+ # 创业 科创 北交所 市值最小值 4亿 20个交易日低于3亿退市
26
+ SUB_MARKET_MIN_MV = 400000000
27
+
28
+ # 最小面值 20个交易日低于1元退市
29
+ MIN_NOW_PRICE = 1.5
30
+
31
+ # 主板 120个交易日 参考600万 成交量低于500万股
32
+ MAIN_MARKET_MIN_VOLUME = 6000000
33
+
34
+ # 科创 创业 120个交易日 参考300万 成交量低于200万股
35
+ SUB_MARKET_MIN_VOLUME = 3000000
36
+
37
+ # 北交所 120个交易日 参考150万 成交量低于100万股
38
+ BJS_MARKET_MIN_VOLUME = 1500000
39
+
40
+
41
+ def transactions_check_task():
42
+ real_time_quotes_now = east_money_stock_api.get_real_time_quotes_all_stocks()
43
+ real_time_quotes_now = common_service_fun_api.classify_symbol(real_time_quotes_now)
44
+ real_time_quotes_now = common_service_fun_api.exclude_ts_symbol(real_time_quotes_now)
45
+
46
+ de_list_symbol = company_common_service_new_api.get_de_list_company()
47
+
48
+ real_time_quotes_now = real_time_quotes_now.loc[~(real_time_quotes_now['symbol'].isin(de_list_symbol))]
49
+
50
+ query = {"up_level_code": BlackClassify.TRANSACTIONS.level_code}
51
+ tag = mongodb_util.remove_data(query, db_name_constant.SELF_BLACK_STOCK)
52
+ success = tag.acknowledged
53
+ if success:
54
+
55
+ for stock_one in real_time_quotes_now.itertuples():
56
+ try:
57
+ total_mv_check(stock_one)
58
+ now_price_check(stock_one)
59
+ volume_check(stock_one)
60
+ except BaseException as e:
61
+ logger.error("交易风险校验异常:{},{}", e, stock_one.symbol)
62
+
63
+
64
+ # 总市值check
65
+ def total_mv_check(stock_one):
66
+ classification = stock_one.classification
67
+ total_mv = stock_one.total_mv
68
+ now_date = datetime.now()
69
+ str_day = now_date.strftime('%Y-%m-%d')
70
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
71
+ key_id = stock_one.symbol + "_" + BlackClassify.MV_RISK.level_code
72
+ tag = False
73
+ if classification in ['S', 'H'] and total_mv < MAIN_MARKET_MIN_MV:
74
+ tag = True
75
+ elif classification in ['K', 'C', "X"] and total_mv < SUB_MARKET_MIN_MV:
76
+ tag = True
77
+
78
+ if tag:
79
+ black_list_service_api.save_black_stock(
80
+ key_id,
81
+ stock_one.symbol,
82
+ stock_one.name,
83
+ str_day,
84
+ str_now_date,
85
+ BlackClassify.MV_RISK.level_name + ":" + str(
86
+ round(total_mv / common_service_fun_api.HUNDRED_MILLION, 2)) + "亿",
87
+ BlackClassify.MV_RISK.level_name + ":" + str(
88
+ round(total_mv / common_service_fun_api.HUNDRED_MILLION, 2)) + "亿",
89
+ "",
90
+ BlackClassify.MV_RISK.up_level_code,
91
+ BlackClassify.MV_RISK.up_level_name,
92
+ BlackClassify.MV_RISK.level_code,
93
+ BlackClassify.MV_RISK.level_name,
94
+ )
95
+
96
+
97
+ # 当前面值check
98
+ def now_price_check(stock_one):
99
+ now_price = stock_one.now_price
100
+ now_date = datetime.now()
101
+ str_day = now_date.strftime('%Y-%m-%d')
102
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
103
+ key_id = stock_one.symbol + "_" + BlackClassify.CLOSE_PRICE_RISK.level_code
104
+ if now_price < MIN_NOW_PRICE:
105
+ black_list_service_api.save_black_stock(
106
+ key_id,
107
+ stock_one.symbol,
108
+ stock_one.name,
109
+ str_day,
110
+ str_now_date,
111
+ BlackClassify.CLOSE_PRICE_RISK.level_name + ":当前价格" + str(now_price),
112
+ BlackClassify.CLOSE_PRICE_RISK.level_name + ":当前价格" + str(now_price),
113
+ "",
114
+ BlackClassify.CLOSE_PRICE_RISK.up_level_code,
115
+ BlackClassify.CLOSE_PRICE_RISK.up_level_name,
116
+ BlackClassify.CLOSE_PRICE_RISK.level_code,
117
+ BlackClassify.CLOSE_PRICE_RISK.level_name,
118
+ )
119
+
120
+
121
+ #
122
+ def volume_check(stock_one):
123
+ now_date = datetime.now()
124
+ str_day = now_date.strftime('%Y-%m-%d')
125
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
126
+ trade_date_120 = trade_date_common_service_api.get_before_trade_date(str_day, 120)
127
+ query = {'date': {"$gte": date_handle_util.no_slash_date(trade_date_120)}, 'symbol': stock_one.symbol}
128
+ stock_qfq_daily_df = mongodb_util.find_query_data(db_name_constant.STOCK_QFQ_DAILY, query)
129
+ if stock_qfq_daily_df.shape[0] < 120:
130
+ return
131
+ # volume 单位是100股
132
+ sum_volume = sum(stock_qfq_daily_df['volume']) * 100
133
+ key_id = stock_one.symbol + "_" + BlackClassify.AMOUNT_RISK.level_code
134
+ tag = False
135
+ classification = stock_one.classification
136
+ if classification in ['S', 'H'] and sum_volume < MAIN_MARKET_MIN_VOLUME:
137
+ tag = True
138
+
139
+ elif classification in ['K', 'C'] and sum_volume < SUB_MARKET_MIN_VOLUME:
140
+ tag = True
141
+
142
+ elif classification in ['X'] and sum_volume < BJS_MARKET_MIN_VOLUME:
143
+ tag = True
144
+
145
+ if tag:
146
+ black_list_service_api.save_black_stock(
147
+ key_id,
148
+ stock_one.symbol,
149
+ stock_one.name,
150
+ str_day,
151
+ str_now_date,
152
+ BlackClassify.AMOUNT_RISK.level_name + ":120个交易日成交量:" + str(
153
+ round(sum_volume / common_service_fun_api.TEN_THOUSAND), 0) + "万股",
154
+ BlackClassify.AMOUNT_RISK.level_name + ":120个交易日成交量:" + str(
155
+ round(sum_volume / common_service_fun_api.TEN_THOUSAND), 0) + "万股",
156
+ "",
157
+ BlackClassify.AMOUNT_RISK.up_level_code,
158
+ BlackClassify.AMOUNT_RISK.up_level_name,
159
+ BlackClassify.AMOUNT_RISK.level_code,
160
+ BlackClassify.AMOUNT_RISK.level_name,
161
+ )
162
+
163
+
164
+ if __name__ == '__main__':
165
+ transactions_check_task()
@@ -46,6 +46,7 @@ import mns_scheduler.open.sync_one_day_open_data_to_db_service as sync_one_day_o
46
46
  import mns_scheduler.zt.high_chg.sync_high_chg_pool_service as sync_high_chg_pool_service
47
47
  import mns_scheduler.zt.high_chg.sync_high_chg_real_time_quotes_service as sync_high_chg_real_time_quotes_service
48
48
  import mns_scheduler.risk.self.wei_pan_stock_api as wei_pan_stock_api
49
+ import mns_scheduler.risk.transactions.transactions_check_api as transactions_check_api
49
50
 
50
51
 
51
52
  # 同步交易日期任务完成
@@ -325,13 +326,15 @@ def sync_kpl_best_his_quotes():
325
326
  logger.info('同步开盘啦当日精选指数行情数据任务完成')
326
327
 
327
328
 
328
- # 同步被立案调查的股票
329
+ # 同步高风险的股票
329
330
  def sync_new_high_risk_stocks():
330
331
  logger.info('同步被立案调查的股票')
331
332
  register_and_investigate_stock_sync_api.sync_new_high_risk_stocks()
332
333
  reason_detail = '微盘股拉黑'
333
334
  concept_code_wei_pan = '883418'
334
335
  wei_pan_stock_api.add_concept_to_lack_list(concept_code_wei_pan, reason_detail)
336
+ logger.info('同步交易类风险的股票')
337
+ transactions_check_api.transactions_check_task()
335
338
 
336
339
 
337
340
  # 同步互动回答
@@ -392,10 +395,10 @@ blockingScheduler.add_job(update_one_concept_all_symbol_detail, 'cron', hour='08
392
395
  blockingScheduler.add_job(update_one_symbol_all_concepts, 'cron', hour='09,18,12', minute='15')
393
396
 
394
397
  # 开盘前同步同花顺新概念指数
395
- blockingScheduler.add_job(sync_new_concept_data_web, 'cron', hour='09', minute='05,10,15,20,25,29')
398
+ blockingScheduler.add_job(sync_new_concept_data_web, 'cron', hour='09,22', minute='00,10,20,28')
396
399
 
397
400
  # 同步同花顺新增概念指数(定时轮训,暂时10分钟)
398
- blockingScheduler.add_job(sync_new_concept_data_web, 'interval', minutes=10, max_instances=4)
401
+ # blockingScheduler.add_job(sync_new_concept_data_web, 'interval', minutes=10, max_instances=4)
399
402
 
400
403
  # 同步开盘啦新增精选概念(定时轮训,暂时五分钟)
401
404
  blockingScheduler.add_job(sync_all_kpl_plate_info, 'interval', minutes=5, max_instances=4)
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.9.1
3
+ Version: 1.0.9.4
4
4
 
@@ -38,8 +38,6 @@ mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py,sha256=yr
38
38
  mns_scheduler/finance/em_financial_profit_sync_service_api.py,sha256=7gnrn6OyMU4sxrvXXgzrj-EP914KwRpJW76XgKuWO0Q,14145
39
39
  mns_scheduler/finance/finance_common_api.py,sha256=e72-c6xcFaS4Z9wq9Yx2_HZ7PdStMeP6s4O61yeTKmc,2471
40
40
  mns_scheduler/finance/sync_financial_report_service_api.py,sha256=YSSVt5R1EqYbW8C3JH4ng2iq7UkQynAMA1ye6G4iecw,5086
41
- mns_scheduler/finance/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
42
- mns_scheduler/finance/test/fix_blask_list.py,sha256=jjLhhIWH1L4CgNp2jQ_HAHbC3wVgeX1TzhqC--_D2MI,1249
43
41
  mns_scheduler/hk/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
44
42
  mns_scheduler/hk/hk_company_info_sync_service_api.py,sha256=JEfIl_up36b1UpDxfPhosP6_i2Lo17Ma_GHLytoMjWI,3661
45
43
  mns_scheduler/irm/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
@@ -84,15 +82,18 @@ mns_scheduler/risk/financial_report_risk_check_api.py,sha256=BPkMZ7aINfOFPswIV11
84
82
  mns_scheduler/risk/compliance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
83
  mns_scheduler/risk/compliance/undisclosed_annual_report_api.py,sha256=4kY6mgDsZ-zd6W8E3awURwgP3Y71rNqwDkWTAFw8hZk,3676
86
84
  mns_scheduler/risk/financial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- mns_scheduler/risk/financial/annual_report_audit_check_api.py,sha256=SEU5N7y6JwlKTY0gGEw43Rq9nANCACaNVrV0ltpfknY,2065
88
- mns_scheduler/risk/financial/net_assets_check_api.py,sha256=6o0DdsisVRY9LFLh22zjLyEIQrJ4PvfkeVtTIA43ICo,3091
89
- mns_scheduler/risk/financial/profit_income_check_api.py,sha256=wdWxFK8TfEEbPYW__XbL41FzcBgOW79BP_z_Ulp9UUM,4300
85
+ mns_scheduler/risk/financial/annual_report_audit_check_api.py,sha256=HxQNxlVSPusBkB9k96qUNfIcImlTYHA5Dmr11jAx_LY,2125
86
+ mns_scheduler/risk/financial/net_assets_check_api.py,sha256=TPiTDMlX8X7-rkx97M8biMorUVKQlXXes1IBNgtTs6w,4559
87
+ mns_scheduler/risk/financial/profit_income_check_api.py,sha256=4iGZEIveq5SIOBziyMH72oxSKbQJ3WfyjUMhDJfxUEU,4358
90
88
  mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py,sha256=SQ7dieSCOf1z42Wi1zDEii3poAT5wfyBrV43dXkAaaw,22
91
89
  mns_scheduler/risk/major_violations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
- mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py,sha256=TcvYKPZzsyQMRi51EfJwH4Ph-aD8cY_Tn8nnTIxvun4,5386
90
+ mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py,sha256=oyTBUahc-SFYJmS4ucZL7HhSqv2B_WXBrtTCrKAbcsI,5385
93
91
  mns_scheduler/risk/self/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
92
  mns_scheduler/risk/self/wei_pan_stock_api.py,sha256=PRaFmdnQ7763ngEYAcBkQ7FGP9CJENJZnLfO7bAn1c0,1846
93
+ mns_scheduler/risk/test/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
94
+ mns_scheduler/risk/test/fix_blask_list.py,sha256=jjLhhIWH1L4CgNp2jQ_HAHbC3wVgeX1TzhqC--_D2MI,1249
95
95
  mns_scheduler/risk/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
+ mns_scheduler/risk/transactions/transactions_check_api.py,sha256=_VOiUyIPyTGbcrbuxzJnp1KiLdKBJsRS584f-jqHXA0,6682
96
97
  mns_scheduler/trade/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
97
98
  mns_scheduler/trade/auto_ipo_buy_api.py,sha256=QXNzFJGNGveVUcXBh0RRJb_HV7abbLYXRljezPJf9ZM,377
98
99
  mns_scheduler/trade/auto_sell_service_api.py,sha256=HaauZeOsuLNBrowXT8IKaSgWLR2Huott6mg_AoLhpUY,4423
@@ -115,9 +116,9 @@ mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=R0syG5gcXRlLxswbBl
115
116
  mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
116
117
  mns_scheduler/zt/zt_pool/zt_pool_sync_api.py,sha256=Uca9fcnxIiz5Pfe1Ot_IgRu7zA7KqM7wtOHkMKF2kSo,7604
117
118
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
118
- mns_scheduler/zz_task/data_sync_task.py,sha256=1iXh3fHv4l9zDBrXTo8UDHrL-Uqv3anmMlAKQp_XkDo,17620
119
+ mns_scheduler/zz_task/data_sync_task.py,sha256=_QJdS8Qwu5CoZOsauLA6yN7PoDldUPBahUi-zKoMGwY,17807
119
120
  mns_scheduler/zz_task/sync_realtime_quotes_task.py,sha256=DN3bq2XCDZC-PHlbD2NTog48bR44EruIEc2QVGKg7Tk,932
120
- mns_scheduler-1.0.9.1.dist-info/METADATA,sha256=XDHm91d_xMtqGQteVbhIbG-K48lv77Yw_uDXGLZX3lo,64
121
- mns_scheduler-1.0.9.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
122
- mns_scheduler-1.0.9.1.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
123
- mns_scheduler-1.0.9.1.dist-info/RECORD,,
121
+ mns_scheduler-1.0.9.4.dist-info/METADATA,sha256=Feyoaz5R_mbxJHxNvkG0o1bjEwRk0gc8MmpIqsEMuyE,64
122
+ mns_scheduler-1.0.9.4.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
123
+ mns_scheduler-1.0.9.4.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
124
+ mns_scheduler-1.0.9.4.dist-info/RECORD,,
File without changes
File without changes