mns-scheduler 1.4.3.2__tar.gz → 1.4.6.4__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 (191) hide show
  1. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/PKG-INFO +1 -1
  2. mns_scheduler-1.4.6.4/mns_scheduler/auto_da_ban/auto_da_ban_service.py +89 -0
  3. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/company_info/clean/company_info_clean_api.py +37 -16
  4. mns_scheduler-1.4.6.4/mns_scheduler/company_info/common/company_common_query_service.py +45 -0
  5. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/company_info/constant/company_constant_data.py +59 -49
  6. mns_scheduler-1.4.6.4/mns_scheduler/company_info/em_stock_info/clean_em_us_hk_stock_info.py +30 -0
  7. mns_scheduler-1.4.6.4/mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +141 -0
  8. mns_scheduler-1.4.6.4/mns_scheduler/company_info/sync/company_info_set_service.py +208 -0
  9. mns_scheduler-1.4.6.4/mns_scheduler/company_info/sync/sync_company_info_task.py +203 -0
  10. mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/__init__.py +7 -0
  11. mns_scheduler-1.4.3.2/mns_scheduler/company_info/announce/company_announce_sync_service.py → mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/company_announce_info_task.py +25 -13
  12. mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/company_base_info_task.py +64 -0
  13. mns_scheduler-1.4.3.2/mns_scheduler/company_info/base/sync_company_product_area_industry.py → mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/company_business_info_task.py +33 -17
  14. mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/company_hold_info_task.py +66 -0
  15. mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/company_industry_info_task.py +167 -0
  16. mns_scheduler-1.4.6.4/mns_scheduler/company_info/task/company_total_task.py +69 -0
  17. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/common/ths_concept_sync_common_api.py +3 -3
  18. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/update_concept_info/sync_one_symbol_all_concepts_api.py +1 -1
  19. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/sync/remote_data_sync_to_local.py +11 -3
  20. mns_scheduler-1.4.6.4/mns_scheduler/finance/em/__init__.py +7 -0
  21. mns_scheduler-1.4.6.4/mns_scheduler/finance/xue_qiu/__init__.py +7 -0
  22. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/irm/api/sh_stock_sns_sse_info_api.py +7 -57
  23. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/irm/api/sz_stock_sns_sse_info_api.py +14 -25
  24. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/irm/stock_irm_cninfo_service.py +34 -26
  25. mns_scheduler-1.4.6.4/mns_scheduler/irm/stock_question_id_service.py +169 -0
  26. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/clean/k_line_info_clean_task.py +1 -0
  27. mns_scheduler-1.4.6.4/mns_scheduler/k_line/sync_status/__init__.py +7 -0
  28. mns_scheduler-1.4.6.4/mns_scheduler/kpl/theme/__init__.py +7 -0
  29. mns_scheduler-1.4.6.4/mns_scheduler/kpl/theme/kpl_theme_sync_service.py +231 -0
  30. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/self_choose/ths_self_choose_service.py +53 -25
  31. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/auto_login/trader_auto_service.py +2 -1
  32. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/task/trader_task_service.py +13 -2
  33. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/tfp/stock_tfp_info_sync.py +1 -1
  34. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zb/stock_zb_pool_sync.py +1 -1
  35. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/zt_pool/em_zt_pool_sync_api.py +49 -104
  36. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/zt_pool/ths_zt_pool_sync_api.py +1 -1
  37. mns_scheduler-1.4.6.4/mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +79 -0
  38. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zz_task/compensation/compensate_task.py +1 -1
  39. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zz_task/compensation/compensate_task_one_day.py +6 -6
  40. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zz_task/data_sync_task.py +58 -37
  41. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler.egg-info/PKG-INFO +1 -1
  42. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler.egg-info/SOURCES.txt +18 -8
  43. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/setup.py +1 -1
  44. mns_scheduler-1.4.3.2/mns_scheduler/company_info/base/sync_company_base_info_api.py +0 -531
  45. mns_scheduler-1.4.3.2/mns_scheduler/company_info/base/sync_company_hold_info_api.py +0 -37
  46. mns_scheduler-1.4.3.2/mns_scheduler/company_info/em_stock_info/sync_em_stock_info_sync.py +0 -80
  47. mns_scheduler-1.4.3.2/mns_scheduler/company_info/remark/company_remark_info_sync.py +0 -46
  48. mns_scheduler-1.4.3.2/mns_scheduler/zt/high_chg/__init__.py +0 -7
  49. mns_scheduler-1.4.3.2/mns_scheduler/zt/script/__init__.py +0 -7
  50. mns_scheduler-1.4.3.2/mns_scheduler/zt/zt_pool/update_null_zt_reason_api.py +0 -58
  51. mns_scheduler-1.4.3.2/mns_scheduler/zz_task/__init__.py +0 -7
  52. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/README.md +0 -0
  53. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/__init__.py +0 -0
  54. {mns_scheduler-1.4.3.2/mns_scheduler/finance/em → mns_scheduler-1.4.6.4/mns_scheduler/auto_da_ban}/__init__.py +0 -0
  55. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/company_info/__init__.py +0 -0
  56. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/announce → mns_scheduler-1.4.6.4/mns_scheduler/company_info/clean}/__init__.py +0 -0
  57. {mns_scheduler-1.4.3.2/mns_scheduler/finance/xue_qiu → mns_scheduler-1.4.6.4/mns_scheduler/company_info/common}/__init__.py +0 -0
  58. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/base → mns_scheduler-1.4.6.4/mns_scheduler/company_info/constant}/__init__.py +0 -0
  59. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/clean → mns_scheduler-1.4.6.4/mns_scheduler/company_info/de_list_stock}/__init__.py +0 -0
  60. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/company_info/de_list_stock/de_list_stock_service.py +0 -0
  61. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/constant → mns_scheduler-1.4.6.4/mns_scheduler/company_info/em_stock_info}/__init__.py +0 -0
  62. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/sync_status → mns_scheduler-1.4.6.4/mns_scheduler/company_info/sync}/__init__.py +0 -0
  63. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/de_list_stock → mns_scheduler-1.4.6.4/mns_scheduler/concept}/__init__.py +0 -0
  64. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/em_stock_info → mns_scheduler-1.4.6.4/mns_scheduler/concept/clean}/__init__.py +0 -0
  65. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/clean/kpl_concept_clean_api.py +0 -0
  66. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/clean/ths_concept_clean_api.py +0 -0
  67. {mns_scheduler-1.4.3.2/mns_scheduler/company_info/remark → mns_scheduler-1.4.6.4/mns_scheduler/concept/ths}/__init__.py +0 -0
  68. {mns_scheduler-1.4.3.2/mns_scheduler/concept → mns_scheduler-1.4.6.4/mns_scheduler/concept/ths/common}/__init__.py +0 -0
  69. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/common/ths_concept_update_common_api.py +0 -0
  70. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/detaill/__init__.py +0 -0
  71. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/detaill/ths_concept_detail_api.py +0 -0
  72. {mns_scheduler-1.4.3.2/mns_scheduler/concept/clean → mns_scheduler-1.4.6.4/mns_scheduler/concept/ths/sync_new_index}/__init__.py +0 -0
  73. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/sync_new_index/sync_ths_concept_new_index_api.py +0 -0
  74. {mns_scheduler-1.4.3.2/mns_scheduler/concept/ths → mns_scheduler-1.4.6.4/mns_scheduler/concept/ths/update_concept_info}/__init__.py +0 -0
  75. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/concept/ths/update_concept_info/sync_one_concept_all_symbols_api.py +0 -0
  76. {mns_scheduler-1.4.3.2/mns_scheduler/concept/ths/common → mns_scheduler-1.4.6.4/mns_scheduler/db}/__init__.py +0 -0
  77. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/col_move_service.py +0 -0
  78. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/db_status.py +0 -0
  79. {mns_scheduler-1.4.3.2/mns_scheduler/concept/ths/sync_new_index → mns_scheduler-1.4.6.4/mns_scheduler/db/script}/__init__.py +0 -0
  80. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/col_move_script.py +0 -0
  81. {mns_scheduler-1.4.3.2/mns_scheduler/concept/ths/update_concept_info → mns_scheduler-1.4.6.4/mns_scheduler/db/script/db_move}/__init__.py +0 -0
  82. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/db_move/col_move_one_service.py +0 -0
  83. {mns_scheduler-1.4.3.2/mns_scheduler/db → mns_scheduler-1.4.6.4/mns_scheduler/db/script/sync}/__init__.py +0 -0
  84. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/sync/local_mongo_util.py +0 -0
  85. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/sync/remote_mongo_util.py +0 -0
  86. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/sync/sync_hui_ce_test_data.py +0 -0
  87. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/sync/sync_hui_ce_test_data_01.py +0 -0
  88. {mns_scheduler-1.4.3.2/mns_scheduler/db/script → mns_scheduler-1.4.6.4/mns_scheduler/db/script/update}/__init__.py +0 -0
  89. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/db/script/update/update_col_field.py +0 -0
  90. {mns_scheduler-1.4.3.2/mns_scheduler/db/script/db_move → mns_scheduler-1.4.6.4/mns_scheduler/dt}/__init__.py +0 -0
  91. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/dt/stock_dt_pool_sync.py +0 -0
  92. {mns_scheduler-1.4.3.2/mns_scheduler/db/script/sync → mns_scheduler-1.4.6.4/mns_scheduler/finance}/__init__.py +0 -0
  93. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/finance/em/em_financial_asset_liability_sync_service_api.py +0 -0
  94. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/finance/em/em_financial_profit_sync_service_api.py +0 -0
  95. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/finance/em/finance_common_api.py +0 -0
  96. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/finance/sync_financial_report_service_task.py +0 -0
  97. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/finance/xue_qiu/down_load_xueqiu_report_api.py +0 -0
  98. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/finance/xue_qiu/sync_xue_qiu_fiance_data.py +0 -0
  99. {mns_scheduler-1.4.3.2/mns_scheduler/db/script/update → mns_scheduler-1.4.6.4/mns_scheduler/hk}/__init__.py +0 -0
  100. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/hk/hk_company_info_sync_service_api.py +0 -0
  101. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/hk/hk_industry_info_sync_service_api.py +0 -0
  102. {mns_scheduler-1.4.3.2/mns_scheduler/dt → mns_scheduler-1.4.6.4/mns_scheduler/industry}/__init__.py +0 -0
  103. {mns_scheduler-1.4.3.2/mns_scheduler/finance → mns_scheduler-1.4.6.4/mns_scheduler/industry/ths}/__init__.py +0 -0
  104. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/industry/ths/ths_industry_index_service.py +0 -0
  105. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/industry/ths/ths_industry_sync_service.py +0 -0
  106. {mns_scheduler-1.4.3.2/mns_scheduler/hk → mns_scheduler-1.4.6.4/mns_scheduler/irm}/__init__.py +0 -0
  107. {mns_scheduler-1.4.3.2/mns_scheduler/industry → mns_scheduler-1.4.6.4/mns_scheduler/irm/api}/__init__.py +0 -0
  108. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/__init__.py +0 -0
  109. {mns_scheduler-1.4.3.2/mns_scheduler/industry/ths → mns_scheduler-1.4.6.4/mns_scheduler/k_line/clean}/__init__.py +0 -0
  110. {mns_scheduler-1.4.3.2/mns_scheduler/irm → mns_scheduler-1.4.6.4/mns_scheduler/k_line/clean/daily}/__init__.py +0 -0
  111. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/clean/daily/daily_k_line_clean_common_service.py +0 -0
  112. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/clean/daily/daily_k_line_service.py +0 -0
  113. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/clean/k_line_info_clean_impl.py +0 -0
  114. {mns_scheduler-1.4.3.2/mns_scheduler/irm/api → mns_scheduler-1.4.6.4/mns_scheduler/k_line/clean/week_month}/__init__.py +0 -0
  115. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/clean/week_month/normal_week_month_k_line_service.py +0 -0
  116. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/clean/week_month/sub_new_week_month_k_line_service.py +0 -0
  117. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/common/__init__.py +0 -0
  118. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/common/k_line_common_api.py +0 -0
  119. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/clean → mns_scheduler-1.4.6.4/mns_scheduler/k_line/hot_stocks}/__init__.py +0 -0
  120. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/hot_stocks/recent_hot_stocks_clean_service.py +0 -0
  121. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/month_week_daily/__init__.py +0 -0
  122. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/month_week_daily/bfq_k_line_sync.py +0 -0
  123. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/month_week_daily/daily_week_month_line_sync.py +0 -0
  124. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/sync_status/k_line_sync_status_check.py +0 -0
  125. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/clean/daily → mns_scheduler-1.4.6.4/mns_scheduler/k_line/test}/__init__.py +0 -0
  126. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/test/k_line_info_clean_his_data.py +0 -0
  127. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/clean/week_month → mns_scheduler-1.4.6.4/mns_scheduler/k_line/year_quarter}/__init__.py +0 -0
  128. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/k_line/year_quarter/year_quarter_line_sync.py +0 -0
  129. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/hot_stocks → mns_scheduler-1.4.6.4/mns_scheduler/kpl}/__init__.py +0 -0
  130. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/test → mns_scheduler-1.4.6.4/mns_scheduler/kpl/selection}/__init__.py +0 -0
  131. {mns_scheduler-1.4.3.2/mns_scheduler/k_line/year_quarter → mns_scheduler-1.4.6.4/mns_scheduler/kpl/selection/index}/__init__.py +0 -0
  132. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/kpl/selection/index/sync_best_choose_his_index.py +0 -0
  133. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/kpl/selection/index/sync_best_choose_index.py +0 -0
  134. {mns_scheduler-1.4.3.2/mns_scheduler/kpl → mns_scheduler-1.4.6.4/mns_scheduler/kpl/selection/symbol}/__init__.py +0 -0
  135. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/kpl/selection/symbol/sync_best_choose_symbol.py +0 -0
  136. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/kpl/selection/symbol/sync_kpl_concept_symbol_choose_reason_api.py +0 -0
  137. {mns_scheduler-1.4.3.2/mns_scheduler/kpl/selection → mns_scheduler-1.4.6.4/mns_scheduler/kpl/selection/total}/__init__.py +0 -0
  138. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/kpl/selection/total/sync_kpl_best_total_sync_api.py +0 -0
  139. {mns_scheduler-1.4.3.2/mns_scheduler/kpl/selection/index → mns_scheduler-1.4.6.4/mns_scheduler/lhb}/__init__.py +0 -0
  140. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/lhb/stock_lhb_sync_service.py +0 -0
  141. {mns_scheduler-1.4.3.2/mns_scheduler/kpl/selection/symbol → mns_scheduler-1.4.6.4/mns_scheduler/open}/__init__.py +0 -0
  142. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/open/sync_one_day_open_data_to_db_service.py +0 -0
  143. {mns_scheduler-1.4.3.2/mns_scheduler/kpl/selection/total → mns_scheduler-1.4.6.4/mns_scheduler/risk}/__init__.py +0 -0
  144. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/compliance/__init__.py +0 -0
  145. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/compliance/undisclosed_annual_report_api.py +0 -0
  146. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/financial/__init__.py +0 -0
  147. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/financial/annual_report_audit_check_api.py +0 -0
  148. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/financial/net_assets_check_api.py +0 -0
  149. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/financial/profit_income_check_api.py +0 -0
  150. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/financial/stock_equity_mortgage_check_api.py +0 -0
  151. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/financial_report_risk_check_api.py +0 -0
  152. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/major_violations/__init__.py +0 -0
  153. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/major_violations/register_and_investigate_stock_sync_api.py +0 -0
  154. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/self/__init__.py +0 -0
  155. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/self/wei_pan_stock_api.py +0 -0
  156. {mns_scheduler-1.4.3.2/mns_scheduler/lhb → mns_scheduler-1.4.6.4/mns_scheduler/risk/test}/__init__.py +0 -0
  157. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/test/fix_blask_list.py +0 -0
  158. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/transactions/__init__.py +0 -0
  159. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/risk/transactions/transactions_check_api.py +0 -0
  160. {mns_scheduler-1.4.3.2/mns_scheduler/open → mns_scheduler-1.4.6.4/mns_scheduler/self_choose}/__init__.py +0 -0
  161. {mns_scheduler-1.4.3.2/mns_scheduler/risk → mns_scheduler-1.4.6.4/mns_scheduler/trade}/__init__.py +0 -0
  162. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/auto_ipo_buy_api.py +0 -0
  163. {mns_scheduler-1.4.3.2/mns_scheduler/risk/test → mns_scheduler-1.4.6.4/mns_scheduler/trade/auto_login}/__init__.py +0 -0
  164. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/auto_sell_service_api.py +0 -0
  165. {mns_scheduler-1.4.3.2/mns_scheduler/self_choose → mns_scheduler-1.4.6.4/mns_scheduler/trade/balance}/__init__.py +0 -0
  166. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/balance/ths_account_balance_service.py +0 -0
  167. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/trade/sync_position_api.py +0 -0
  168. {mns_scheduler-1.4.3.2/mns_scheduler/trade → mns_scheduler-1.4.6.4/mns_scheduler/trade/task}/__init__.py +0 -0
  169. {mns_scheduler-1.4.3.2/mns_scheduler/trade/auto_login → mns_scheduler-1.4.6.4/mns_scheduler/trade/tfp}/__init__.py +0 -0
  170. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zb/__init__.py +0 -0
  171. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/__init__.py +0 -0
  172. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/connected_boards/__init__.py +0 -0
  173. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/connected_boards/zt_five_boards_sync_api.py +0 -0
  174. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/export/__init__.py +0 -0
  175. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/export/export_kcx_high_chg_open_data_to_excel.py +0 -0
  176. {mns_scheduler-1.4.3.2/mns_scheduler/trade/balance → mns_scheduler-1.4.6.4/mns_scheduler/zt/high_chg}/__init__.py +0 -0
  177. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/high_chg/sync_high_chg_pool_service.py +0 -0
  178. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/high_chg/sync_high_chg_real_time_quotes_service.py +0 -0
  179. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/open_data/__init__.py +0 -0
  180. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/open_data/kcx_high_chg_open_data_sync.py +0 -0
  181. {mns_scheduler-1.4.3.2/mns_scheduler/trade/task → mns_scheduler-1.4.6.4/mns_scheduler/zt/script}/__init__.py +0 -0
  182. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/script/fix_error_deal_day.py +0 -0
  183. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/script/kcx_high_chg_open_his_data_handle.py +0 -0
  184. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/script/sync_high_chg_pool_his_data.py +0 -0
  185. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/script/sync_now_higt_chg_zt.py +0 -0
  186. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zt/zt_pool/__init__.py +0 -0
  187. {mns_scheduler-1.4.3.2/mns_scheduler/trade/tfp → mns_scheduler-1.4.6.4/mns_scheduler/zz_task}/__init__.py +0 -0
  188. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler/zz_task/compensation/__init__.py +0 -0
  189. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler.egg-info/dependency_links.txt +0 -0
  190. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/mns_scheduler.egg-info/top_level.txt +0 -0
  191. {mns_scheduler-1.4.3.2 → mns_scheduler-1.4.6.4}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_scheduler
3
- Version: 1.4.3.2
3
+ Version: 1.4.6.4
@@ -0,0 +1,89 @@
1
+ import sys
2
+ import os
3
+ import time
4
+
5
+ file_path = os.path.abspath(__file__)
6
+ end = file_path.index('mns') + 16
7
+ project_path = file_path[0:end]
8
+ sys.path.append(project_path)
9
+
10
+ from mns_common.db.MongodbUtil import MongodbUtil
11
+ import mns_common.constant.db_name_constant as db_name_constant
12
+ import mns_common.utils.data_frame_util as data_frame_util
13
+ import mns_common.component.deal.deal_service_api as deal_service_api
14
+ from loguru import logger
15
+ from mns_common.utils.async_fun import async_fun
16
+ import mns_common.component.common_service_fun_api as common_service_fun_api
17
+ import mns_common.utils.date_handle_util as date_handle_util
18
+ import pandas as pd
19
+
20
+ mongodb_util = MongodbUtil('27017')
21
+ from datetime import datetime
22
+
23
+
24
+ def auto_da_ban_task():
25
+ logger.info("打板任务启动")
26
+ while True:
27
+ try:
28
+ now_date = datetime.now()
29
+ now_str_day = now_date.strftime('%Y-%m-%d')
30
+ if bool(1 - date_handle_util.is_trade_date(now_str_day)):
31
+ logger.info("非交易日不执行:{}", now_str_day)
32
+ break
33
+ else:
34
+ # 执行打板任务
35
+ auto_da_ban()
36
+ except BaseException as e:
37
+ logger.error("自动打板定时任务异常:{}", e)
38
+
39
+
40
+ def auto_da_ban():
41
+ now_date = datetime.now()
42
+ now_str_day = now_date.strftime('%Y-%m-%d')
43
+ over_night_da_ban_list = query_over_night_da_ban_list(now_str_day)
44
+ if data_frame_util.is_empty(over_night_da_ban_list):
45
+ return None
46
+ for stock_one in over_night_da_ban_list.itertuples():
47
+ try:
48
+ symbol = stock_one.symbol
49
+ buy_price = stock_one.zt_price
50
+ buy_volume = stock_one.buy_volume
51
+ xia_dan_to_qmt(symbol, buy_price, buy_volume, now_str_day)
52
+ except BaseException as e:
53
+ logger.error("隔夜委托出现异常:{},{}", symbol, e)
54
+
55
+
56
+ def xia_dan_to_qmt(symbol, buy_price, buy_volume, str_day):
57
+ symbol_prefix = common_service_fun_api.add_after_prefix_one(symbol)
58
+
59
+ deal_service_api.trade_buy(symbol_prefix, buy_price, buy_volume, 'qmt')
60
+
61
+ # 异步更新信息
62
+ handle_async_msg(str_day, symbol, symbol_prefix)
63
+
64
+
65
+ @async_fun
66
+ def handle_async_msg(str_day, symbol, symbol_prefix):
67
+ order_list = deal_service_api.query_orders('qmt')
68
+ order_list_df = pd.DataFrame(order_list)
69
+ # order_status ==57 费单
70
+ success_order_df = order_list_df.loc[
71
+ (order_list_df['stock_code'] == symbol_prefix) & (order_list_df['order_status'] != 57)]
72
+ # 多委托几个
73
+ time.sleep(1)
74
+ # 委托成功 更新状态
75
+ if data_frame_util.is_not_empty(success_order_df):
76
+ logger.info("隔夜委托成功:{}", symbol)
77
+ query = {"str_day": str_day, "symbol": symbol}
78
+ new_values = {"$set": {"valid": False}}
79
+ mongodb_util.update_many(query, new_values, db_name_constant.OVER_NIGHT_DA_BAN)
80
+
81
+
82
+ def query_over_night_da_ban_list(str_day):
83
+ query = {"str_day": str_day, "valid": True}
84
+ return mongodb_util.find_query_data(db_name_constant.OVER_NIGHT_DA_BAN, query)
85
+
86
+
87
+ if __name__ == '__main__':
88
+ while True:
89
+ auto_da_ban()
@@ -12,25 +12,28 @@ from loguru import logger
12
12
  import mns_scheduler.company_info.constant.company_constant_data as company_constant_data
13
13
  import mns_common.constant.db_name_constant as db_name_constant
14
14
  import mns_scheduler.concept.ths.detaill.ths_concept_detail_api as ths_concept_detail_api
15
- import mns_scheduler.company_info.base.sync_company_base_info_api as company_info_sync_api
15
+ import mns_scheduler.company_info.common.company_common_query_service as company_common_query_service
16
+ import mns_scheduler.company_info.sync.sync_company_info_task as sync_company_info_task
16
17
  import mns_common.utils.data_frame_util as data_frame_util
17
-
18
- mongodb_util = MongodbUtil('27017')
19
18
  import mns_common.component.common_service_fun_api as common_service_fun_api
20
19
  import mns_common.component.company.company_common_service_api as company_common_service_api
21
20
 
21
+ mongodb_util = MongodbUtil('27017')
22
+
22
23
 
23
24
  # 修改行业信息
24
- def clean_company_info(symbol):
25
- if symbol is not None:
26
- query = {"symbol": symbol}
27
- company_info = mongodb_util.find_query_data('company_info_base', query)
25
+ def clean_company_info(symbol_list):
26
+ create_company_info_index()
27
+
28
+ if len(symbol_list) > 0:
29
+ query = {"symbol": {"$in": symbol_list}}
30
+ company_info_temp_df = mongodb_util.find_query_data(db_name_constant.COMPANY_INFO_TEMP, query)
28
31
  else:
29
- company_info = mongodb_util.find_all_data('company_info_base')
32
+ company_info_temp_df = mongodb_util.find_query_data(db_name_constant.COMPANY_INFO_TEMP, {})
30
33
 
31
- company_info = company_constant_data.fix_second_industry(company_info)
34
+ company_info_temp_df = company_constant_data.fix_second_industry(company_info_temp_df)
32
35
 
33
- company_info = company_info.set_index(['second_sw_industry'], drop=False)
36
+ company_info = company_info_temp_df.set_index(['second_sw_industry'], drop=False)
34
37
 
35
38
  # 修改行业名称
36
39
  del company_info['industry']
@@ -69,7 +72,7 @@ def clean_company_info(symbol):
69
72
  sub_stock = ths_concept_detail_api.get_ths_concept_detail('885598', None)
70
73
  sub_stock_symbol_list = list(sub_stock['symbol'])
71
74
  except BaseException as e:
72
- logger.error("出现异常:{},{}", symbol, e)
75
+ logger.error("出现异常:{},", e)
73
76
  query = {'concept_code': 885598}
74
77
  ths_stock_concept_detail = mongodb_util.find_query_data(db_name_constant.THS_STOCK_CONCEPT_DETAIL, query)
75
78
  sub_stock_symbol_list = list(ths_stock_concept_detail['symbol'])
@@ -83,6 +86,9 @@ def clean_company_info(symbol):
83
86
  if data_frame_util.is_not_empty(ths_stock_industry_detail_df):
84
87
  ths_stock_industry_detail_df = ths_stock_industry_detail_df[
85
88
  ['symbol', 'ths_industry_name', 'ths_industry_code']]
89
+
90
+ ths_stock_industry_detail_df = ths_stock_industry_detail_df.loc[
91
+ ths_stock_industry_detail_df['symbol'].isin(list(company_info['symbol']))]
86
92
  ths_stock_industry_detail_df = ths_stock_industry_detail_df.set_index(['symbol'], drop=True)
87
93
  company_info = company_info.set_index(['_id'], drop=False)
88
94
  company_info = pd.merge(company_info, ths_stock_industry_detail_df, how='outer',
@@ -93,11 +99,13 @@ def clean_company_info(symbol):
93
99
  else:
94
100
  company_info['ths_industry_code'] = '0'
95
101
  company_info['ths_industry_name'] = '异常'
102
+ company_info.dropna(subset=['symbol'], axis=0, inplace=True)
103
+ company_info.dropna(subset=['_id'], axis=0, inplace=True)
96
104
  mongodb_util.save_mongo(company_info, db_name_constant.COMPANY_INFO)
97
105
  # 保存历史数据
98
106
  save_company_info_his(company_info)
99
107
  except BaseException as e:
100
- logger.error("出现异常:{},{}", symbol, e)
108
+ logger.error("出现异常:{}", e)
101
109
 
102
110
  return company_info
103
111
 
@@ -117,17 +125,30 @@ def save_company_info_his(company_info_df):
117
125
 
118
126
  # 更新新上市公司信息
119
127
  def new_company_info_update():
120
- east_money_stock_info = company_info_sync_api.get_east_money_stock_info()
128
+ east_money_stock_info = company_common_query_service.get_company_info()
121
129
  new_stock = common_service_fun_api.get_new_stock(east_money_stock_info.copy())
122
130
  for company_one in new_stock.itertuples():
123
131
  try:
124
- company_info_sync_api.sync_company_base_info([company_one.symbol])
125
- clean_company_info(company_one.symbol)
132
+ sync_company_info_task.sync_company_base_info([company_one.symbol])
133
+ clean_company_info([company_one.symbol])
126
134
 
127
135
  except BaseException as e:
128
136
  logger.error("出现异常:{}", e)
129
137
  company_common_service_api.company_info_industry_cache_clear
130
138
 
131
139
 
140
+ def create_company_info_index():
141
+ mongodb_util.create_index('company_info',
142
+ [("classification", 1)])
143
+ mongodb_util.create_index('company_info',
144
+ [("industry", 1)])
145
+ mongodb_util.create_index('company_info',
146
+ [("flow_mv", 1)])
147
+ mongodb_util.create_index('company_info',
148
+ [("list_date", 1)])
149
+ mongodb_util.create_index('company_info',
150
+ [("symbol", 1)])
151
+
152
+
132
153
  if __name__ == '__main__':
133
- clean_company_info(None)
154
+ clean_company_info(["688795"])
@@ -0,0 +1,45 @@
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.component.em.em_stock_info_api as em_stock_info_api
9
+ import mns_common.component.company.company_common_service_api as company_common_service_api
10
+ import mns_common.component.common_service_fun_api as common_service_fun_api
11
+
12
+
13
+ def get_company_info():
14
+ em_company_info_df = em_stock_info_api.get_a_stock_info()
15
+ em_company_info_df = em_company_info_df[['symbol',
16
+ 'name',
17
+ "now_price",
18
+ 'total_mv',
19
+ 'flow_mv',
20
+ 'pe_ttm',
21
+ 'sz_sh',
22
+ 'area',
23
+ 'pb',
24
+ 'list_date',
25
+ 'ROE',
26
+ 'total_share',
27
+ 'flow_share',
28
+ 'industry',
29
+ 'amount',
30
+ "hk_stock_code",
31
+ "hk_stock_name",
32
+ 'concept']]
33
+
34
+ em_company_info_df = em_company_info_df.sort_values(by=['list_date'], ascending=False)
35
+
36
+ de_listed_stock_list = company_common_service_api.get_de_list_company()
37
+ em_company_info_df = em_company_info_df.loc[~(
38
+ em_company_info_df['symbol'].isin(de_listed_stock_list))]
39
+ em_company_info_df = common_service_fun_api.exclude_ts_symbol(em_company_info_df)
40
+
41
+ return em_company_info_df
42
+
43
+
44
+ if __name__ == '__main__':
45
+ get_company_info()
@@ -14,49 +14,59 @@ mongodb_util = MongodbUtil('27017')
14
14
 
15
15
  # 修改行业分类的股票
16
16
  def get_fix_symbol_industry():
17
- return pd.DataFrame([['688480', '赛恩斯', '760103', '环境治理'],
18
- ['000032', '深桑达A', '730204', '通信网络设备及器件'],
19
- ['688480', '赛恩斯', '640704', '自动化设备'],
20
- ['603260', '合盛硅业', '220316', '有机硅'],
21
- ['300559', '佳发教育', '461102', '培训教育'],
22
- ['300836', '佰奥智能', '640701', '机器人'],
23
- ['300293', '蓝英装备', '640701', '机器人'],
24
- ['688630', '芯碁微装', '270108', '半导体设备'],
25
- ['001309', '德明利', '270104', '数字芯片设计'],
26
- ['600338', '西藏珠峰', '240303', '铅锌'],
27
- ['300042', '朗科科技', '270108', '半导体设备'],
28
- ['688507', '索辰科技', '710402', '横向通用软件'],
29
- ['301387', '光大同创', '270504', '消费电子零部件及组装'],
30
- ['300295', '三六五网', '430301', '物业管理'],
31
- ['300947', '德必集团', '430301', '物业管理'],
32
- ['300483', '首华燃气', '410301', '燃气Ⅲ'],
33
- ['300215', '电科院', '410110', '电能综合服务'],
34
- # 持有上海微电子装备有限公司10%的股份 国产光刻机 主要炒作在芯片概念 不在房地产
35
- ['600895', '张江高科', '270108', '半导体设备'],
36
- ['301112', '信邦智能', '640704', '其他自动化设备'],
37
- ['002693', '双成药业', '270104', '数字芯片设计'],
38
- ['000670', '盈方微', '270401', '其他电子'],
39
- ['300803', '指南针', '490101', '证券'],
40
- ['300085', '银之杰', '490101', '证券'],
41
- ['300380', '安硕信息', '490101', '证券'],
42
- ['600446', '金证股份', '490101', '证券'],
43
- ['688318', '财富趋势', '490101', '证券'],
44
- ['600570', '恒生电子', '490101', '证券'],
45
- ['837592', '华信永道', '490101', '证券'],
46
- ['830799', '艾融软件', '490101', '证券'],
47
- ['300033', '同花顺', '490101', '证券'],
48
- ['300399', '天利科技', '490201', '保险'],
49
- # EDA软件
50
- ['301269', '华大九天', '270108', '半导体设备'],
51
- ['688206', '概伦电子', '270108', '半导体设备'],
52
- ['301095', '广立微', '270108', '半导体设备'],
53
- ['002131', '利欧股份', '720501', '营销代理'],
54
-
55
- ],
56
- columns=['symbol',
57
- 'name',
58
- 'new_industry_code', # 三级行业代码
59
- 'new_industry'])
17
+ return pd.DataFrame([
18
+ ['688480', '赛恩斯', '760103', '环境治理'],
19
+
20
+ ['603260', '合盛硅业', '220316', '有机硅'],
21
+ ['300559', '佳发教育', '461102', '培训教育'],
22
+
23
+ ['600338', '西藏珠峰', '240303', '铅锌'],
24
+
25
+ ['688507', '索辰科技', '710402', '横向通用软件'],
26
+ ['301387', '光大同创', '270504', '消费电子零部件及组装'],
27
+ ['300295', '三六五网', '430301', '物业管理'],
28
+ ['300947', '德必集团', '430301', '物业管理'],
29
+ ['300483', '首华燃气', '410301', '燃气Ⅲ'],
30
+ ['300215', '电科院', '410110', '电能综合服务'],
31
+ # 持有上海微电子装备有限公司10%的股份 国产光刻机 主要炒作在芯片概念 不在房地产
32
+
33
+ ['300836', '佰奥智能', '640701', '机器人'],
34
+ ['300293', '蓝英装备', '640701', '机器人'],
35
+ ['301112', '信邦智能', '640704', '其他自动化设备'],
36
+
37
+
38
+
39
+ ['000670', '盈方微', '270401', '其他电子'],
40
+
41
+ ['300803', '指南针', '490101', '证券'],
42
+ ['300085', '银之杰', '490101', '证券'],
43
+ ['300380', '安硕信息', '490101', '证券'],
44
+ ['600446', '金证股份', '490101', '证券'],
45
+ ['688318', '财富趋势', '490101', '证券'],
46
+ ['600570', '恒生电子', '490101', '证券'],
47
+ ['837592', '华信永道', '490101', '证券'],
48
+ ['830799', '艾融软件', '490101', '证券'],
49
+ ['300033', '同花顺', '490101', '证券'],
50
+ ['300399', '天利科技', '490201', '保险'],
51
+
52
+ ['002131', '利欧股份', '720501', '营销代理'],
53
+
54
+ ['300042', '朗科科技', '270108', '半导体设备'],
55
+ # EDA软件
56
+ ['301269', '华大九天', '270108', '半导体设备'],
57
+ ['688206', '概伦电子', '270108', '半导体设备'],
58
+ ['301095', '广立微', '270108', '半导体设备'],
59
+ ['600895', '张江高科', '270108', '半导体设备'],
60
+
61
+ ['688630', '芯碁微装', '270108', '半导体设备'],
62
+ ['001309', '德明利', '270104', '数字芯片设计'],
63
+ ['688795', '摩尔线程', '270104', '数字芯片设计'],
64
+
65
+ ],
66
+ columns=['symbol',
67
+ 'name',
68
+ 'new_industry_code', # 三级行业代码
69
+ 'new_industry'])
60
70
 
61
71
 
62
72
  # 修改二级行业分类的股票
@@ -401,12 +411,12 @@ def find_sw_third_industry(new_third_industry_code):
401
411
  # 修改行业信息
402
412
  def fix_industry_data(new_third_industry_code, company_info):
403
413
  sw_industry = find_sw_third_industry(new_third_industry_code)
404
- company_info['first_sw_industry'] = sw_industry.first_sw_industry
405
- company_info['first_industry_code'] = sw_industry.industry_code
406
- company_info['second_sw_industry'] = sw_industry.second_sw_industry
407
- company_info['second_industry_code'] = sw_industry.second_industry_code
408
- company_info['third_sw_industry'] = sw_industry.third_sw_industry
409
- company_info['third_industry_code'] = sw_industry.industry_code
414
+ company_info['first_sw_industry'] = list(sw_industry['first_sw_industry'])[0]
415
+ company_info['first_industry_code'] = list(sw_industry['industry_code'])[0]
416
+ company_info['second_sw_industry'] = list(sw_industry['second_sw_industry'])[0]
417
+ company_info['second_industry_code'] = list(sw_industry['second_industry_code'])[0]
418
+ company_info['third_sw_industry'] = list(sw_industry['third_sw_industry'])[0]
419
+ company_info['third_industry_code'] = list(sw_industry['industry_code'])[0]
410
420
  return company_info
411
421
 
412
422
 
@@ -0,0 +1,30 @@
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
+
9
+ from mns_common.db.MongodbUtil import MongodbUtil
10
+ from loguru import logger
11
+ from datetime import datetime
12
+ import mns_common.constant.extra_income_db_name as extra_income_db_name
13
+
14
+ mongodb_util = MongodbUtil('27017')
15
+
16
+
17
+ def clean_us_stock_concept_industry():
18
+ em_us_stock_info_df = mongodb_util.find_all_data(extra_income_db_name.EM_US_STOCK_INFO)
19
+ return em_us_stock_info_df
20
+
21
+
22
+ if __name__ == '__main__':
23
+ em_us_stock_info_test_df = clean_us_stock_concept_industry()
24
+ em_us_stock_info_test_industry_df = em_us_stock_info_test_df.loc[em_us_stock_info_test_df['industry'] != '-']
25
+
26
+ em_us_stock_info_test_no_industry_df = em_us_stock_info_test_df.loc[em_us_stock_info_test_df['industry'] == '-']
27
+ em_us_stock_info_test_no_industry_df = em_us_stock_info_test_no_industry_df.sort_values(by=['flow_mv'],
28
+ ascending=False)
29
+
30
+ print(em_us_stock_info_test_industry_df)
@@ -0,0 +1,141 @@
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
+ from mns_common.db.MongodbUtil import MongodbUtil
10
+ from loguru import logger
11
+ from datetime import datetime
12
+ import mns_common.constant.extra_income_db_name as extra_income_db_name
13
+ import mns_common.component.cookie.cookie_info_service as cookie_info_service
14
+ import mns_common.api.em.real_time.east_money_stock_us_api as east_money_stock_us_api
15
+ import mns_common.api.em.real_time.east_money_debt_api as east_money_debt_api
16
+ import mns_common.api.em.real_time.east_money_etf_api as east_money_etf_api
17
+ import mns_common.api.em.real_time.east_money_stock_hk_api as east_money_stock_hk_api
18
+ import mns_common.api.em.real_time.east_money_stock_hk_gtt_api as east_money_stock_hk_gtt_api
19
+ import mns_common.api.em.real_time.east_money_stock_a_v2_api as east_money_stock_a_v2_api
20
+
21
+ mongodb_util = MongodbUtil('27017')
22
+
23
+
24
+ def sync_all_em_stock_info():
25
+ logger.info("同步东方财富a,etf,kzz,us,hk,信息开始")
26
+ # 同步东方财富A股股票信息
27
+ sync_stock_info()
28
+ # 同步东方财富A股可转债信息
29
+ sync_kzz_info()
30
+ # 同步东方财富A股ETF信息
31
+ sync_etf_info()
32
+ # 同步东方财富港股信息
33
+ sync_hk_stock_info()
34
+ # 同步东方财富港股通信息
35
+ sync_hk_ggt_stock_info()
36
+ # 同步东方财富美股信息
37
+ sync_us_stock_info()
38
+
39
+ logger.info("同步东方财富a,etf,kzz,us,hk,信息完成")
40
+
41
+
42
+ # 同步东方财富A股可转债信息
43
+ def sync_kzz_info():
44
+ now_date = datetime.now()
45
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
46
+ logger.error("同步东方财富可转债信息")
47
+ try:
48
+ em_kzz_info = east_money_debt_api.get_kzz_real_time_quotes(30, 6)
49
+ em_kzz_info['_id'] = em_kzz_info['symbol']
50
+ em_kzz_info['sync_time'] = str_now_date
51
+ em_kzz_info = em_kzz_info.fillna(0)
52
+ mongodb_util.save_mongo(em_kzz_info, extra_income_db_name.EM_KZZ_INFO)
53
+ except BaseException as e:
54
+ logger.error("同步东方财富可转债信息异常:{}", e)
55
+
56
+
57
+ # 同步东方财富A股ETF信息
58
+ def sync_etf_info():
59
+ now_date = datetime.now()
60
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
61
+ logger.error("同步东方财富ETF信息")
62
+ try:
63
+ em_etf_info = east_money_etf_api.get_etf_real_time_quotes(30, 6)
64
+ em_etf_info['_id'] = em_etf_info['symbol']
65
+ em_etf_info['sync_time'] = str_now_date
66
+ em_etf_info = em_etf_info.fillna(0)
67
+ mongodb_util.save_mongo(em_etf_info, extra_income_db_name.EM_ETF_INFO)
68
+ except BaseException as e:
69
+ logger.error("同步东方财富ETF信息异常:{}", e)
70
+
71
+
72
+ # 同步东方财富A股股票信息
73
+ def sync_stock_info():
74
+ now_date = datetime.now()
75
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
76
+ logger.error("同步东方财富股票信息")
77
+ try:
78
+ em_stock_info = east_money_stock_a_v2_api.get_stock_real_time_quotes(60)
79
+ em_stock_info['_id'] = em_stock_info['symbol']
80
+ em_stock_info['sync_time'] = str_now_date
81
+ em_stock_info = em_stock_info.fillna(0)
82
+ mongodb_util.save_mongo(em_stock_info, extra_income_db_name.EM_A_STOCK_INFO)
83
+ except BaseException as e:
84
+ logger.error("同步东方财富ETF信息异常:{}", e)
85
+
86
+
87
+ # 同步东方财富港股信息
88
+ def sync_hk_stock_info():
89
+ now_date = datetime.now()
90
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
91
+ logger.error("同步东方财富港股信息")
92
+
93
+ em_cookie = cookie_info_service.get_em_cookie()
94
+
95
+ try:
96
+ em_hk_info = east_money_stock_hk_api.get_hk_real_time_quotes(30, em_cookie)
97
+ em_hk_info['_id'] = em_hk_info['symbol']
98
+ em_hk_info['sync_time'] = str_now_date
99
+ em_hk_info = em_hk_info.fillna(0)
100
+ mongodb_util.save_mongo(em_hk_info, extra_income_db_name.EM_HK_STOCK_INFO)
101
+ except BaseException as e:
102
+ logger.error("同步东方财富ETF信息异常:{}", e)
103
+
104
+
105
+ # 同步东方财富港股通信息
106
+ def sync_hk_ggt_stock_info():
107
+ now_date = datetime.now()
108
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
109
+ logger.error("同步东方财富港股信息")
110
+ em_cookie = cookie_info_service.get_em_cookie()
111
+
112
+ try:
113
+ em_hk_gtt_info = east_money_stock_hk_gtt_api.get_ggt_real_time_quotes(em_cookie, 30, 6)
114
+ em_hk_gtt_info['_id'] = em_hk_gtt_info['symbol']
115
+ em_hk_gtt_info['sync_time'] = str_now_date
116
+ em_hk_gtt_info = em_hk_gtt_info.fillna(0)
117
+ mongodb_util.save_mongo(em_hk_gtt_info, extra_income_db_name.EM_HK_GGT_STOCK_INFO)
118
+ except BaseException as e:
119
+ logger.error("同步东方财富ETF信息异常:{}", e)
120
+
121
+
122
+ # 同步东方财富美股信息 todo 增加稳定接口
123
+ def sync_us_stock_info():
124
+ now_date = datetime.now()
125
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
126
+ logger.error("同步东方财富美股信息")
127
+ em_cookie = cookie_info_service.get_em_cookie()
128
+ us_stock_info = east_money_stock_us_api.get_us_real_time_quotes(30, em_cookie)
129
+ us_stock_info['_id'] = us_stock_info['symbol']
130
+ us_stock_info['sync_time'] = str_now_date
131
+
132
+ us_stock_info = us_stock_info.fillna(0)
133
+ mongodb_util.save_mongo(us_stock_info, extra_income_db_name.US_STOCK_INFO_EM)
134
+
135
+
136
+ if __name__ == '__main__':
137
+ sync_all_em_stock_info()
138
+ # em_cookie = cookie_info_service.get_em_cookie()
139
+ # em_us_stock_info = east_money_stock_us_api.get_us_stock_real_time_quotes(em_cookie, None)
140
+ # em_us_stock_info['_id'] = em_us_stock_info['symbol']
141
+ # mongodb_util.save_mongo(em_us_stock_info, db_name_constant.EM_US_STOCK_INFO)