mns-common 1.4.3.3__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.
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/PKG-INFO +1 -1
- mns_common-1.4.3.4/mns_common/component/us/us_stock_etf_info_api.py +125 -0
- mns_common-1.4.3.4/mns_common/db/v2/__init__.py +7 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common.egg-info/PKG-INFO +1 -1
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common.egg-info/SOURCES.txt +2 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/setup.py +1 -1
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/README.md +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/k_line_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_dt_pool.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_zb_pool.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/stock_zt_pool_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/concept/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/concept/em_concept_index_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/gd/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/gd/east_money_stock_gdfx_free_top_10_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_debt_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_etf_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_a_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_hk_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_us_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/hk/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/k_line/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/common/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/concept/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/constant/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/industry/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/selection/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/msg/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/msg/push_msg_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/proxies/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/proxies/liu_guan_proxy_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/qmt/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/big_deal/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/company/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/self_choose/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/wen_cai/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/zt/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/us/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/us/ths_us_company_info_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/xueqiu/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/xueqiu/xue_qiu_k_line_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/cache/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/cache/cache_service.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/classify/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/classify/symbol_classify_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/classify/symbol_classify_param.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/common_service_fun_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/company/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/company/company_common_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/company/company_common_service_new_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/concept/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/cookie/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/cookie/cookie_enum.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/cookie/cookie_info_service.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/data/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/data/data_init_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/deal/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/deal/deal_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/deal/terminal_enum.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/em/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/em/em_real_time_quotes_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/em/em_stock_info_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/exception/ExceptionMonitor.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/exception/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/hk/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/hk/company_hk_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/industry/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/industry/ths_industry_index_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/clean/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/clean/k_line_param.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/common/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/price/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/price/trade_price_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/proxies/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/proxies/proxy_common_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/qmt/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/qmt/qmt_buy_service.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/real_time/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/redis_msg/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/self_choose/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/self_choose/black_list_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/task/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/task/real_time_data_sync_check.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/tfp/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/tfp/stock_tfp_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/trade_date/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
- {mns_common-1.4.3.3/mns_common/db/v2 → mns_common-1.4.3.4/mns_common/component/us}/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/zt/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/zt/zt_common_service_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/black_list_classify_enum.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/db_name_constant.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/east_money_stock_api.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/extra_income_db_name.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/price_enum.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/redis_msg_constant.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/self_choose_constant.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/constant/strategy_classify.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/db/MongodbUtil.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/db/MongodbUtilLocal.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/db/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/db/v2/MongodbUtilV2.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/__init__.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/async_fun.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/cmd_util.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/data_frame_util.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/date_handle_util.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/db_util.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/file_util.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/utils/ip_util.py +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common.egg-info/dependency_links.txt +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common.egg-info/top_level.txt +0 -0
- {mns_common-1.4.3.3 → mns_common-1.4.3.4}/setup.cfg +0 -0
|
@@ -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()
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_debt_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_a_api.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_a_v2_api.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_hk_api.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/em/real_time/east_money_stock_us_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/common/kpl_common_field_constant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/selection/kpl_selection_plate_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/company/ths_company_announce_api.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/company/ths_company_info_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/ths_concept_detail_app.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/app/ths_concept_index_app.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_common_js_api.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_company_info_web.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_concept_detail_web.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/concept/web/ths_concept_index_web.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/api/ths/self_choose/ths_self_choose_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/classify/symbol_classify_api.py
RENAMED
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/classify/symbol_classify_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/company/company_common_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/cookie/cookie_info_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/em/em_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/exception/ExceptionMonitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/industry/ths_industry_index_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/k_line/patterns/pattern_Enum.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/price/trade_price_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/self_choose/black_list_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3 → mns_common-1.4.3.4}/mns_common/component/task/real_time_data_sync_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.4.3.3/mns_common/db/v2 → mns_common-1.4.3.4/mns_common/component/us}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|