mns-common 1.5.2.1__tar.gz → 1.5.2.2__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-common might be problematic. Click here for more details.

Files changed (169) hide show
  1. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/PKG-INFO +1 -1
  2. mns_common-1.5.2.2/mns_common/api/akshare/k_line_api.py +123 -0
  3. mns_common-1.5.2.2/mns_common/api/akshare/stock_bid_ask_api.py +94 -0
  4. mns_common-1.5.2.2/mns_common/api/akshare/stock_dt_pool.py +47 -0
  5. mns_common-1.5.2.2/mns_common/api/akshare/stock_zb_pool.py +48 -0
  6. mns_common-1.5.2.2/mns_common/api/akshare/stock_zt_pool_api.py +47 -0
  7. mns_common-1.5.2.2/mns_common/api/akshare/yjyg_sync_api.py +98 -0
  8. mns_common-1.5.2.2/mns_common/db/__init__.py +7 -0
  9. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common.egg-info/PKG-INFO +1 -1
  10. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common.egg-info/SOURCES.txt +7 -0
  11. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/setup.py +1 -1
  12. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/README.md +0 -0
  13. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/__init__.py +0 -0
  14. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/__init__.py +0 -0
  15. {mns_common-1.5.2.1/mns_common/api/em → mns_common-1.5.2.2/mns_common/api/akshare}/__init__.py +0 -0
  16. {mns_common-1.5.2.1/mns_common/api/kpl → mns_common-1.5.2.2/mns_common/api/em}/__init__.py +0 -0
  17. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/concept/__init__.py +0 -0
  18. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/concept/em_concept_index_api.py +0 -0
  19. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/gd/__init__.py +0 -0
  20. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +0 -0
  21. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/__init__.py +0 -0
  22. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/east_money_debt_api.py +0 -0
  23. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/east_money_etf_api.py +0 -0
  24. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/east_money_stock_a_api.py +0 -0
  25. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py +0 -0
  26. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/east_money_stock_hk_api.py +0 -0
  27. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/east_money_stock_us_api.py +0 -0
  28. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/em/real_time/real_time_quotes_repeat_api.py +0 -0
  29. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/hk/__init__.py +0 -0
  30. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
  31. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/k_line/__init__.py +0 -0
  32. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
  33. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
  34. {mns_common-1.5.2.1/mns_common/api/kpl/constant → mns_common-1.5.2.2/mns_common/api/kpl}/__init__.py +0 -0
  35. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/common/__init__.py +0 -0
  36. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
  37. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
  38. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/concept/__init__.py +0 -0
  39. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
  40. {mns_common-1.5.2.1/mns_common/api/kpl/selection → mns_common-1.5.2.2/mns_common/api/kpl/constant}/__init__.py +0 -0
  41. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
  42. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/industry/__init__.py +0 -0
  43. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
  44. {mns_common-1.5.2.1/mns_common/api/msg → mns_common-1.5.2.2/mns_common/api/kpl/selection}/__init__.py +0 -0
  45. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
  46. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/symbol/__init__.py +0 -0
  47. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
  48. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
  49. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
  50. {mns_common-1.5.2.1/mns_common/api/ths → mns_common-1.5.2.2/mns_common/api/msg}/__init__.py +0 -0
  51. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/msg/push_msg_api.py +0 -0
  52. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/proxies/__init__.py +0 -0
  53. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/proxies/liu_guan_proxy_api.py +0 -0
  54. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/qmt/__init__.py +0 -0
  55. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
  56. {mns_common-1.5.2.1/mns_common/api/ths/big_deal → mns_common-1.5.2.2/mns_common/api/ths}/__init__.py +0 -0
  57. {mns_common-1.5.2.1/mns_common/api/ths/concept → mns_common-1.5.2.2/mns_common/api/ths/big_deal}/__init__.py +0 -0
  58. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
  59. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/company/__init__.py +0 -0
  60. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/company/company_product_area_industry_index_query.py +0 -0
  61. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
  62. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
  63. {mns_common-1.5.2.1/mns_common/api/ths/concept/app → mns_common-1.5.2.2/mns_common/api/ths/concept}/__init__.py +0 -0
  64. {mns_common-1.5.2.1/mns_common/api/ths/concept/web → mns_common-1.5.2.2/mns_common/api/ths/concept/app}/__init__.py +0 -0
  65. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
  66. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
  67. {mns_common-1.5.2.1/mns_common/api/ths/self_choose → mns_common-1.5.2.2/mns_common/api/ths/concept/web}/__init__.py +0 -0
  68. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
  69. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
  70. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
  71. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
  72. {mns_common-1.5.2.1/mns_common/api/ths/wen_cai → mns_common-1.5.2.2/mns_common/api/ths/self_choose}/__init__.py +0 -0
  73. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
  74. {mns_common-1.5.2.1/mns_common/component → mns_common-1.5.2.2/mns_common/api/ths/wen_cai}/__init__.py +0 -0
  75. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
  76. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/zt/__init__.py +0 -0
  77. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
  78. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +0 -0
  79. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/us/__init__.py +0 -0
  80. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/us/ths_us_company_info_api.py +0 -0
  81. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/xueqiu/__init__.py +0 -0
  82. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/api/xueqiu/xue_qiu_k_line_api.py +0 -0
  83. {mns_common-1.5.2.1/mns_common/component/cache → mns_common-1.5.2.2/mns_common/component}/__init__.py +0 -0
  84. {mns_common-1.5.2.1/mns_common/component/company → mns_common-1.5.2.2/mns_common/component/cache}/__init__.py +0 -0
  85. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/cache/cache_service.py +0 -0
  86. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/classify/__init__.py +0 -0
  87. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/classify/symbol_classify_api.py +0 -0
  88. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/classify/symbol_classify_param.py +0 -0
  89. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/common_service_fun_api.py +0 -0
  90. {mns_common-1.5.2.1/mns_common/component/concept → mns_common-1.5.2.2/mns_common/component/company}/__init__.py +0 -0
  91. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/company/company_common_service_api.py +0 -0
  92. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/company/company_common_service_new_api.py +0 -0
  93. {mns_common-1.5.2.1/mns_common/component/data → mns_common-1.5.2.2/mns_common/component/concept}/__init__.py +0 -0
  94. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
  95. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
  96. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/cookie/__init__.py +0 -0
  97. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/cookie/cookie_enum.py +0 -0
  98. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/cookie/cookie_info_service.py +0 -0
  99. {mns_common-1.5.2.1/mns_common/component/industry → mns_common-1.5.2.2/mns_common/component/data}/__init__.py +0 -0
  100. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/data/data_init_api.py +0 -0
  101. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/deal/__init__.py +0 -0
  102. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/deal/deal_service_api.py +0 -0
  103. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/deal/deal_service_v2_api.py +0 -0
  104. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/deal/terminal_enum.py +0 -0
  105. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/em/__init__.py +0 -0
  106. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/em/em_real_time_quotes_api.py +0 -0
  107. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/em/em_stock_info_api.py +0 -0
  108. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/exception/ExceptionMonitor.py +0 -0
  109. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/exception/__init__.py +0 -0
  110. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/hk/__init__.py +0 -0
  111. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/hk/company_hk_service_api.py +0 -0
  112. {mns_common-1.5.2.1/mns_common/component/k_line → mns_common-1.5.2.2/mns_common/component/industry}/__init__.py +0 -0
  113. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/industry/ths_industry_index_api.py +0 -0
  114. {mns_common-1.5.2.1/mns_common/component/k_line/clean → mns_common-1.5.2.2/mns_common/component/k_line}/__init__.py +0 -0
  115. {mns_common-1.5.2.1/mns_common/component/k_line/common → mns_common-1.5.2.2/mns_common/component/k_line/clean}/__init__.py +0 -0
  116. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/k_line/clean/k_line_param.py +0 -0
  117. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
  118. {mns_common-1.5.2.1/mns_common/component/k_line/patterns → mns_common-1.5.2.2/mns_common/component/k_line/common}/__init__.py +0 -0
  119. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
  120. {mns_common-1.5.2.1/mns_common/component/real_time → mns_common-1.5.2.2/mns_common/component/k_line/patterns}/__init__.py +0 -0
  121. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
  122. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
  123. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/price/__init__.py +0 -0
  124. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/price/trade_price_service_api.py +0 -0
  125. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/proxies/__init__.py +0 -0
  126. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/proxies/proxy_common_api.py +0 -0
  127. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/qmt/__init__.py +0 -0
  128. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/qmt/qmt_buy_service.py +0 -0
  129. {mns_common-1.5.2.1/mns_common/component/trade_date → mns_common-1.5.2.2/mns_common/component/real_time}/__init__.py +0 -0
  130. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
  131. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/redis_msg/__init__.py +0 -0
  132. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
  133. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/self_choose/__init__.py +0 -0
  134. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/self_choose/black_list_service_api.py +0 -0
  135. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
  136. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/task/__init__.py +0 -0
  137. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/task/real_time_data_sync_check.py +0 -0
  138. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/tfp/__init__.py +0 -0
  139. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/tfp/stock_tfp_api.py +0 -0
  140. {mns_common-1.5.2.1/mns_common/component/zt → mns_common-1.5.2.2/mns_common/component/trade_date}/__init__.py +0 -0
  141. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
  142. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/us/__init__.py +0 -0
  143. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/us/us_stock_etf_info_api.py +0 -0
  144. {mns_common-1.5.2.1/mns_common/db → mns_common-1.5.2.2/mns_common/component/zt}/__init__.py +0 -0
  145. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/component/zt/zt_common_service_api.py +0 -0
  146. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/__init__.py +0 -0
  147. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/black_list_classify_enum.py +0 -0
  148. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/db_name_constant.py +0 -0
  149. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/east_money_stock_api.py +0 -0
  150. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/extra_income_db_name.py +0 -0
  151. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/price_enum.py +0 -0
  152. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/redis_msg_constant.py +0 -0
  153. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/self_choose_constant.py +0 -0
  154. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/constant/strategy_classify.py +0 -0
  155. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/db/MongodbUtil.py +0 -0
  156. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/db/MongodbUtilLocal.py +0 -0
  157. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/db/v2/MongodbUtilV2.py +0 -0
  158. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/db/v2/__init__.py +0 -0
  159. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/__init__.py +0 -0
  160. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/async_fun.py +0 -0
  161. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/cmd_util.py +0 -0
  162. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/data_frame_util.py +0 -0
  163. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/date_handle_util.py +0 -0
  164. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/db_util.py +0 -0
  165. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/file_util.py +0 -0
  166. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common/utils/ip_util.py +0 -0
  167. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common.egg-info/dependency_links.txt +0 -0
  168. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/mns_common.egg-info/top_level.txt +0 -0
  169. {mns_common-1.5.2.1 → mns_common-1.5.2.2}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_common
3
- Version: 1.5.2.1
3
+ Version: 1.5.2.2
@@ -0,0 +1,123 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import requests
9
+ import pandas as pd
10
+ import mns_common.component.common_service_fun_api as common_service_fun_api
11
+ from datetime import datetime
12
+ import numpy as np
13
+
14
+
15
+ def stock_zh_a_hist(
16
+ symbol: str = "0.000001",
17
+ period: str = 'daily',
18
+ start_date: str = "19700101",
19
+ end_date: str = "22220101",
20
+ adjust: str = "",
21
+ proxies: str = None
22
+ ) -> pd.DataFrame:
23
+ """
24
+ 东方财富网-行情首页-沪深京 A 股-每日行情
25
+ http://quote.eastmoney.com/concept/sh603777.html?from=classic
26
+ :param symbol: 股票代码
27
+ :type symbol: str
28
+ :param period: choice of {'daily', 'weekly', 'monthly'}
29
+ :type period: str
30
+ :param start_date: 开始日期
31
+ :type start_date: str
32
+ :param end_date: 结束日期
33
+ :type end_date: str
34
+ :param adjust: choice of {"qfq": "前复权", "hfq": "后复权", "": "不复权"}
35
+ :type adjust: str
36
+ :param proxies: 代理ip
37
+ :type proxies: str
38
+
39
+ :return: 每日行情
40
+ :rtype: pandas.DataFrame
41
+ """
42
+ adjust_dict = {"qfq": "1", "hfq": "2", "": "0"}
43
+ period_dict = {'daily': '101', 'weekly': '102', 'monthly': '103'}
44
+ url = "http://push2his.eastmoney.com/api/qt/stock/kline/get"
45
+ now_date = datetime.now()
46
+ now_time = int(now_date.timestamp() * 1000)
47
+ now_time = str(now_time)
48
+
49
+ params = {
50
+ "fields1": "f1,f2,f3,f4,f5,f6",
51
+ "fields2": "f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f116",
52
+ "ut": "7eea3edcaed734bea9cbfc24409ed989",
53
+ "klt": period_dict[period],
54
+ "fqt": adjust_dict[adjust],
55
+ "secid": symbol,
56
+ "beg": "0",
57
+ "end": "20500000",
58
+ "_": now_time,
59
+ }
60
+
61
+ if proxies is None:
62
+ r = requests.get(url, params=params)
63
+ else:
64
+ r = requests.get(url, params=params, proxies=proxies)
65
+
66
+ data_json = r.json()
67
+ temp_df = pd.DataFrame([item.split(",") for item in data_json["data"]["klines"]])
68
+ temp_df.columns = [
69
+ "date",
70
+ "open",
71
+ "close",
72
+ "high",
73
+ "low",
74
+ "volume",
75
+ "amount",
76
+ "pct_chg",
77
+ "chg",
78
+ "change",
79
+ "exchange",
80
+ ]
81
+
82
+ temp_df['date'] = temp_df['date'].apply(
83
+ lambda x: x.replace("-", ""))
84
+ temp_df.index = temp_df["date"]
85
+ temp_df = temp_df[start_date:end_date]
86
+ temp_df.reset_index(inplace=True, drop=True)
87
+ temp_df['open'] = pd.to_numeric(temp_df['open'])
88
+ temp_df['close'] = pd.to_numeric(temp_df['close'])
89
+ temp_df['high'] = pd.to_numeric(temp_df['high'])
90
+ temp_df['low'] = pd.to_numeric(temp_df['low'])
91
+ temp_df['volume'] = pd.to_numeric(temp_df['volume'])
92
+ temp_df['amount'] = pd.to_numeric(temp_df['amount'])
93
+ temp_df['pct_chg'] = pd.to_numeric(temp_df['pct_chg'])
94
+ temp_df['chg'] = pd.to_numeric(temp_df['chg'])
95
+ temp_df['change'] = pd.to_numeric(temp_df['change'])
96
+ temp_df['exchange'] = pd.to_numeric(temp_df['exchange'])
97
+
98
+ temp_df['symbol'] = symbol
99
+ temp_df['_id'] = temp_df['symbol'] + '-' + temp_df['date']
100
+ temp_df['last_price'] = round(((temp_df['close']) / (1 + temp_df['chg'] / 100)), 2)
101
+ temp_df['max_chg'] = round(
102
+ ((temp_df['high'] - temp_df['last_price']) / temp_df['last_price']) * 100, 2)
103
+ temp_df['amount_level'] = round((temp_df['amount'] / common_service_fun_api.HUNDRED_MILLION), 2)
104
+ temp_df['flow_mv'] = round(temp_df['amount'] * 100 / temp_df['exchange'], 2)
105
+ temp_df['flow_mv_sp'] = round(temp_df['flow_mv'] / common_service_fun_api.HUNDRED_MILLION, 2)
106
+
107
+ temp_df.replace([np.inf, -np.inf], 0, inplace=True)
108
+ temp_df.fillna(0, inplace=True)
109
+ return temp_df
110
+
111
+
112
+ import mns_common.component.proxies.proxy_common_api as proxy_common_api
113
+
114
+ if __name__ == '__main__':
115
+ while True:
116
+ proxy_ip = proxy_common_api.get_proxy_ip(5)
117
+ df = stock_zh_a_hist("0.000001",
118
+ 'daily',
119
+ "19700101",
120
+ "22220101",
121
+ "",
122
+ proxy_ip)
123
+ print(df)
@@ -0,0 +1,94 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 7
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import pandas as pd
9
+ import requests
10
+
11
+
12
+ def stock_bid_ask_em(symbol: str = "000001") -> pd.DataFrame:
13
+ """
14
+ 东方财富-行情报价
15
+ https://quote.eastmoney.com/sz000001.html
16
+ :param symbol: 股票代码
17
+ :type symbol: str
18
+ :return: 行情报价
19
+ :rtype: pandas.DataFrame
20
+ """
21
+ url = "https://push2.eastmoney.com/api/qt/stock/get"
22
+ params = {
23
+ "fltt": "2",
24
+ "invt": "2",
25
+ "fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,"
26
+ "f168,f47,f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,"
27
+ "f135,f136,f137,f138,f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,"
28
+ "f149,f55,f62,f162,f92,f173,f104,f105,f84,f85,f183,f184,f185,f186,f187,"
29
+ "f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,f110,f262,f263,f264,f267,"
30
+ "f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,f171,f277,f278,"
31
+ "f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,f275,"
32
+ "f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
33
+
34
+ "secid": symbol,
35
+ }
36
+ r = requests.get(url, params=params)
37
+ data_json = r.json()
38
+ tick_dict = {
39
+ "now_price": data_json["data"]["f43"],
40
+ "dt_price": data_json["data"]["f52"],
41
+ "zt_price": data_json["data"]["f51"],
42
+ "wei_bi": data_json["data"]["f191"],
43
+ "sell_5": data_json["data"]["f31"],
44
+ "sell_5_vol": data_json["data"]["f32"] * 100,
45
+ "sell_4": data_json["data"]["f33"],
46
+ "sell_4_vol": data_json["data"]["f34"] * 100,
47
+ "sell_3": data_json["data"]["f35"],
48
+ "sell_3_vol": data_json["data"]["f36"] * 100,
49
+ "sell_2": data_json["data"]["f37"],
50
+ "sell_2_vol": data_json["data"]["f38"] * 100,
51
+ "sell_1": data_json["data"]["f39"],
52
+ "sell_1_vol": data_json["data"]["f40"] * 100,
53
+ "buy_1": data_json["data"]["f19"],
54
+ "buy_1_vol": data_json["data"]["f20"] * 100,
55
+ "buy_2": data_json["data"]["f17"],
56
+ "buy_2_vol": data_json["data"]["f18"] * 100,
57
+ "buy_3": data_json["data"]["f15"],
58
+ "buy_3_vol": data_json["data"]["f16"] * 100,
59
+ "buy_4": data_json["data"]["f13"],
60
+ "buy_4_vol": data_json["data"]["f14"] * 100,
61
+ "buy_5": data_json["data"]["f11"],
62
+ "buy_5_vol": data_json["data"]["f12"] * 100,
63
+ }
64
+ temp_df = pd.DataFrame(tick_dict, index=[1])
65
+ temp_df.reset_index(inplace=True)
66
+ temp_df.loc[temp_df['wei_bi'] == '-', 'wei_bi'] = 0
67
+ temp_df.loc[temp_df['sell_5_vol'] == '-', 'sell_5_vol'] = 0
68
+ temp_df.loc[temp_df['sell_5'] == '-', 'sell_5'] = 0
69
+ temp_df.loc[temp_df['sell_4_vol'] == '-', 'sell_4_vol'] = 0
70
+ temp_df.loc[temp_df['sell_4'] == '-', 'sell_4'] = 0
71
+ temp_df.loc[temp_df['sell_3_vol'] == '-', 'sell_3_vol'] = 0
72
+ temp_df.loc[temp_df['sell_3'] == '-', 'sell_3'] = 0
73
+ temp_df.loc[temp_df['sell_2_vol'] == '-', 'sell_2_vol'] = 0
74
+ temp_df.loc[temp_df['sell_2'] == '-', 'sell_2'] = 0
75
+ temp_df.loc[temp_df['sell_1_vol'] == '-', 'sell_1_vol'] = 0
76
+ temp_df.loc[temp_df['sell_1'] == '-', 'sell_1'] = 0
77
+ temp_df.loc[temp_df['buy_1_vol'] == '-', 'buy_1_vol'] = 0
78
+ temp_df.loc[temp_df['buy_1'] == '-', 'buy_1'] = 0
79
+ temp_df.loc[temp_df['buy_2_vol'] == '-', 'buy_2_vol'] = 0
80
+ temp_df.loc[temp_df['buy_2'] == '-', 'buy_2'] = 0
81
+ temp_df.loc[temp_df['buy_3_vol'] == '-', 'buy_3_vol'] = 0
82
+ temp_df.loc[temp_df['buy_3'] == '-', 'buy_3'] = 0
83
+ temp_df.loc[temp_df['buy_4_vol'] == '-', 'buy_4_vol'] = 0
84
+ temp_df.loc[temp_df['buy_4'] == '-', 'buy_4'] = 0
85
+ temp_df.loc[temp_df['buy_5_vol'] == '-', 'buy_5_vol'] = 0
86
+ temp_df.loc[temp_df['buy_5'] == '-', 'buy_5'] = 0
87
+ temp_df['symbol'] = symbol
88
+ return temp_df
89
+
90
+
91
+ if __name__ == '__main__':
92
+ while True:
93
+ df = stock_bid_ask_em('0.000001')
94
+ print(df)
@@ -0,0 +1,47 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import akshare as ak
9
+ from loguru import logger
10
+ import mns_common.utils.data_frame_util as data_frame_util
11
+ import mns_common.utils.date_handle_util as date_handle_util
12
+
13
+
14
+ def stock_em_dt_pool_df(date):
15
+ try:
16
+ date = date_handle_util.no_slash_date(date)
17
+ stock_dt_pool_df = ak.stock_zt_pool_dtgc_em(date)
18
+ if data_frame_util.is_empty(stock_dt_pool_df):
19
+ return None
20
+ stock_dt_pool_df.rename(columns={"序号": "index",
21
+ "代码": "symbol",
22
+ "名称": "name",
23
+ "涨跌幅": "chg",
24
+ "最新价": "now_price",
25
+ "成交额": "amount",
26
+ "流通市值": "flow_mv",
27
+ "总市值": "total_mv",
28
+ "动态市盈率": "ttm_pe",
29
+ "换手率": "exchange",
30
+ "封单资金": "closure_funds",
31
+ "最后封板时间": "last_closure_time",
32
+ "板上成交额": "plates_deal",
33
+ "连续跌停": "connected_boards_numbers",
34
+ "开板次数": "frying_plates_numbers",
35
+ "所属行业": "industry"
36
+ }, inplace=True)
37
+ stock_dt_pool_df.loc[stock_dt_pool_df['amount'] == '-', 'amount'] = 0
38
+ stock_dt_pool_df.loc[stock_dt_pool_df['exchange'] == '-', 'exchange'] = 0
39
+ stock_dt_pool_df.loc[stock_dt_pool_df['closure_funds'] == '-', 'closure_funds'] = 0
40
+ return stock_dt_pool_df
41
+ except BaseException as e:
42
+ logger.error("同步股票跌停数据出现异常:{},{}", date, e)
43
+ return None
44
+
45
+
46
+ if __name__ == '__main__':
47
+ stock_em_dt_pool_df('20231215')
@@ -0,0 +1,48 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import akshare as ak
9
+ from loguru import logger
10
+ import mns_common.utils.data_frame_util as data_frame_util
11
+ import mns_common.utils.date_handle_util as date_handle_util
12
+
13
+
14
+ def stock_zb_pool_df(date):
15
+ try:
16
+ date = date_handle_util.no_slash_date(date)
17
+ stock_zb_pool = ak.stock_zt_pool_zbgc_em(date)
18
+ if data_frame_util.is_empty(stock_zb_pool):
19
+ return None
20
+ stock_zb_pool.rename(columns={"序号": "index",
21
+ "代码": "symbol",
22
+ "名称": "name",
23
+ "涨跌幅": "chg",
24
+ "最新价": "now_price",
25
+ "炸板股价": "zt_price",
26
+ "成交额": "amount",
27
+ "流通市值": "flow_mv",
28
+ "总市值": "total_mv",
29
+ "动态市盈率": "ttm_pe",
30
+ "换手率": "exchange",
31
+ "涨速": "speed",
32
+ "首次封板时间": "first_closure_time",
33
+ "炸板次数": "frying_plates_numbers",
34
+ "炸板股统计": "statistics",
35
+ "振幅": "pct_chg",
36
+ "所属行业": "industry"
37
+ }, inplace=True)
38
+ stock_zb_pool.loc[stock_zb_pool['amount'] == '-', 'amount'] = 0
39
+ stock_zb_pool.loc[stock_zb_pool['exchange'] == '-', 'exchange'] = 0
40
+ return stock_zb_pool
41
+ except BaseException as e:
42
+ logger.error("同步股票炸板数据出现异常:{},{}", date, e)
43
+ return None
44
+
45
+
46
+ if __name__ == '__main__':
47
+ df = stock_zb_pool_df('2024-09-04')
48
+ print(df)
@@ -0,0 +1,47 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ import akshare as ak
9
+ from loguru import logger
10
+ import mns_common.utils.date_handle_util as date_handle_util
11
+
12
+
13
+ def stock_em_zt_pool_df(date):
14
+ try:
15
+ date = date_handle_util.no_slash_date(date)
16
+ zt_df = ak.stock_zt_pool_em(date)
17
+ if zt_df is None or zt_df.shape[0] == 0:
18
+ return None
19
+ zt_df.rename(columns={"序号": "index",
20
+ "代码": "symbol",
21
+ "名称": "name",
22
+ "最新价": "now_price",
23
+ "涨跌幅": "chg",
24
+ "成交额": "amount",
25
+ "流通市值": "flow_mv",
26
+ "总市值": "total_mv",
27
+ "换手率": "exchange",
28
+ "封板资金": "closure_funds",
29
+ "首次封板时间": "first_closure_time",
30
+ "最后封板时间": "last_closure_time",
31
+ "炸板次数": "frying_plates_numbers",
32
+ "涨停统计": "statistics",
33
+ "连板数": "connected_boards_numbers",
34
+ "所属行业": "industry"
35
+ }, inplace=True)
36
+ zt_df.loc[zt_df['amount'] == '-', 'amount'] = 0
37
+ zt_df.loc[zt_df['exchange'] == '-', 'exchange'] = 0
38
+ zt_df.loc[zt_df['closure_funds'] == '-', 'closure_funds'] = 0
39
+ return zt_df
40
+ except BaseException as e:
41
+ logger.error("同步股票涨停数据出现异常:{},{}", date, e)
42
+ return None
43
+
44
+
45
+ if __name__ == '__main__':
46
+ df = stock_em_zt_pool_df('2025-10-24')
47
+ print(df)
@@ -0,0 +1,98 @@
1
+ import sys
2
+ import os
3
+ import akshare as ak
4
+ from mns_common.db.MongodbUtil import MongodbUtil
5
+ import mns_common.utils.data_frame_util as data_frame_util
6
+ import pandas as pd
7
+ from datetime import datetime
8
+
9
+ file_path = os.path.abspath(__file__)
10
+ end = file_path.index('mns') + 14
11
+ project_path = file_path[0:end]
12
+ sys.path.append(project_path)
13
+ mongodb_util = MongodbUtil('27017')
14
+
15
+ predictor_translation_map = {
16
+ "主营业务收入": "main_operating_revenue",
17
+ "净利润": "net_profit",
18
+ "归属于上市公司股东的净利润": "net_profit_attributable_to_shareholders",
19
+ "扣除后营业收入": "operating_revenue_deducted",
20
+ "扣除非经常性损益后的净利润": "net_profit_excluding_non_recurring_items",
21
+ "扣非后每股收益": "earnings_per_share_excluding_non_recurring_items",
22
+ "每股收益": "earnings_per_share",
23
+ "营业收入": "operating_revenue",
24
+ "非经常性损益": "non_recurring_items"
25
+ }
26
+ # ['net_profit', 'net_profit_attributable_to_shareholders', 'net_profit_excluding_non_recurring_items',
27
+ # 'earnings_per_share_excluding_non_recurring_items', 'earnings_per_share']
28
+ predict_type_translation_map = {
29
+ "不确定": "uncertain",
30
+ "减亏": "loss_reduction",
31
+ "增亏": "increased_loss",
32
+ "扭亏": "turnaround",
33
+ "略减": "slight_decrease",
34
+ "略增": "slight_increase",
35
+ "续亏": "continued_loss",
36
+ "续盈": "continued_profit",
37
+ "预减": "pre_loss",
38
+ "预增": "pre_increase",
39
+ "首亏": "first_loss"
40
+ }
41
+
42
+
43
+ # ['turnaround', 'slight_increase', 'continued_profit', 'pre_increase']
44
+
45
+
46
+ def sync_yjyg_data(period):
47
+ stock_yjyg_em_df = ak.stock_yjyg_em(date=period)
48
+ if data_frame_util.is_empty(stock_yjyg_em_df):
49
+ return None
50
+ now_date = datetime.now()
51
+ str_now_date = now_date.strftime('%Y-%m-%d %H:%M:%S')
52
+ sync_day = now_date.strftime('%Y-%m-%d')
53
+ stock_yjyg_em_df.rename(columns={"序号": "index",
54
+ "股票代码": "symbol",
55
+ "股票简称": "name",
56
+ "预测指标": "predictor",
57
+ "业绩变动": "perform_change_detail",
58
+ "预测数值": "predicted_value",
59
+ "业绩变动幅度": "perform_chg",
60
+ "业绩变动原因": "perform_change_reason",
61
+ "预告类型": "predict_type",
62
+ "上年同期值": "last_year_period",
63
+ "公告日期": "release_day"}, inplace=True)
64
+
65
+ stock_yjyg_em_df['predictor_en'] = stock_yjyg_em_df['predictor'].map(lambda x: predictor_translation_map.get(x, x))
66
+ stock_yjyg_em_df['predict_type_en'] = stock_yjyg_em_df['predict_type'].map(
67
+ lambda x: predict_type_translation_map.get(x, x))
68
+
69
+ stock_yjyg_em_df.loc[:, 'period'] = period
70
+ stock_yjyg_em_df.loc[:, 'sync_day'] = sync_day
71
+ stock_yjyg_em_df.loc[:, 'str_now_date'] = str_now_date
72
+ stock_yjyg_em_df['release_day'] = pd.to_datetime(stock_yjyg_em_df['release_day'])
73
+ stock_yjyg_em_df['release_day'] = stock_yjyg_em_df['release_day'].dt.strftime('%Y-%m-%d')
74
+
75
+ stock_yjyg_em_df['perform_chg'].fillna(0, inplace=True)
76
+ stock_yjyg_em_df['_id'] = stock_yjyg_em_df['symbol'] + '_' + period + '_' + stock_yjyg_em_df[
77
+ 'predictor_en'] + '_' + stock_yjyg_em_df['predict_type_en']
78
+ stock_yjyg_em_df = stock_yjyg_em_df[
79
+ ['_id', 'symbol', 'name', 'predictor',
80
+ 'predictor_en',
81
+ 'perform_change_detail',
82
+ 'predicted_value',
83
+ 'perform_chg',
84
+ 'perform_change_reason',
85
+ 'predict_type',
86
+ 'predict_type_en',
87
+ 'last_year_period',
88
+ 'release_day',
89
+ 'period',
90
+ 'sync_day',
91
+ 'str_now_date',
92
+ 'index']]
93
+
94
+ mongodb_util.save_mongo(stock_yjyg_em_df, 'stock_yjyg_em_df')
95
+
96
+
97
+ if __name__ == '__main__':
98
+ sync_yjyg_data('20230630')
@@ -0,0 +1,7 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-common
3
- Version: 1.5.2.1
3
+ Version: 1.5.2.2
@@ -6,6 +6,13 @@ mns_common.egg-info/SOURCES.txt
6
6
  mns_common.egg-info/dependency_links.txt
7
7
  mns_common.egg-info/top_level.txt
8
8
  mns_common/api/__init__.py
9
+ mns_common/api/akshare/__init__.py
10
+ mns_common/api/akshare/k_line_api.py
11
+ mns_common/api/akshare/stock_bid_ask_api.py
12
+ mns_common/api/akshare/stock_dt_pool.py
13
+ mns_common/api/akshare/stock_zb_pool.py
14
+ mns_common/api/akshare/stock_zt_pool_api.py
15
+ mns_common/api/akshare/yjyg_sync_api.py
9
16
  mns_common/api/em/__init__.py
10
17
  mns_common/api/em/concept/__init__.py
11
18
  mns_common/api/em/concept/em_concept_index_api.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns_common',
5
- version='1.5.2.1',
5
+ version='1.5.2.2',
6
6
  # packages=["mns_common", "mns_common.api",
7
7
  # "mns_common.api.akshare",
8
8
  # "mns_common.api.em",
File without changes
File without changes