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

Files changed (166) hide show
  1. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/PKG-INFO +1 -1
  2. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/data/data_init_api.py +13 -8
  3. mns_common-1.4.3.4/mns_common/component/us/us_stock_etf_info_api.py +125 -0
  4. mns_common-1.4.3.4/mns_common/db/v2/__init__.py +7 -0
  5. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common.egg-info/PKG-INFO +1 -1
  6. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common.egg-info/SOURCES.txt +2 -0
  7. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/setup.py +1 -1
  8. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/README.md +0 -0
  9. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/__init__.py +0 -0
  10. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/__init__.py +0 -0
  11. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/__init__.py +0 -0
  12. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/k_line_api.py +0 -0
  13. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
  14. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_dt_pool.py +0 -0
  15. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_zb_pool.py +0 -0
  16. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_zt_pool_api.py +0 -0
  17. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
  18. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/__init__.py +0 -0
  19. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/concept/__init__.py +0 -0
  20. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/concept/em_concept_index_api.py +0 -0
  21. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/gd/__init__.py +0 -0
  22. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +0 -0
  23. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/__init__.py +0 -0
  24. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_debt_api.py +0 -0
  25. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_etf_api.py +0 -0
  26. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_a_api.py +0 -0
  27. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py +0 -0
  28. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_hk_api.py +0 -0
  29. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_us_api.py +0 -0
  30. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/hk/__init__.py +0 -0
  31. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
  32. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/k_line/__init__.py +0 -0
  33. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
  34. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
  35. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/__init__.py +0 -0
  36. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/common/__init__.py +0 -0
  37. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
  38. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
  39. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/concept/__init__.py +0 -0
  40. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
  41. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/constant/__init__.py +0 -0
  42. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
  43. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/industry/__init__.py +0 -0
  44. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
  45. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/selection/__init__.py +0 -0
  46. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
  47. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/__init__.py +0 -0
  48. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
  49. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
  50. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
  51. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/msg/__init__.py +0 -0
  52. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/msg/push_msg_api.py +0 -0
  53. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/proxies/__init__.py +0 -0
  54. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/proxies/liu_guan_proxy_api.py +0 -0
  55. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/qmt/__init__.py +0 -0
  56. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
  57. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/__init__.py +0 -0
  58. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/big_deal/__init__.py +0 -0
  59. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
  60. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/company/__init__.py +0 -0
  61. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
  62. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
  63. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/__init__.py +0 -0
  64. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/__init__.py +0 -0
  65. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
  66. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
  67. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/__init__.py +0 -0
  68. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
  69. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
  70. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
  71. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
  72. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/self_choose/__init__.py +0 -0
  73. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
  74. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/wen_cai/__init__.py +0 -0
  75. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
  76. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/zt/__init__.py +0 -0
  77. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
  78. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +0 -0
  79. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/us/__init__.py +0 -0
  80. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/us/ths_us_company_info_api.py +0 -0
  81. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/xueqiu/__init__.py +0 -0
  82. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/api/xueqiu/xue_qiu_k_line_api.py +0 -0
  83. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/__init__.py +0 -0
  84. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/cache/__init__.py +0 -0
  85. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/cache/cache_service.py +0 -0
  86. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/classify/__init__.py +0 -0
  87. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/classify/symbol_classify_api.py +0 -0
  88. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/classify/symbol_classify_param.py +0 -0
  89. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/common_service_fun_api.py +0 -0
  90. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/company/__init__.py +0 -0
  91. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/company/company_common_service_api.py +0 -0
  92. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/company/company_common_service_new_api.py +0 -0
  93. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/concept/__init__.py +0 -0
  94. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
  95. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
  96. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/cookie/__init__.py +0 -0
  97. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/cookie/cookie_enum.py +0 -0
  98. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/cookie/cookie_info_service.py +0 -0
  99. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/data/__init__.py +0 -0
  100. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/deal/__init__.py +0 -0
  101. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/deal/deal_service_api.py +0 -0
  102. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/deal/terminal_enum.py +0 -0
  103. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/em/__init__.py +0 -0
  104. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/em/em_real_time_quotes_api.py +0 -0
  105. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/em/em_stock_info_api.py +0 -0
  106. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/exception/ExceptionMonitor.py +0 -0
  107. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/exception/__init__.py +0 -0
  108. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/hk/__init__.py +0 -0
  109. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/hk/company_hk_service_api.py +0 -0
  110. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/industry/__init__.py +0 -0
  111. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/industry/ths_industry_index_api.py +0 -0
  112. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/__init__.py +0 -0
  113. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/clean/__init__.py +0 -0
  114. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/clean/k_line_param.py +0 -0
  115. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
  116. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/common/__init__.py +0 -0
  117. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
  118. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/__init__.py +0 -0
  119. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
  120. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
  121. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/price/__init__.py +0 -0
  122. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/price/trade_price_service_api.py +0 -0
  123. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/proxies/__init__.py +0 -0
  124. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/proxies/proxy_common_api.py +0 -0
  125. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/qmt/__init__.py +0 -0
  126. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/qmt/qmt_buy_service.py +0 -0
  127. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/real_time/__init__.py +0 -0
  128. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
  129. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/redis_msg/__init__.py +0 -0
  130. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
  131. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/self_choose/__init__.py +0 -0
  132. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/self_choose/black_list_service_api.py +0 -0
  133. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
  134. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/task/__init__.py +0 -0
  135. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/task/real_time_data_sync_check.py +0 -0
  136. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/tfp/__init__.py +0 -0
  137. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/tfp/stock_tfp_api.py +0 -0
  138. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/trade_date/__init__.py +0 -0
  139. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
  140. {mns_common-1.4.3.1/mns_common/db/v2 → mns_common-1.4.3.4/mns_common/component/us}/__init__.py +0 -0
  141. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/zt/__init__.py +0 -0
  142. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/component/zt/zt_common_service_api.py +0 -0
  143. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/__init__.py +0 -0
  144. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/black_list_classify_enum.py +0 -0
  145. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/db_name_constant.py +0 -0
  146. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/east_money_stock_api.py +0 -0
  147. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/extra_income_db_name.py +0 -0
  148. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/price_enum.py +0 -0
  149. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/redis_msg_constant.py +0 -0
  150. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/self_choose_constant.py +0 -0
  151. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/constant/strategy_classify.py +0 -0
  152. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/db/MongodbUtil.py +0 -0
  153. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/db/MongodbUtilLocal.py +0 -0
  154. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/db/__init__.py +0 -0
  155. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/db/v2/MongodbUtilV2.py +0 -0
  156. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/__init__.py +0 -0
  157. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/async_fun.py +0 -0
  158. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/cmd_util.py +0 -0
  159. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/data_frame_util.py +0 -0
  160. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/date_handle_util.py +0 -0
  161. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/db_util.py +0 -0
  162. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/file_util.py +0 -0
  163. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common/utils/ip_util.py +0 -0
  164. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common.egg-info/dependency_links.txt +0 -0
  165. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/mns_common.egg-info/top_level.txt +0 -0
  166. {mns_common-1.4.3.1 → mns_common-1.4.3.4}/setup.cfg +0 -0
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_common
3
- Version: 1.4.3.1
3
+ Version: 1.4.3.4
@@ -60,16 +60,21 @@ def calculate_parameter_factor(real_time_quotes_now):
60
60
  real_time_quotes_now['large_inflow_multiple'] = round(
61
61
  (real_time_quotes_now['large_order_net_inflow'] / real_time_quotes_now['reference_main_inflow']), 2)
62
62
 
63
- real_time_quotes_now.loc[:, 'real_disk_diff_amount_exchange'] = round(
64
- (real_time_quotes_now['disk_diff_amount_exchange'] / real_time_quotes_now['mv_circulation_ratio']), 2)
63
+ if 'real_disk_diff_amount_exchange' not in real_time_quotes_now.columns:
64
+ real_time_quotes_now.loc[:, 'real_disk_diff_amount_exchange'] = round(
65
+ (real_time_quotes_now['disk_diff_amount_exchange'] / real_time_quotes_now['mv_circulation_ratio']), 2)
65
66
 
66
- real_time_quotes_now.loc[:, 'real_main_inflow_multiple'] = round(
67
- (real_time_quotes_now['main_inflow_multiple'] / real_time_quotes_now['mv_circulation_ratio']), 2)
67
+ if 'real_main_inflow_multiple' not in real_time_quotes_now.columns:
68
+ real_time_quotes_now.loc[:, 'real_main_inflow_multiple'] = round(
69
+ (real_time_quotes_now['main_inflow_multiple'] / real_time_quotes_now['mv_circulation_ratio']), 2)
68
70
 
69
- real_time_quotes_now.loc[:, 'real_super_main_inflow_multiple'] = round(
70
- (real_time_quotes_now['super_main_inflow_multiple'] / real_time_quotes_now['mv_circulation_ratio']), 2)
71
- real_time_quotes_now.loc[:, 'real_exchange'] = round(
72
- (real_time_quotes_now['exchange'] / real_time_quotes_now['mv_circulation_ratio']), 2)
71
+ if 'real_super_main_inflow_multiple' not in real_time_quotes_now.columns:
72
+ real_time_quotes_now.loc[:, 'real_super_main_inflow_multiple'] = round(
73
+ (real_time_quotes_now['super_main_inflow_multiple'] / real_time_quotes_now['mv_circulation_ratio']), 2)
74
+
75
+ if 'real_exchange' not in real_time_quotes_now.columns:
76
+ real_time_quotes_now.loc[:, 'real_exchange'] = round(
77
+ (real_time_quotes_now['exchange'] / real_time_quotes_now['mv_circulation_ratio']), 2)
73
78
 
74
79
  real_time_quotes_now.loc[:, 'max_real_main_inflow_multiple'] = real_time_quotes_now[
75
80
  ['real_main_inflow_multiple', 'real_super_main_inflow_multiple']].max(axis=1)
@@ -0,0 +1,125 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 21
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+ from loguru import logger
9
+ import csv
10
+ import requests
11
+ import pandas as pd
12
+ import mns_common.component.em.em_stock_info_api as em_stock_info_api
13
+ from functools import lru_cache
14
+ import mns_common.utils.data_frame_util as data_frame_util
15
+
16
+
17
+ @lru_cache()
18
+ def get_us_stock_info():
19
+ # 东财美股列表
20
+ em_us_stock_info_df = em_stock_info_api.get_us_stock_info()
21
+ em_us_stock_info_df['symbol'] = em_us_stock_info_df['symbol'].str.replace('_', '-')
22
+ em_us_stock_info_df = em_us_stock_info_df.loc[em_us_stock_info_df['total_mv'] != 0]
23
+
24
+ if data_frame_util.is_not_empty(em_us_stock_info_df):
25
+ em_us_stock_info_df.fillna({'list_date': 10000101}, inplace=True)
26
+ em_us_stock_info_df = em_us_stock_info_df[['symbol', 'name', 'list_date']]
27
+
28
+ # alpha 股票名单
29
+ alpha_us_stock_info = get_us_alpha_stock_list()
30
+ alpha_us_stock_info = alpha_us_stock_info.loc[alpha_us_stock_info['assetType'] == 'Stock']
31
+ if data_frame_util.is_not_empty(alpha_us_stock_info):
32
+ alpha_us_stock_info.fillna({'list_date': '1000-01-01'}, inplace=True)
33
+ alpha_us_stock_info = alpha_us_stock_info[['symbol', 'name', 'list_date']]
34
+
35
+ alpha_us_stock_info['list_date'] = alpha_us_stock_info['list_date'].astype(str).str.replace('-', '').astype(int)
36
+
37
+ us_stock_result_df = pd.concat([alpha_us_stock_info, em_us_stock_info_df])
38
+ us_stock_result_df.drop_duplicates(subset=['symbol'], inplace=True)
39
+
40
+ return us_stock_result_df
41
+
42
+
43
+ @lru_cache()
44
+ def get_us_etf_info():
45
+ us_etf_info_df = em_stock_info_api.get_us_etf_info()
46
+ if data_frame_util.is_not_empty(us_etf_info_df):
47
+ us_etf_info_df.fillna({'list_date': 10000101}, inplace=True)
48
+ us_etf_info_df = us_etf_info_df[['symbol', 'name', 'list_date']]
49
+
50
+ # alpha ETF名单
51
+ alpha_us_etf_info = get_us_alpha_stock_list()
52
+ alpha_us_etf_info = alpha_us_etf_info.loc[alpha_us_etf_info['assetType'] == 'ETF']
53
+ if data_frame_util.is_not_empty(alpha_us_etf_info):
54
+ alpha_us_etf_info.fillna({'list_date': '1000-01-01'}, inplace=True)
55
+ alpha_us_etf_info = alpha_us_etf_info[['symbol', 'name', 'list_date']]
56
+
57
+ alpha_us_etf_info['list_date'] = alpha_us_etf_info['list_date'].astype(str).str.replace('-', '').astype(int)
58
+ us_etf_result_df = pd.concat([us_etf_info_df, alpha_us_etf_info])
59
+ us_etf_result_df.drop_duplicates(subset=['symbol'], inplace=True)
60
+
61
+ return us_etf_result_df
62
+
63
+
64
+ # 退市 https://www.alphavantage.co/query?function=LISTING_STATUS&date=2012-07-10&state=delisted&apikey=QODR3TBYB2U4M9YR
65
+ @lru_cache()
66
+ def get_us_alpha_stock_list():
67
+ try:
68
+ # replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
69
+ CSV_URL = 'https://www.alphavantage.co/query?function=LISTING_STATUS&apikey=demo'
70
+ with requests.Session() as s:
71
+ download = s.get(CSV_URL)
72
+ decoded_content = download.content.decode('utf-8')
73
+ cr = csv.reader(decoded_content.splitlines(), delimiter=',')
74
+ my_list = list(cr)
75
+ # 提取列名(第1行)
76
+ columns = my_list[0]
77
+ # 提取数据(第2行及以后)
78
+ values = my_list[1:]
79
+
80
+ # 转换为 DataFrame
81
+ df = pd.DataFrame(values, columns=columns)
82
+ df = df.rename(columns={'ipoDate': 'list_date'})
83
+ if data_frame_util.is_not_empty(df):
84
+ df.to_csv(r'D:\mns\mns-common\mns_common\component\us\listing_status.csv', index=False, encoding='gbk')
85
+ return df
86
+ except BaseException as e:
87
+ logger.error("下载出现异常:{},", e)
88
+ df = pd.read_csv(r'D:\mns\mns-common\mns_common\component\us\listing_status.csv', encoding='utf-8')
89
+ df = df.rename(columns={'ipoDate': 'list_date'})
90
+ return df
91
+
92
+
93
+ def get_us_alpha_stock_de_list():
94
+ try:
95
+ # replace the "demo" apikey below with your own key from https://www.alphavantage.co/support/#api-key
96
+ CSV_URL = 'https://www.alphavantage.co/query?function=LISTING_STATUS&date=2025-08-02&state=delisted&apikey=QODR3TBYB2U4M9YR'
97
+ with requests.Session() as s:
98
+ download = s.get(CSV_URL)
99
+ decoded_content = download.content.decode('utf-8')
100
+ cr = csv.reader(decoded_content.splitlines(), delimiter=',')
101
+ my_list = list(cr)
102
+ # 提取列名(第1行)
103
+ columns = my_list[0]
104
+ # 提取数据(第2行及以后)
105
+ values = my_list[1:]
106
+
107
+ # 转换为 DataFrame
108
+ df = pd.DataFrame(values, columns=columns)
109
+ df = df.rename(columns={'ipoDate': 'list_date'})
110
+ if data_frame_util.is_not_empty(df):
111
+ df.to_csv(r'D:\mns\mns-common\mns_common\component\us\de_list_status.csv', index=False, encoding='gbk')
112
+ return df
113
+ except BaseException as e:
114
+ logger.error("下载出现异常:{},", e)
115
+ df = pd.read_csv(r'D:\mns\mns-common\mns_common\component\us\de_list_status.csv', encoding='utf-8')
116
+ df = df.rename(columns={'ipoDate': 'list_date'})
117
+ return df
118
+
119
+
120
+ if __name__ == '__main__':
121
+ # get_us_alpha_stock_de_list()
122
+ df_test = get_us_stock_info()
123
+ df_test.drop_duplicates(subset=['symbol'], inplace=True)
124
+ print(df_test)
125
+ get_us_alpha_stock_de_list()
@@ -0,0 +1,7 @@
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)
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns-common
3
- Version: 1.4.3.1
3
+ Version: 1.4.3.4
@@ -136,6 +136,8 @@ mns_common/component/tfp/__init__.py
136
136
  mns_common/component/tfp/stock_tfp_api.py
137
137
  mns_common/component/trade_date/__init__.py
138
138
  mns_common/component/trade_date/trade_date_common_service_api.py
139
+ mns_common/component/us/__init__.py
140
+ mns_common/component/us/us_stock_etf_info_api.py
139
141
  mns_common/component/zt/__init__.py
140
142
  mns_common/component/zt/zt_common_service_api.py
141
143
  mns_common/constant/__init__.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='mns_common',
5
- version='1.4.3.1',
5
+ version='1.4.3.4',
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