akshare 1.16.76__py3-none-any.whl → 1.16.78__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- akshare/__init__.py +12 -7
- akshare/futures/futures_zh_sina.py +1 -1
- akshare/stock_a/stock_zh_a_spot.py +0 -24
- akshare/stock_feature/stock_lhb_em.py +118 -1
- {akshare-1.16.76.dist-info → akshare-1.16.78.dist-info}/METADATA +1 -8
- {akshare-1.16.76.dist-info → akshare-1.16.78.dist-info}/RECORD +9 -9
- {akshare-1.16.76.dist-info → akshare-1.16.78.dist-info}/WHEEL +0 -0
- {akshare-1.16.76.dist-info → akshare-1.16.78.dist-info}/licenses/LICENSE +0 -0
- {akshare-1.16.76.dist-info → akshare-1.16.78.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3085,9 +3085,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
3085
3085
|
1.16.74 fix: fix stock_individual_spot_xq interface
|
3086
3086
|
1.16.75 fix: fix get_qhkc_index interface
|
3087
3087
|
1.16.76 fix: fix spot_quotations_sge interface
|
3088
|
+
1.16.77 add: add stock_lhb_yyb_detail_em interface
|
3089
|
+
1.16.78 fix: fix stock_zh_a_spot_em interface
|
3088
3090
|
"""
|
3089
3091
|
|
3090
|
-
__version__ = "1.16.
|
3092
|
+
__version__ = "1.16.78"
|
3091
3093
|
__author__ = "AKFamily"
|
3092
3094
|
|
3093
3095
|
import sys
|
@@ -3122,9 +3124,11 @@ from akshare.stock_fundamental.stock_gbjg_em import stock_zh_a_gbjg_em
|
|
3122
3124
|
"""
|
3123
3125
|
异步接口
|
3124
3126
|
"""
|
3125
|
-
from akshare.stock_a.stock_zh_a_spot import stock_zh_a_spot_em
|
3126
|
-
from akshare.stock_a.stock_individual_fund_flow_rank import
|
3127
|
-
|
3127
|
+
from akshare.stock_a.stock_zh_a_spot import stock_zh_a_spot_em as stock_zh_a_spot_em_async
|
3128
|
+
from akshare.stock_a.stock_individual_fund_flow_rank import (
|
3129
|
+
stock_individual_fund_flow_rank as stock_individual_fund_flow_rank_async
|
3130
|
+
)
|
3131
|
+
from akshare.stock_a.stock_board_concept_name_em import stock_board_concept_name_em as stock_board_concept_name_em_async
|
3128
3132
|
|
3129
3133
|
"""
|
3130
3134
|
雪球-个股-公司概况-公司简介
|
@@ -3733,6 +3737,7 @@ from akshare.stock_feature.stock_lhb_em import (
|
|
3733
3737
|
stock_lhb_yybph_em,
|
3734
3738
|
stock_lhb_jgstatistic_em,
|
3735
3739
|
stock_lhb_traderstatistic_em,
|
3740
|
+
stock_lhb_yyb_detail_em,
|
3736
3741
|
)
|
3737
3742
|
|
3738
3743
|
"""
|
@@ -4168,7 +4173,7 @@ from akshare.stock.stock_board_concept_em import (
|
|
4168
4173
|
stock_board_concept_cons_em,
|
4169
4174
|
stock_board_concept_hist_em,
|
4170
4175
|
stock_board_concept_hist_min_em,
|
4171
|
-
|
4176
|
+
stock_board_concept_name_em,
|
4172
4177
|
stock_board_concept_spot_em,
|
4173
4178
|
)
|
4174
4179
|
|
@@ -4212,7 +4217,7 @@ from akshare.stock_feature.stock_pankou_em import (
|
|
4212
4217
|
A 股东方财富
|
4213
4218
|
"""
|
4214
4219
|
from akshare.stock_feature.stock_hist_em import (
|
4215
|
-
|
4220
|
+
stock_zh_a_spot_em,
|
4216
4221
|
stock_bj_a_spot_em,
|
4217
4222
|
stock_new_a_spot_em,
|
4218
4223
|
stock_kc_a_spot_em,
|
@@ -4811,7 +4816,7 @@ from akshare.stock.stock_fund_em import (
|
|
4811
4816
|
stock_individual_fund_flow,
|
4812
4817
|
stock_market_fund_flow,
|
4813
4818
|
stock_sector_fund_flow_rank,
|
4814
|
-
|
4819
|
+
stock_individual_fund_flow_rank,
|
4815
4820
|
stock_sector_fund_flow_summary,
|
4816
4821
|
stock_sector_fund_flow_hist,
|
4817
4822
|
stock_concept_fund_flow_hist,
|
@@ -88,7 +88,7 @@ def futures_symbol_mark() -> pd.DataFrame:
|
|
88
88
|
return temp_df
|
89
89
|
|
90
90
|
|
91
|
-
def futures_zh_realtime(symbol: str = "
|
91
|
+
def futures_zh_realtime(symbol: str = "PTA") -> pd.DataFrame:
|
92
92
|
"""
|
93
93
|
期货品种当前时刻所有可交易的合约实时数据
|
94
94
|
https://vip.stock.finance.sina.com.cn/quotes_service/view/qihuohangqing.html#titlePos_1
|
@@ -65,30 +65,19 @@ def process_data(page_results: List[Dict]) -> pd.DataFrame:
|
|
65
65
|
for result in page_results:
|
66
66
|
if result.get("rc") == 0 and result.get("data") and result["data"].get("diff"):
|
67
67
|
page_data = result["data"]["diff"]
|
68
|
-
|
69
|
-
# 添加页面信息以便后续计算序号
|
70
68
|
for item in page_data:
|
71
69
|
item["page_number"] = page_number
|
72
70
|
item["page_index"] = page_data.index(item)
|
73
|
-
|
74
71
|
all_data.extend(page_data)
|
75
72
|
page_number += 1
|
76
|
-
|
77
73
|
if not all_data:
|
78
74
|
return pd.DataFrame()
|
79
|
-
|
80
75
|
df = pd.DataFrame(all_data)
|
81
|
-
|
82
|
-
# 计算正确的序号
|
83
76
|
df["序号"] = df.apply(
|
84
77
|
lambda row: (row["page_number"] - 1) * items_per_page + row["page_index"] + 1,
|
85
78
|
axis=1,
|
86
79
|
)
|
87
|
-
|
88
|
-
# 删除临时列
|
89
80
|
df.drop(columns=["page_number", "page_index"], inplace=True, errors="ignore")
|
90
|
-
|
91
|
-
# 设置列名 - 修正了5分钟涨跌的映射 (f11 是正确的5分钟涨跌字段)
|
92
81
|
column_map = {
|
93
82
|
"f1": "原序号",
|
94
83
|
"f2": "最新价",
|
@@ -122,8 +111,6 @@ def process_data(page_results: List[Dict]) -> pd.DataFrame:
|
|
122
111
|
}
|
123
112
|
|
124
113
|
df.rename(columns=column_map, inplace=True)
|
125
|
-
|
126
|
-
# 选择需要的列并确保所有需要的列都存在
|
127
114
|
desired_columns = [
|
128
115
|
"序号",
|
129
116
|
"代码",
|
@@ -149,12 +136,8 @@ def process_data(page_results: List[Dict]) -> pd.DataFrame:
|
|
149
136
|
"60日涨跌幅",
|
150
137
|
"年初至今涨跌幅",
|
151
138
|
]
|
152
|
-
|
153
|
-
# 过滤出存在的列
|
154
139
|
available_columns = [col for col in desired_columns if col in df.columns]
|
155
140
|
df = df[available_columns]
|
156
|
-
|
157
|
-
# 转换数值类型
|
158
141
|
numeric_columns = [
|
159
142
|
"最新价",
|
160
143
|
"涨跌幅",
|
@@ -177,18 +160,12 @@ def process_data(page_results: List[Dict]) -> pd.DataFrame:
|
|
177
160
|
"60日涨跌幅",
|
178
161
|
"年初至今涨跌幅",
|
179
162
|
]
|
180
|
-
|
181
163
|
for col in numeric_columns:
|
182
164
|
if col in df.columns:
|
183
165
|
df[col] = pd.to_numeric(df[col], errors="coerce")
|
184
|
-
|
185
|
-
# 按涨跌幅降序排序
|
186
166
|
df.sort_values(by="涨跌幅", ascending=False, inplace=True)
|
187
|
-
|
188
|
-
# 重新生成序号
|
189
167
|
df.reset_index(drop=True, inplace=True)
|
190
168
|
df["序号"] = df.index + 1
|
191
|
-
|
192
169
|
return df
|
193
170
|
|
194
171
|
|
@@ -213,7 +190,6 @@ async def stock_zh_a_spot_em_async() -> pd.DataFrame:
|
|
213
190
|
"fields": "f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,"
|
214
191
|
"f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
|
215
192
|
}
|
216
|
-
|
217
193
|
results = await fetch_all_pages_async(url, params)
|
218
194
|
return process_data(results)
|
219
195
|
|
@@ -480,7 +480,7 @@ def stock_lhb_hyyyb_em(
|
|
480
480
|
"卖出总金额",
|
481
481
|
"总买卖净额",
|
482
482
|
"-",
|
483
|
-
"
|
483
|
+
"营业部代码",
|
484
484
|
"买入股票",
|
485
485
|
"-",
|
486
486
|
"-",
|
@@ -496,6 +496,7 @@ def stock_lhb_hyyyb_em(
|
|
496
496
|
"卖出总金额",
|
497
497
|
"总买卖净额",
|
498
498
|
"买入股票",
|
499
|
+
"营业部代码",
|
499
500
|
]
|
500
501
|
]
|
501
502
|
|
@@ -900,6 +901,119 @@ def stock_lhb_stock_detail_em(
|
|
900
901
|
return temp_df
|
901
902
|
|
902
903
|
|
904
|
+
def stock_lhb_yyb_detail_em(symbol: str = "10188715") -> pd.DataFrame:
|
905
|
+
"""
|
906
|
+
东方财富网-数据中心-龙虎榜单-营业部历史交易明细-营业部交易明细
|
907
|
+
https://data.eastmoney.com/stock/lhb/yyb/10188715.html
|
908
|
+
:param symbol: 营业部代码, 如 "10188715", 通过 ak.stock_lhb_hyyyb_em() 接口获取
|
909
|
+
:type symbol: str
|
910
|
+
:return: 营业部交易明细数据
|
911
|
+
:rtype: pandas.DataFrame
|
912
|
+
"""
|
913
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
914
|
+
params = {
|
915
|
+
"sortColumns": "TRADE_DATE,SECURITY_CODE",
|
916
|
+
"sortTypes": "-1,1",
|
917
|
+
"pageSize": '100',
|
918
|
+
"pageNumber": "1",
|
919
|
+
"reportName": "RPT_OPERATEDEPT_TRADE_DETAILSNEW",
|
920
|
+
"columns": "ALL",
|
921
|
+
"source": "WEB",
|
922
|
+
"client": "WEB",
|
923
|
+
"filter": f'(OPERATEDEPT_CODE="{symbol}")',
|
924
|
+
}
|
925
|
+
r = requests.get(url, params=params)
|
926
|
+
data_json = r.json()
|
927
|
+
total_page = data_json["result"]["pages"]
|
928
|
+
big_df = pd.DataFrame()
|
929
|
+
tqdm = get_tqdm()
|
930
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
931
|
+
params.update({"pageNumber": page})
|
932
|
+
r = requests.get(url, params=params)
|
933
|
+
data_json = r.json()
|
934
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
935
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
936
|
+
|
937
|
+
# 检查DataFrame是否为空
|
938
|
+
if big_df.empty:
|
939
|
+
return pd.DataFrame()
|
940
|
+
|
941
|
+
# 确保列名与实际返回的JSON数据结构一致
|
942
|
+
column_map = {
|
943
|
+
"OPERATEDEPT_CODE": "营业部代码",
|
944
|
+
"OPERATEDEPT_NAME": "营业部名称",
|
945
|
+
"TRADE_DATE": "交易日期",
|
946
|
+
"D1_CLOSE_ADJCHRATE": "1日后涨跌幅",
|
947
|
+
"D2_CLOSE_ADJCHRATE": "2日后涨跌幅",
|
948
|
+
"D3_CLOSE_ADJCHRATE": "3日后涨跌幅",
|
949
|
+
"D5_CLOSE_ADJCHRATE": "5日后涨跌幅",
|
950
|
+
"D10_CLOSE_ADJCHRATE": "10日后涨跌幅",
|
951
|
+
"SECURITY_CODE": "股票代码",
|
952
|
+
"SECURITY_NAME_ABBR": "股票名称",
|
953
|
+
"ACT_BUY": "买入金额",
|
954
|
+
"ACT_SELL": "卖出金额",
|
955
|
+
"NET_AMT": "净额",
|
956
|
+
"EXPLANATION": "上榜原因",
|
957
|
+
"D20_CLOSE_ADJCHRATE": "20日后涨跌幅",
|
958
|
+
"D30_CLOSE_ADJCHRATE": "30日后涨跌幅",
|
959
|
+
"SECUCODE": "证券代码",
|
960
|
+
"OPERATEDEPT_CODE_OLD": "营业部旧代码",
|
961
|
+
"ORG_NAME_ABBR": "营业部简称",
|
962
|
+
"CHANGE_RATE": "涨跌幅"
|
963
|
+
}
|
964
|
+
|
965
|
+
# 重命名列
|
966
|
+
big_df.rename(columns=column_map, inplace=True)
|
967
|
+
|
968
|
+
# 添加序号列
|
969
|
+
big_df.reset_index(inplace=True)
|
970
|
+
big_df["序号"] = big_df.index + 1
|
971
|
+
|
972
|
+
# 选择需要的列并排序
|
973
|
+
result_columns = [
|
974
|
+
"序号",
|
975
|
+
"营业部代码",
|
976
|
+
"营业部名称",
|
977
|
+
"营业部简称",
|
978
|
+
"交易日期",
|
979
|
+
"股票代码",
|
980
|
+
"股票名称",
|
981
|
+
"涨跌幅",
|
982
|
+
"买入金额",
|
983
|
+
"卖出金额",
|
984
|
+
"净额",
|
985
|
+
"上榜原因",
|
986
|
+
"1日后涨跌幅",
|
987
|
+
"2日后涨跌幅",
|
988
|
+
"3日后涨跌幅",
|
989
|
+
"5日后涨跌幅",
|
990
|
+
"10日后涨跌幅",
|
991
|
+
"20日后涨跌幅",
|
992
|
+
"30日后涨跌幅",
|
993
|
+
]
|
994
|
+
|
995
|
+
# 确保所有列都存在
|
996
|
+
for col in result_columns:
|
997
|
+
if col not in big_df.columns and col != "序号":
|
998
|
+
big_df[col] = None
|
999
|
+
|
1000
|
+
big_df = big_df[result_columns]
|
1001
|
+
|
1002
|
+
# 处理日期格式
|
1003
|
+
big_df["交易日期"] = pd.to_datetime(big_df["交易日期"], errors="coerce").dt.date
|
1004
|
+
|
1005
|
+
# 处理数值列
|
1006
|
+
numeric_cols = [
|
1007
|
+
"涨跌幅", "买入金额", "卖出金额", "净额",
|
1008
|
+
"1日后涨跌幅", "2日后涨跌幅", "3日后涨跌幅",
|
1009
|
+
"5日后涨跌幅", "10日后涨跌幅", "20日后涨跌幅", "30日后涨跌幅"
|
1010
|
+
]
|
1011
|
+
for col in numeric_cols:
|
1012
|
+
big_df[col] = pd.to_numeric(big_df[col], errors="coerce")
|
1013
|
+
|
1014
|
+
return big_df
|
1015
|
+
|
1016
|
+
|
903
1017
|
if __name__ == "__main__":
|
904
1018
|
stock_lhb_detail_em_df = stock_lhb_detail_em(
|
905
1019
|
start_date="20250201", end_date="20250228"
|
@@ -949,3 +1063,6 @@ if __name__ == "__main__":
|
|
949
1063
|
symbol="600077", date="20070416", flag="买入"
|
950
1064
|
)
|
951
1065
|
print(stock_lhb_stock_detail_em_df)
|
1066
|
+
|
1067
|
+
stock_lhb_yyb_detail_em_df = stock_lhb_yyb_detail_em(symbol="10188715")
|
1068
|
+
print(stock_lhb_yyb_detail_em_df)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: akshare
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.78
|
4
4
|
Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
|
5
5
|
Home-page: https://github.com/akfamily/akshare
|
6
6
|
Author: AKFamily
|
@@ -53,13 +53,6 @@ Dynamic: requires-dist
|
|
53
53
|
Dynamic: requires-python
|
54
54
|
Dynamic: summary
|
55
55
|
|
56
|
-
**资源分享**:对于想了解更多财经数据与量化投研的小伙伴,推荐一个专注于财经数据和量化研究的知识社区。
|
57
|
-
该社区提供相关文档和视频学习资源,汇集了各类财经数据源和量化投研工具的使用经验。
|
58
|
-
有兴趣深入学习的朋友可点此[了解更多](https://t.zsxq.com/ZCxUG),也推荐大家关注微信公众号【数据科学实战】。
|
59
|
-
|
60
|
-
**工具推荐**:期魔方是一款本地化期货量化分析工具,适合数据分析爱好者使用。无需复杂部署,支持数据分析和机器学习功能,研究功能免费开放。
|
61
|
-
如需了解更多信息可访问[期魔方](https://qmfquant.com/)。
|
62
|
-
|
63
56
|

|
64
57
|
|
65
58
|
[](https://pypi.org/project/akshare/)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=GbUMpPLXtUTAcMkn9JIZ1ByRkQmD-SQNGuL3F6SNp6Y,193425
|
2
2
|
akshare/datasets.py,sha256=rKuRNZrqi6IMsZ9nyvO3Rx02js0tH3zMLjz8HQNAoPQ,963
|
3
3
|
akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
|
4
4
|
akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
|
@@ -131,7 +131,7 @@ akshare/futures/futures_spot_stock_em.py,sha256=43CPkAouDu691M6aCMdO1SGKglTak2ab
|
|
131
131
|
akshare/futures/futures_stock_js.py,sha256=sAao7ZcqBovdEo4wrVt2K6kXK2rf1_kT_StQdzhm9og,1635
|
132
132
|
akshare/futures/futures_to_spot.py,sha256=0MCVcZoZoOMd7DSR357K2UHoRBCeHyONyRCu8oWVWuw,12841
|
133
133
|
akshare/futures/futures_warehouse_receipt.py,sha256=wF98kwKsIc0GCcwgwoup2m76Pg800HdXY29Wf1jvDNc,9116
|
134
|
-
akshare/futures/futures_zh_sina.py,sha256=
|
134
|
+
akshare/futures/futures_zh_sina.py,sha256=wFFiPdud7a6HUHxohlQmN0FsnrvsadTYhbq0cZT4dpo,26191
|
135
135
|
akshare/futures/receipt.py,sha256=0VAEMkAGI0_U3JkKB5e42fZNsbDHhM-WjlXaJXACyM0,23491
|
136
136
|
akshare/futures/requests_fun.py,sha256=w4inzqYjrAiRx_E3oszbcJwrRJR3MKpm5Rkropdusoo,2893
|
137
137
|
akshare/futures/symbol_var.py,sha256=HnKKQ8waVW6sjlqh4F9vsloKY1NVs2s_-M4DB5hb7cA,5589
|
@@ -292,7 +292,7 @@ akshare/stock/stock_zh_kcb_sina.py,sha256=ZKFoyq9Y-6LhBoYERc4Oqv5q3Llpne7ngDIZcC
|
|
292
292
|
akshare/stock_a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
293
293
|
akshare/stock_a/stock_board_concept_name_em.py,sha256=VqqvGwNHh8hFqL7zOzHjx_FvSuYycBkwgQvltK3s0Lc,5283
|
294
294
|
akshare/stock_a/stock_individual_fund_flow_rank.py,sha256=WBB8j2swF5WNlsfIk2kW4NzbhsozON2HXU5AiTYFgRw,8996
|
295
|
-
akshare/stock_a/stock_zh_a_spot.py,sha256=
|
295
|
+
akshare/stock_a/stock_zh_a_spot.py,sha256=452JAHlgj5wC9KI5bF3VSlslcHv9CrDTiR9_jJaCD6M,6072
|
296
296
|
akshare/stock_feature/__init__.py,sha256=c2VDBGyg8nWZYLvtnnSqUoQ92Cu6dJ7UFOeJsB2Gff8,82
|
297
297
|
akshare/stock_feature/cons.py,sha256=h_cIhO4YEx8joPozwE5-jHABPsT8tN7tkZ5v-gcTfmw,466
|
298
298
|
akshare/stock_feature/stock_a_below_net_asset_statistics.py,sha256=XrhZI-wLuXXufI5Nh1l9gUx9x7f0iDtdtKa14wexo54,2653
|
@@ -335,7 +335,7 @@ akshare/stock_feature/stock_inner_trade_xq.py,sha256=XNeQheeWcjdhuvfO2NWt_m191HX
|
|
335
335
|
akshare/stock_feature/stock_irm_cninfo.py,sha256=xD028gllzaHYj6xU9pRKvSLI_gIkVhCTnFH0dSPv1gY,6112
|
336
336
|
akshare/stock_feature/stock_jgdy_em.py,sha256=B39Il7p1a_hx0FXL4zo_Xsxi10Z8W7_EZv8f9nNnwXg,6080
|
337
337
|
akshare/stock_feature/stock_lh_yybpm.py,sha256=7VlqA-UGbfiQ4ez7Ah9znIfUcVI-7Fxxz_V03JO8LTY,3614
|
338
|
-
akshare/stock_feature/stock_lhb_em.py,sha256=
|
338
|
+
akshare/stock_feature/stock_lhb_em.py,sha256=0zQVJAI6Q2-fByX45-DpC_2KF3sU9lVvcC-ds0IM0_k,38237
|
339
339
|
akshare/stock_feature/stock_lhb_sina.py,sha256=W5F5aPlxAmHzzxcf1AAiJuMVtTK9PlYMo_XamCZ5N1o,9232
|
340
340
|
akshare/stock_feature/stock_margin_em.py,sha256=DRuZ3nwtpYq55Yq3WF8jFlj4xEou3bf9krcc_JbJOPM,3327
|
341
341
|
akshare/stock_feature/stock_margin_sse.py,sha256=0Lq9dS21cJVMNMM-L1aEnsnO3V-0BSOr7kwEl9s9YEU,6804
|
@@ -394,10 +394,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
|
|
394
394
|
akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
|
395
395
|
akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
|
396
396
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
397
|
-
akshare-1.16.
|
397
|
+
akshare-1.16.78.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
398
398
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
399
399
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
400
|
-
akshare-1.16.
|
401
|
-
akshare-1.16.
|
402
|
-
akshare-1.16.
|
403
|
-
akshare-1.16.
|
400
|
+
akshare-1.16.78.dist-info/METADATA,sha256=Exf2oiP7sHonZthQwhNjNGrMysnsHnnMC5diPcbeCNU,11902
|
401
|
+
akshare-1.16.78.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
402
|
+
akshare-1.16.78.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
403
|
+
akshare-1.16.78.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|