mns-scheduler 1.1.9.7__py3-none-any.whl → 1.1.9.9__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.
- mns_scheduler/concept/clean/ths_concept_clean_api.py +15 -2
- mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +18 -4
- mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +1 -1
- mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +11 -10
- {mns_scheduler-1.1.9.7.dist-info → mns_scheduler-1.1.9.9.dist-info}/METADATA +1 -1
- {mns_scheduler-1.1.9.7.dist-info → mns_scheduler-1.1.9.9.dist-info}/RECORD +8 -8
- {mns_scheduler-1.1.9.7.dist-info → mns_scheduler-1.1.9.9.dist-info}/WHEEL +0 -0
- {mns_scheduler-1.1.9.7.dist-info → mns_scheduler-1.1.9.9.dist-info}/top_level.txt +0 -0
|
@@ -76,9 +76,22 @@ def update_one_concept_relevance_industry(concept_code):
|
|
|
76
76
|
ths_stock_concept_detail_df['first_relevance_industry'] = first_relevance_industry
|
|
77
77
|
ths_stock_concept_detail_df['second_relevance_industry'] = second_relevance_industry
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
new_values_list = {"$set": {"first_relevance_industry": first_relevance_industry,
|
|
80
|
+
"second_relevance_industry": second_relevance_industry,
|
|
81
|
+
"first_relevance_industry_number": first_relevance_industry_number,
|
|
82
|
+
"second_relevance_industry_number": second_relevance_industry_number,
|
|
80
83
|
|
|
81
|
-
|
|
84
|
+
}}
|
|
85
|
+
|
|
86
|
+
update_query = {"symbol": concept_code}
|
|
87
|
+
mongodb_util.update_one_query(update_query, new_values_list, db_name_constant.THS_CONCEPT_LIST)
|
|
88
|
+
|
|
89
|
+
new_values_detail = {"$set": {"first_relevance_industry": first_relevance_industry,
|
|
90
|
+
"second_relevance_industry": second_relevance_industry
|
|
91
|
+
|
|
92
|
+
}}
|
|
93
|
+
update_query_detail = {"concept_code": concept_code}
|
|
94
|
+
mongodb_util.update_one_query(update_query_detail, new_values_detail, db_name_constant.THS_STOCK_CONCEPT_DETAIL)
|
|
82
95
|
|
|
83
96
|
|
|
84
97
|
# 更新空名字
|
|
@@ -127,7 +127,7 @@ def save_ths_concept_detail(new_concept_symbol_df,
|
|
|
127
127
|
query_detail = {"concept_code": int(concept_code)}
|
|
128
128
|
exist_concept_detail = mongodb_util.find_query_data(db_name_constant.THS_STOCK_CONCEPT_DETAIL, query_detail)
|
|
129
129
|
# 更新入选理由
|
|
130
|
-
update_long_short(new_concept_symbol_df)
|
|
130
|
+
update_long_short(new_concept_symbol_df, exist_concept_detail)
|
|
131
131
|
|
|
132
132
|
if exist_concept_detail is None or exist_concept_detail.shape[0] == 0:
|
|
133
133
|
new_concept_symbol_df['grade'] = 1
|
|
@@ -160,7 +160,7 @@ def save_ths_concept_detail(new_concept_symbol_df,
|
|
|
160
160
|
|
|
161
161
|
|
|
162
162
|
# 更新入选理由
|
|
163
|
-
def update_long_short(new_concept_symbol_df):
|
|
163
|
+
def update_long_short(new_concept_symbol_df, exist_concept_detail):
|
|
164
164
|
if data_frame_util.is_empty(new_concept_symbol_df):
|
|
165
165
|
return None
|
|
166
166
|
for new_concept_one in new_concept_symbol_df.itertuples():
|
|
@@ -171,8 +171,22 @@ def update_long_short(new_concept_symbol_df):
|
|
|
171
171
|
mongodb_util.update_many(query, new_values, db_name_constant.THS_STOCK_CONCEPT_DETAIL_APP)
|
|
172
172
|
except BaseException as e:
|
|
173
173
|
logger.error("更新入选理由异常:{}", e)
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
# 更新已经被删除概念的股票
|
|
175
|
+
update_delete_concept_symbol(list(new_concept_symbol_df['concept_code'])[0], new_concept_symbol_df,
|
|
176
|
+
exist_concept_detail)
|
|
177
|
+
# 更新公司表信息 todo 清空cache 公司表中 common_service_fun_api.py get_company_info_industry
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
## 更新已经被删除这个概念的股票
|
|
181
|
+
def update_delete_concept_symbol(concept_code, new_concept_symbol_df, exist_concept_detail):
|
|
182
|
+
delete_concept_symbol_df = exist_concept_detail.loc[
|
|
183
|
+
~(exist_concept_detail['symbol'].isin(list(new_concept_symbol_df['symbol'])))]
|
|
184
|
+
|
|
185
|
+
if data_frame_util.is_not_empty(delete_concept_symbol_df):
|
|
186
|
+
new_values = {"$set": {"grade": 0}}
|
|
187
|
+
query = {'symbol': {"$in": list(delete_concept_symbol_df['symbol'])}, 'concept_code': concept_code}
|
|
188
|
+
mongodb_util.update_many(query, new_values, db_name_constant.THS_STOCK_CONCEPT_DETAIL)
|
|
189
|
+
mongodb_util.update_many(query, new_values, db_name_constant.THS_STOCK_CONCEPT_DETAIL_APP)
|
|
176
190
|
|
|
177
191
|
|
|
178
192
|
def update_company_info(new_concept_symbol_df):
|
|
@@ -218,7 +218,7 @@ def sync_ths_concept_detail_to_db(concept_code, concept_name):
|
|
|
218
218
|
|
|
219
219
|
|
|
220
220
|
if __name__ == '__main__':
|
|
221
|
-
sync_ths_concept_detail_to_db('
|
|
221
|
+
sync_ths_concept_detail_to_db('885740', '债转股')
|
|
222
222
|
# real_time_quotes_all_stocks_df = east_money_stock_api.get_real_time_quotes_all_stocks()
|
|
223
223
|
# get_ths_concept_detail_by_explain('886084', real_time_quotes_all_stocks_df)
|
|
224
224
|
# get_ths_concept_detail_from_web('886084', real_time_quotes_all_stocks_df)
|
|
@@ -39,7 +39,7 @@ ZT_FIELD = ['_id', 'symbol', 'name', 'now_price', 'chg', 'first_closure_time',
|
|
|
39
39
|
'third_sw_industry', 'ths_concept_name',
|
|
40
40
|
'ths_concept_code', 'ths_concept_sync_day', 'em_industry',
|
|
41
41
|
'mv_circulation_ratio', 'ths_concept_list_info', 'kpl_plate_name',
|
|
42
|
-
'kpl_plate_list_info', 'company_type', 'diff_days', '
|
|
42
|
+
'kpl_plate_list_info', 'company_type', 'diff_days', 'amount',
|
|
43
43
|
'list_date',
|
|
44
44
|
'exchange', 'flow_mv', 'total_mv',
|
|
45
45
|
'classification', 'flow_mv_sp', 'total_mv_sp', 'flow_mv_level',
|
|
@@ -73,12 +73,9 @@ def save_zt_info(str_day):
|
|
|
73
73
|
|
|
74
74
|
# del stock_em_zt_pool_df_data['ths_concept_name']
|
|
75
75
|
# del stock_em_zt_pool_df_data['ths_concept_code']
|
|
76
|
-
|
|
77
76
|
for stock_one in stock_em_zt_pool_df_data.itertuples():
|
|
78
77
|
try:
|
|
79
|
-
|
|
80
|
-
stock_em_zt_pool_df_data,
|
|
81
|
-
str_day)
|
|
78
|
+
|
|
82
79
|
# 设置连板数目
|
|
83
80
|
stock_em_zt_pool_df_data = set_connected_boards_numbers(stock_em_zt_pool_df_data,
|
|
84
81
|
stock_one.symbol, last_trade_day_zt_df)
|
|
@@ -91,11 +88,10 @@ def save_zt_info(str_day):
|
|
|
91
88
|
list(ths_zt_pool_one_df['zt_reason'])[0]
|
|
92
89
|
|
|
93
90
|
first_closure_time = list(ths_zt_pool_one_df['first_closure_time'])[0]
|
|
94
|
-
first_closure_time = first_closure_time.replace(":","")
|
|
95
|
-
|
|
96
|
-
stock_em_zt_pool_df_data.loc[stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'first_closure_time'] = first_closure_time
|
|
97
|
-
|
|
91
|
+
first_closure_time = first_closure_time.replace(":", "")
|
|
98
92
|
|
|
93
|
+
stock_em_zt_pool_df_data.loc[
|
|
94
|
+
stock_em_zt_pool_df_data['symbol'] == stock_one.symbol, 'first_closure_time'] = first_closure_time
|
|
99
95
|
except BaseException as e:
|
|
100
96
|
stock_em_zt_pool_df_data['zt_reason'] = '0'
|
|
101
97
|
logger.error("出现异常:{}", e)
|
|
@@ -126,8 +122,13 @@ def save_zt_info(str_day):
|
|
|
126
122
|
|
|
127
123
|
stock_em_zt_pool_df_data['str_day'] = str_day
|
|
128
124
|
stock_em_zt_pool_df_data['_id'] = stock_em_zt_pool_df_data['symbol'] + "_" + str_day
|
|
125
|
+
# 主线标记 复盘用
|
|
126
|
+
stock_em_zt_pool_df_data['main_line'] = ''
|
|
129
127
|
|
|
130
128
|
stock_em_zt_pool_df_data = stock_em_zt_pool_df_data[ZT_FIELD]
|
|
129
|
+
|
|
130
|
+
stock_em_zt_pool_df_data.drop_duplicates('symbol', keep='last', inplace=True)
|
|
131
|
+
|
|
131
132
|
exist_zt_pool_today = mongodb_util.find_query_data('stock_zt_pool', {'str_day': str_day})
|
|
132
133
|
if data_frame_util.is_empty(exist_zt_pool_today):
|
|
133
134
|
mongodb_util.save_mongo(stock_em_zt_pool_df_data, 'stock_zt_pool')
|
|
@@ -198,7 +199,7 @@ def sync_miss_zt_data(stock_em_zt_pool_df_data, str_day):
|
|
|
198
199
|
|
|
199
200
|
|
|
200
201
|
if __name__ == '__main__':
|
|
201
|
-
save_zt_info('2024-11-
|
|
202
|
+
save_zt_info('2024-11-05')
|
|
202
203
|
# from datetime import datetime
|
|
203
204
|
#
|
|
204
205
|
# if __name__ == '__main__':
|
|
@@ -20,13 +20,13 @@ mns_scheduler/company_info/remark/company_remark_info_sync.py,sha256=hzQ8uBK4-od
|
|
|
20
20
|
mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
21
21
|
mns_scheduler/concept/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
22
22
|
mns_scheduler/concept/clean/kpl_concept_clean_api.py,sha256=xxIIgrXLI6xLf10t4unJa7aMB_QeKeki1HJVeXsntkY,4512
|
|
23
|
-
mns_scheduler/concept/clean/ths_concept_clean_api.py,sha256=
|
|
23
|
+
mns_scheduler/concept/clean/ths_concept_clean_api.py,sha256=iUj9857-6VxEnPNGOjP3NIj-AW1WscsVZJ7T0l6sQ-M,6726
|
|
24
24
|
mns_scheduler/concept/ths/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
25
25
|
mns_scheduler/concept/ths/common/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
26
|
-
mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py,sha256=
|
|
26
|
+
mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py,sha256=OgYueBEL8V7UB1MCv4Y2GzYaDGt6AvQOP3FkGUH_UfA,10217
|
|
27
27
|
mns_scheduler/concept/ths/common/ths_concept_update_common_api.py,sha256=4BQT3A9t-nDIyCpILgRZF7ZOgK1oabp-gJl5nyWvKWc,4418
|
|
28
28
|
mns_scheduler/concept/ths/detaill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
-
mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py,sha256=
|
|
29
|
+
mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py,sha256=_azUXNzALQ4I9zHDERYZK7qqMZHxLC8uiSVSEa5v0sI,10882
|
|
30
30
|
mns_scheduler/concept/ths/sync_new_index/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
31
31
|
mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py,sha256=wllTGr3HfP4HSg776I5v6XcMGZMrunSTJCmWwTnT1VU,7923
|
|
32
32
|
mns_scheduler/concept/ths/update_concept_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
@@ -137,12 +137,12 @@ mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py,sha256=aTrYgshcccoH
|
|
|
137
137
|
mns_scheduler/zt/script/sync_high_chg_pool_his_data.py,sha256=dtREQdNpoDM4KLTvdXuiEhXmdjpc1dScMDgR3fbEbww,1685
|
|
138
138
|
mns_scheduler/zt/script/sync_now_higt_chg_zt.py,sha256=bhoIGDWTI3w0YKVfIAVNHWpUrYqJYDMGPt-1i3d_Zmw,1850
|
|
139
139
|
mns_scheduler/zt/zt_pool/__init__.py,sha256=Tyvi_iQlv3jz59EdH67Mycnt9CSixcWPQoJwu55bOq0,165
|
|
140
|
-
mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=
|
|
140
|
+
mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py,sha256=ioCWCXdr99Yf_r0N4r1y_rF2Gp2230-ZeQGC6D_rxEQ,10551
|
|
141
141
|
mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py,sha256=Sy39T-yFwLSIIoSZqQzS-6-W1RlaFWvYpksEXKQVFdI,10456
|
|
142
142
|
mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py,sha256=OuklSKUhZMj1aKcwDLpZilKIqFbHY3hvvIuA_UFnPqA,2135
|
|
143
143
|
mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
|
|
144
144
|
mns_scheduler/zz_task/data_sync_task.py,sha256=b-hv4OBJr9qsmhtCA3k88Odj2WGThuLrn0NkvKIgx0o,21195
|
|
145
|
-
mns_scheduler-1.1.9.
|
|
146
|
-
mns_scheduler-1.1.9.
|
|
147
|
-
mns_scheduler-1.1.9.
|
|
148
|
-
mns_scheduler-1.1.9.
|
|
145
|
+
mns_scheduler-1.1.9.9.dist-info/METADATA,sha256=3S1PT74f1acuih-elLIpxS-YRyw_97XpOswmrZXpJKI,64
|
|
146
|
+
mns_scheduler-1.1.9.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
147
|
+
mns_scheduler-1.1.9.9.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
|
|
148
|
+
mns_scheduler-1.1.9.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|