mns-scheduler 1.0.2.9__tar.gz → 1.0.3.1__tar.gz

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 (71) hide show
  1. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/PKG-INFO +1 -1
  2. mns-scheduler-1.0.3.1/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +112 -0
  3. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +46 -0
  4. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zz_task/data_sync_task.py +14 -0
  5. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler.egg-info/PKG-INFO +1 -1
  6. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler.egg-info/SOURCES.txt +1 -0
  7. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/setup.py +1 -1
  8. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/README.md +0 -0
  9. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/__init__.py +0 -0
  10. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/big_deal/__init__.py +0 -0
  11. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/big_deal/ths_big_deal_sync.py +0 -0
  12. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/company_info/__init__.py +0 -0
  13. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/company_info/company_constant_data.py +0 -0
  14. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/company_info/company_info_sync_api.py +0 -0
  15. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/__init__.py +0 -0
  16. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/clean/__init__.py +0 -0
  17. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/clean/ths_effective_concept_clean_api.py +0 -0
  18. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/em/__init__.py +0 -0
  19. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/em/em_new_concept_his_sync.py +0 -0
  20. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/em/em_new_concept_sync_common_api.py +0 -0
  21. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/em/em_new_concept_sync_web.py +0 -0
  22. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/__init__.py +0 -0
  23. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/app/__init__.py +0 -0
  24. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/app/ths_new_concept_sync_app.py +0 -0
  25. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/common/__init__.py +0 -0
  26. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +0 -0
  27. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  28. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/symbol/__init__.py +0 -0
  29. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/symbol/sync_concept_all_symbols_api.py +0 -0
  30. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/symbol/sync_symbol_all_concepts_api.py +0 -0
  31. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/web/__init__.py +0 -0
  32. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/web/sync_ths_concept_by_ak_api.py +0 -0
  33. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/web/sync_ths_new_concept_by_web_api.py +0 -0
  34. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/wen_cai/__init__.py +0 -0
  35. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/concept/ths/wen_cai/wen_cai_concept_sync.py +0 -0
  36. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/db/__init__.py +0 -0
  37. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/db/col_move_service.py +0 -0
  38. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/db/db_status.py +0 -0
  39. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/dt/__init__.py +0 -0
  40. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  41. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/ipo/__init__.py +0 -0
  42. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/ipo/auto_ipo_buy_api.py +0 -0
  43. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/k_line/__init__.py +0 -0
  44. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/k_line/clean/__init__.py +0 -0
  45. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  46. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/k_line/clean/k_line_info_clean_service.py +0 -0
  47. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/k_line/sync/__init__.py +0 -0
  48. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/k_line/sync/daily_week_month_line_sync.py +0 -0
  49. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/__init__.py +0 -0
  50. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/__init__.py +0 -0
  51. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/index/__init__.py +0 -0
  52. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  53. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/symbol/__init__.py +0 -0
  54. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  55. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/kpl/selection/total/__init__.py +0 -0
  56. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/real_time/__init__.py +0 -0
  57. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/real_time/realtime_quotes_now_create_db_index.py +0 -0
  58. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/real_time/realtime_quotes_now_sync.py +0 -0
  59. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zb/__init__.py +0 -0
  60. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zb/stock_zb_pool_sync.py +0 -0
  61. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zt/__init__.py +0 -0
  62. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zt/export_open_data_to_excel.py +0 -0
  63. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zt/realtime_quotes_now_zt_kc_sync.py +0 -0
  64. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zt/today_high_chg_pool_sync_api.py +0 -0
  65. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zt/zt_five_boards_sync_api.py +0 -0
  66. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zt/zt_pool_sync_api.py +0 -0
  67. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zz_task/__init__.py +0 -0
  68. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler/zz_task/sync_realtime_quotes_task.py +0 -0
  69. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  70. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/mns_scheduler.egg-info/top_level.txt +0 -0
  71. {mns-scheduler-1.0.2.9 → mns-scheduler-1.0.3.1}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.2.9
3
+ Version: 1.0.3.1
@@ -0,0 +1,112 @@
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)
8
+
9
+ import sys
10
+ import os
11
+
12
+ from mns_common.db.MongodbUtil import MongodbUtil
13
+ import mns_common.constant.db_name_constant as db_name_constant
14
+ import threading
15
+ import pandas as pd
16
+ import mns_common.api.kpl.common.kpl_common_api as kpl_common_api
17
+ import mns_common.utils.data_frame_util as data_frame_util
18
+
19
+ KPL_MINUTE_LIST = ['0930', '0935', '0940', '0945', '0950', '0955',
20
+ '1000', '1005', '1010', '1015', '1020', '1025',
21
+ '1030', '1035', '1040', '1045', '1050', '1055',
22
+ '1100', '1105', '1110', '1115', '1120', '1125',
23
+ '1130',
24
+ '1305', '1310', '1315', '1320', '1325',
25
+ '1330', '1335', '1340', '1345', '1350', '1355',
26
+ '1400', '1405', '1410', '1415', '1420', '1425',
27
+ '1430', '1435', '1440', '1445', '1450', '1455',
28
+ '1500']
29
+
30
+ KPL_MINUTE_BEGIN = "0925"
31
+ KPL_MINUTE_END = "1500"
32
+ file_path = os.path.abspath(__file__)
33
+ end = file_path.index('mns') + 17
34
+ project_path = file_path[0:end]
35
+ sys.path.append(project_path)
36
+
37
+ mongodb_util = MongodbUtil('27017')
38
+ # 定义一个全局锁,用于保护 result 变量的访问
39
+ result_lock = threading.Lock()
40
+ # 初始化 result 变量为一个空的 Pandas DataFrame
41
+ result = pd.DataFrame()
42
+
43
+
44
+ def sync_best_choose_his_index(str_day):
45
+ all_kpl_best_choose_index_df = kpl_common_api \
46
+ .get_plate_index(kpl_common_api.BEST_CHOOSE)
47
+ kpl_best_choose_index_number = all_kpl_best_choose_index_df.shape[0]
48
+ page_max_number = kpl_best_choose_index_number / kpl_common_api.HIS_PAGE_MAX_COUNT
49
+ page_number = 0
50
+ number = 1
51
+ for end_time in KPL_MINUTE_LIST:
52
+ while page_number <= page_max_number:
53
+ index = page_number * kpl_common_api.HIS_PAGE_MAX_COUNT
54
+ kpl_plate_best_index_df = kpl_common_api.get_plate_index_his(index, kpl_common_api.BEST_CHOOSE,
55
+ str_day, KPL_MINUTE_BEGIN,
56
+ end_time)
57
+
58
+ if data_frame_util.is_empty(kpl_plate_best_index_df):
59
+ continue
60
+ kpl_plate_best_index_df['number'] = number
61
+ kpl_plate_best_index_df['str_day'] = str_day
62
+ kpl_plate_best_index_df = kpl_plate_best_index_df[[
63
+ "plate_code",
64
+ "plate_name",
65
+ "heat_score",
66
+ "chg",
67
+ "speed",
68
+ "amount",
69
+ "main_net_inflow",
70
+ "main_inflow_in",
71
+ "main_inflow_out",
72
+ "quantity_ratio",
73
+ "flow_mv",
74
+ "super_order_net",
75
+ "total_mv",
76
+ "last_reason_organ_add",
77
+ "ava_pe_now",
78
+ "ava_pe_next",
79
+ "number",
80
+ "str_day",
81
+
82
+ ]]
83
+ save_kpl_his_index(kpl_plate_best_index_df, str_day, end_time)
84
+ if end_time == KPL_MINUTE_END:
85
+ save_kpl_his_daily(kpl_plate_best_index_df, str_day, end_time)
86
+ page_number = page_number + 1
87
+ # 执行下一个时间段
88
+ page_number = 0
89
+ number = number + 1
90
+
91
+
92
+ def save_kpl_his_index(kpl_plate_best_index_df, str_day, end_time):
93
+ kpl_plate_best_index_df['_id'] = str_day + '-' + end_time + '-' + kpl_plate_best_index_df['plate_code']
94
+ mongodb_util.insert_mongo(kpl_plate_best_index_df, db_name_constant.KPL_BEST_CHOOSE_HIS)
95
+
96
+
97
+ def save_kpl_his_daily(kpl_plate_best_index_df, str_day, end_time):
98
+ kpl_plate_best_index_df['_id'] = str_day + '-' + end_time + '-' + kpl_plate_best_index_df['plate_code']
99
+ mongodb_util.save_mongo(kpl_plate_best_index_df, db_name_constant.KPL_BEST_CHOOSE_DAILY)
100
+
101
+
102
+ def sync_all_days():
103
+ query = {"_id": {"$gte": '2022-07-22'}, 'trade_date': {"$lte": "2024-04-21"}}
104
+ trade_date_list = mongodb_util.find_query_data('trade_date_list', query)
105
+ trade_date_list = trade_date_list.sort_values(by=['trade_date'], ascending=False)
106
+ for trade_one in trade_date_list.itertuples():
107
+ sync_best_choose_his_index(trade_one.trade_date)
108
+
109
+
110
+ if __name__ == '__main__':
111
+ sync_all_days()
112
+ # sync_best_choose_his_index('2024-04-19')
@@ -80,6 +80,9 @@ def sync_all_plate_info():
80
80
  # 同步精选概念股票组成
81
81
  multi_thread_sync_kpl_best_choose_detail()
82
82
  logger.info("同步开票啦精选概念股票组成完成")
83
+ # 更新开票啦空名字名称
84
+ update_null_name()
85
+ logger.info("更新开票啦空名字名称")
83
86
 
84
87
 
85
88
  # 更新一二级关系
@@ -135,7 +138,50 @@ def update_sub_index_relation(first_index_df, kpl_all_concept_df):
135
138
  mongodb_util.update_many(update_query, new_values, db_name_constant.KPL_BEST_CHOOSE_INDEX)
136
139
 
137
140
 
141
+ def update_null_name():
142
+ query = {"plate_name": ''}
143
+ kpl_best_choose_index_df = mongodb_util.find_query_data(db_name_constant.KPL_BEST_CHOOSE_INDEX, query)
144
+ if data_frame_util.is_empty(kpl_best_choose_index_df):
145
+ return
146
+ else:
147
+ kpl_best_choose_index_df_sub = kpl_best_choose_index_df.loc[
148
+ kpl_best_choose_index_df["index_class"] == kpl_constant.SUB_INDEX]
149
+ if data_frame_util.is_not_empty(kpl_best_choose_index_df_sub):
150
+ for sub_one in kpl_best_choose_index_df_sub.itertuples():
151
+ try:
152
+ first_plate_code = sub_one.first_plate_code
153
+ sub_plate_code = sub_one.plate_code
154
+ kpl_best_choose_sub_index_detail = selection_plate_api.best_choose_sub_index(first_plate_code)
155
+ sub_kpl_best_choose_sub_index_detail = kpl_best_choose_sub_index_detail.loc[
156
+ kpl_best_choose_sub_index_detail['plate_code'] == sub_plate_code]
157
+ if data_frame_util.is_not_empty(sub_kpl_best_choose_sub_index_detail):
158
+ plate_name = list(sub_kpl_best_choose_sub_index_detail['plate_name'])[0]
159
+ new_values = {"$set": {"plate_name": plate_name}}
160
+ update_query = {"plate_code": sub_plate_code}
161
+ mongodb_util.update_many(update_query, new_values, db_name_constant.KPL_BEST_CHOOSE_INDEX)
162
+ except BaseException as e:
163
+ logger.error("更新板块kpl概念名称出现异常:{},{}", sub_plate_code, e)
164
+ kpl_best_choose_index_df_first = kpl_best_choose_index_df.loc[
165
+ kpl_best_choose_index_df["index_class"] == kpl_constant.FIRST_INDEX]
166
+ if data_frame_util.is_not_empty(kpl_best_choose_index_df_first):
167
+ for first_one in kpl_best_choose_index_df_sub.itertuples():
168
+ try:
169
+ first_plate_code = first_one.plate_code
170
+ first_index_df = sync_best_choose_first_index.choose_field_choose_first_index()
171
+ first_index_df_one = first_index_df.loc[first_index_df['plate_code'] == first_plate_code]
172
+ if data_frame_util.is_not_empty(first_index_df_one):
173
+ plate_name = list(first_index_df_one['plate_name'])[0]
174
+ new_values = {"$set": {"plate_name": plate_name}}
175
+ update_query = {"plate_code": first_plate_code}
176
+ mongodb_util.update_many(update_query, new_values, db_name_constant.KPL_BEST_CHOOSE_INDEX)
177
+ except BaseException as e:
178
+ logger.error("更新板块kpl概念名称出现异常:{},{}", first_plate_code, e)
179
+
180
+ return kpl_best_choose_index_df
181
+
182
+
138
183
  if __name__ == '__main__':
184
+ update_null_name()
139
185
  update_best_choose_plate_relation()
140
186
 
141
187
  # 同步第一和第二级别精选指数
@@ -34,6 +34,7 @@ import mns_scheduler.concept.clean.ths_effective_concept_clean_api as ths_effect
34
34
  import mns_scheduler.kpl.selection.total.sync_kpl_best_total_sync_api as sync_kpl_best_total_sync_api
35
35
  import mns_scheduler.company_info.company_info_sync_api as company_info_sync_api
36
36
  import mns_scheduler.ipo.auto_ipo_buy_api as auto_ipo_buy_api
37
+ import mns_scheduler.kpl.selection.index.sync_best_choose_his_index as sync_best_choose_his_index
37
38
 
38
39
 
39
40
  # 同步交易日期任务完成
@@ -272,6 +273,16 @@ def auto_ipo_buy():
272
273
  auto_ipo_buy_api.auto_ipo_buy()
273
274
 
274
275
 
276
+ # 同步开盘啦当日精选指数行情数据
277
+
278
+ def sync_kpl_best_his_quotes():
279
+ now_date = datetime.now()
280
+ str_day = now_date.strftime('%Y-%m-%d')
281
+ if trade_date_common_service_api.is_trade_day(str_day):
282
+ sync_best_choose_his_index.sync_best_choose_his_index(str_day)
283
+ logger.info('同步开盘啦当日精选指数行情数据任务完成')
284
+
285
+
275
286
  # # 定义BlockingScheduler
276
287
  blockingScheduler = BlockingScheduler()
277
288
  # sync_trade_date 同步交易日期
@@ -336,6 +347,9 @@ blockingScheduler.add_job(auto_ipo_buy, 'cron', hour='10', minute='40,50')
336
347
  # 更新开盘啦指数关系
337
348
  blockingScheduler.add_job(update_best_choose_plate_relation, 'cron', hour='09,18', minute='25')
338
349
 
350
+ # 更新开盘啦指数关系
351
+ blockingScheduler.add_job(sync_kpl_best_his_quotes, 'cron', hour='18,22', minute='25')
352
+
339
353
  print('定时任务启动成功')
340
354
  blockingScheduler.start()
341
355
 
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.2.9
3
+ Version: 1.0.3.1
@@ -47,6 +47,7 @@ mns_scheduler/k_line/sync/daily_week_month_line_sync.py
47
47
  mns_scheduler/kpl/__init__.py
48
48
  mns_scheduler/kpl/selection/__init__.py
49
49
  mns_scheduler/kpl/selection/index/__init__.py
50
+ mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py
50
51
  mns_scheduler/kpl/selection/index/sync_best_choose_index.py
51
52
  mns_scheduler/kpl/selection/symbol/__init__.py
52
53
  mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns-scheduler',
5
- version='1.0.2.9',
5
+ version='1.0.3.1',
6
6
  packages=find_packages(),
7
7
  install_requires=[], # 如果有依赖项,可以在这里列出
8
8
  )