mns-scheduler 1.0.4.8__py3-none-any.whl → 1.0.4.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.

@@ -0,0 +1,39 @@
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 pandas as pd
9
+ import akshare as ak
10
+ from mns_common.db.MongodbUtil import MongodbUtil
11
+
12
+ mongodb_util = MongodbUtil('27017')
13
+ import mns_common.constant.db_name_constant as db_name_constant
14
+
15
+
16
+ # 同步退市股票
17
+ def sync_de_list_stock():
18
+ sh_de_list_df = ak.stock_info_sh_delist(symbol="全部")
19
+ sh_de_list_df = sh_de_list_df.rename(columns={"公司代码": "symbol",
20
+ "公司简称": "name",
21
+ "上市日期": "list_date",
22
+ "暂停上市日期": "de_list_date"
23
+ })
24
+
25
+ sz_de_list_df = ak.stock_info_sz_delist(symbol="终止上市公司")
26
+ sz_de_list_df = sz_de_list_df.rename(columns={"证券代码": "symbol",
27
+ "证券简称": "name",
28
+ "上市日期": "list_date",
29
+ "终止上市日期": "de_list_date"
30
+ })
31
+ all_de_list_df = pd.concat([sz_de_list_df, sh_de_list_df])
32
+ all_de_list_df['_id'] = all_de_list_df['symbol']
33
+ all_de_list_df['list_date'] = all_de_list_df['list_date'].astype(str)
34
+ all_de_list_df['de_list_date'] = all_de_list_df['de_list_date'].astype(str)
35
+ mongodb_util.save_mongo(all_de_list_df, db_name_constant.DE_LIST_STOCK)
36
+
37
+
38
+ if __name__ == '__main__':
39
+ sync_de_list_stock()
@@ -326,6 +326,8 @@ def check_columns(profit_df):
326
326
  profit_df['FE_INTEREST_INCOME'] = 0
327
327
  if 'CREDIT_IMPAIRMENT_INCOME' not in profit_df.columns:
328
328
  profit_df['CREDIT_IMPAIRMENT_INCOME'] = 0
329
+ if 'FAIRVALUE_CHANGE_INCOME' not in profit_df.columns:
330
+ profit_df['FAIRVALUE_CHANGE_INCOME'] = 0
329
331
  return profit_df
330
332
 
331
333
 
@@ -14,15 +14,25 @@ from mns_common.db.MongodbUtil import MongodbUtil
14
14
  import mns_common.component.trade_date.trade_date_common_service_api as trade_date_common_service_api
15
15
  import mns_common.component.common_service_fun_api as common_service_fun_api
16
16
  import pandas as pd
17
+ # 1.无保留意见/标准报告:报告没问题。(没有发现造假,但也不能保证为真)
18
+ #
19
+ # 2.带强调事项段的无保留意见:报告没问题,但是有亏损获对其可持续经营有重大疑虑(可能造假,至少是在粉饰报表)
20
+ #
21
+ # 3.保留意见报告:有问题,财务造假
22
+ #
23
+ # 4.否定意见报告:有很大问题
24
+ #
25
+ # 5.无法表示意见报告:不让查
26
+ #
17
27
 
18
28
  mongodb_util = MongodbUtil('27017')
19
29
  # 审核标准意见
20
30
  OPINION_TYPE = "标准无保留意见"
21
31
 
22
- # 利润为负的时候最小营业收入 主板
23
- MIN_INCOME_MAIN = 350000000
24
- # 利润为负的时候最小营业收入 科创 创业
25
- MIN_INCOME_SUB = 150000000
32
+ # 利润为负的时候最小营业收入 主板 3.2亿
33
+ MIN_INCOME_MAIN = 320000000
34
+ # 利润为负的时候最小营业收入 科创 创业 1.2亿
35
+ MIN_INCOME_SUB = 120000000
26
36
  # 最大负债比
27
37
  MAX_LIABILITY_RATIO = 90
28
38
  # 最迟出报告的天数
@@ -62,7 +72,7 @@ def year_report_exception_check(new_report_df, period_time, report_type):
62
72
  name,
63
73
  str_day,
64
74
  str_now_date,
65
- '年报审计有问题',
75
+ '年报审计有问题:'+"["+opinion_type+"]",
66
76
  '年报审计有问题',
67
77
  '',
68
78
  black_list_service_api.FINANCIAL_PROBLEM)
@@ -110,6 +110,12 @@ def sync_profit_report(period_time, sync_time, period, now_year):
110
110
  # 查出未报告的股票
111
111
  def find_un_report_symbol(period_time, report_name):
112
112
  real_time_quotes_df = east_money_stock_api.get_real_time_quotes_all_stocks()
113
+ real_time_quotes_df = real_time_quotes_df.loc[~(real_time_quotes_df['name'].str.contains('退'))]
114
+
115
+ de_list_stock_df = mongodb_util.find_all_data(db_name_constant.DE_LIST_STOCK)
116
+ real_time_quotes_df = real_time_quotes_df.loc[
117
+ ~(real_time_quotes_df['symbol'].isin(list(de_list_stock_df['symbol'])))]
118
+
113
119
  if report_name == db_name_constant.EM_STOCK_ASSET_LIABILITY:
114
120
  had_asset_df = finance_common_api.find_asset_liability_report(period_time)
115
121
  if data_frame_util.is_not_empty(had_asset_df):
@@ -40,6 +40,7 @@ import mns_scheduler.kpl.selection.index.sync_best_choose_his_index as sync_best
40
40
  import mns_scheduler.concept.ths.common.ths_concept_update_common_api as ths_concept_update_common_api
41
41
  import mns_scheduler.trade.sync_position_api as sync_position_api
42
42
  import mns_scheduler.concept.clean.kpl_concept_clean_api as kpl_concept_clean_api
43
+ import mns_scheduler.company_info.de_list_stock_service as de_list_stock_service
43
44
 
44
45
 
45
46
  # 同步交易日期任务完成
@@ -281,6 +282,8 @@ def update_ths_concept_choose_null_reason():
281
282
  def update_company_base_info():
282
283
  company_info_sync_api.sync_company_base_info(None)
283
284
  company_info_sync_api.fix_company_industry(None)
285
+ # 退市股票同步
286
+ de_list_stock_service.sync_de_list_stock()
284
287
  logger.info('同步公司基本信息任务完成')
285
288
 
286
289
 
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-scheduler
3
- Version: 1.0.4.8
3
+ Version: 1.0.4.9
4
4
 
@@ -13,6 +13,7 @@ mns_scheduler/big_deal/ths_big_deal_sync.py,sha256=wezGJWFRnKYBaPP9PVXLqMbHENOXg
13
13
  mns_scheduler/company_info/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
14
14
  mns_scheduler/company_info/company_constant_data.py,sha256=PkV8i2Wx18lSuAj_UuUw_QzhYrRhTE4x3Cft7-P-Ghs,15735
15
15
  mns_scheduler/company_info/company_info_sync_api.py,sha256=kL0QETih5lfczZ2WB9Iopmy4RjpvWY5NKPNVUZ5dq-s,20342
16
+ mns_scheduler/company_info/de_list_stock_service.py,sha256=3yI54c9BVISR8yXaMAzk3nWxuj0a74b0M-tYbPqd34c,1709
16
17
  mns_scheduler/concept/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
17
18
  mns_scheduler/concept/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
18
19
  mns_scheduler/concept/clean/kpl_concept_clean_api.py,sha256=xxIIgrXLI6xLf10t4unJa7aMB_QeKeki1HJVeXsntkY,4512
@@ -34,10 +35,10 @@ mns_scheduler/dt/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,
34
35
  mns_scheduler/dt/stock_dt_pool_sync.py,sha256=5ivRUOnFtOapZniwTbujf1lVq3y4btm2Cmd5R6JJAVo,3466
35
36
  mns_scheduler/finance/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
36
37
  mns_scheduler/finance/em_financial_asset_liability_sync_service_api.py,sha256=7Y5Nc2yzF19LD0j0pqSUtWdeOA08QFgjTfFtfQnF0vA,17231
37
- mns_scheduler/finance/em_financial_profit_sync_service_api.py,sha256=KZm4cGXJbcRRCbvK08ftf2QP9VWr8UqLAfAJOskte50,13875
38
+ mns_scheduler/finance/em_financial_profit_sync_service_api.py,sha256=gc84F8lkHwot0QGfxO3QsZgUc4xJQDZI0rGX7sFmDyo,13989
38
39
  mns_scheduler/finance/finance_common_api.py,sha256=yPE0at1WFDyYZ3IAjkgCj6xMH7gPp8sAkJsYj5jhmLk,1075
39
- mns_scheduler/finance/financial_high_risk_stock_clean_service_api.py,sha256=ilf5eAWJT9SKXQJbMP-GLp3H-nY7m5MMn-asaTAMMq0,8328
40
- mns_scheduler/finance/sync_financial_report_service_api.py,sha256=e8ZHmnXr9LOjJc3LuQ1_t9g-5NEDsmjTQn85wVMCQMM,6007
40
+ mns_scheduler/finance/financial_high_risk_stock_clean_service_api.py,sha256=L4rVsFPbIWvXisMHrVWGb9WuhwYQjyWbDFs5nacN-5Q,8782
41
+ mns_scheduler/finance/sync_financial_report_service_api.py,sha256=bP5e_0ndsAucTUobMtwL4bX1w_APnW_hntfn1_PkJnM,6331
41
42
  mns_scheduler/k_line/__init__.py,sha256=ffZXFCLFdIwOsbxnw__u1MbQYh9yz7Bs8UMP6VF0X2M,161
42
43
  mns_scheduler/k_line/clean/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
43
44
  mns_scheduler/k_line/clean/k_line_info_clean_impl.py,sha256=3NPu-bkBw5ARW2yoMAmf_-au6vxQdSjzGlT-l4dqV4w,21833
@@ -71,9 +72,9 @@ mns_scheduler/zt/today_high_chg_pool_sync_api.py,sha256=G6FXMH7HnvhyMFoE-RszggkB
71
72
  mns_scheduler/zt/zt_five_boards_sync_api.py,sha256=HfjPHKD99fU9c37kSenEX2_qNvFAjQGgy8ERuacSxwk,10916
72
73
  mns_scheduler/zt/zt_pool_sync_api.py,sha256=RrVAbU1u-HTqXF9BSwNlzIxMHrUgjNaLpDKFgXC1XuY,7604
73
74
  mns_scheduler/zz_task/__init__.py,sha256=QWBdZwBCvQw8aS4hnL9_pg3U3ZiNLUXzlImyy9WhUcI,163
74
- mns_scheduler/zz_task/data_sync_task.py,sha256=P75noN2J8YOqht_wyTN5IOZ6NPeTIKhRN4SPZhe6x2A,16100
75
+ mns_scheduler/zz_task/data_sync_task.py,sha256=8vUFAlNgZplQ6v1ConEfY2UZIoei4nUnogXGfF8R1Ck,16256
75
76
  mns_scheduler/zz_task/sync_realtime_quotes_task.py,sha256=DN3bq2XCDZC-PHlbD2NTog48bR44EruIEc2QVGKg7Tk,932
76
- mns_scheduler-1.0.4.8.dist-info/METADATA,sha256=gXAIfuOiGUMYWRx8O7hafzW4UAkN5R8Kg1BM0ciSgl8,64
77
- mns_scheduler-1.0.4.8.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
78
- mns_scheduler-1.0.4.8.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
79
- mns_scheduler-1.0.4.8.dist-info/RECORD,,
77
+ mns_scheduler-1.0.4.9.dist-info/METADATA,sha256=l-mybQSBRFgd_xsL9wbrUVXrMtRkVHMVnlstBZ9fm78,64
78
+ mns_scheduler-1.0.4.9.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
79
+ mns_scheduler-1.0.4.9.dist-info/top_level.txt,sha256=PXQDFBGR1pWmsUbH5yiLAh71P5HZODTRED0zJ8CCgOc,14
80
+ mns_scheduler-1.0.4.9.dist-info/RECORD,,