akshare 1.17.78__py3-none-any.whl → 1.17.80__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.
Potentially problematic release.
This version of akshare might be problematic. Click here for more details.
- akshare/__init__.py +9 -2
- akshare/futures/futures_contract_detail.py +49 -2
- akshare/futures_derivative/futures_contract_info_dce.py +30 -11
- akshare/option/option_contract_info_ctp.py +63 -0
- akshare/stock_feature/stock_a_indicator.py +9 -4
- akshare/stock_feature/stock_ttm_lyr.py +14 -8
- {akshare-1.17.78.dist-info → akshare-1.17.80.dist-info}/METADATA +1 -1
- {akshare-1.17.78.dist-info → akshare-1.17.80.dist-info}/RECORD +11 -10
- {akshare-1.17.78.dist-info → akshare-1.17.80.dist-info}/WHEEL +0 -0
- {akshare-1.17.78.dist-info → akshare-1.17.80.dist-info}/licenses/LICENSE +0 -0
- {akshare-1.17.78.dist-info → akshare-1.17.80.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -3185,9 +3185,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
3185
3185
|
1.17.76 fix: fix futures_index_ccidx interface
|
|
3186
3186
|
1.17.77 fix: fix get_dce_daily interface
|
|
3187
3187
|
1.17.78 fix: fix update python 3.14 support
|
|
3188
|
+
1.17.79 fix: fix futures_contract_info_dce interface
|
|
3189
|
+
1.17.80 fix: fix futures_contract_detail_em interface
|
|
3188
3190
|
"""
|
|
3189
3191
|
|
|
3190
|
-
__version__ = "1.17.
|
|
3192
|
+
__version__ = "1.17.80"
|
|
3191
3193
|
__author__ = "AKFamily"
|
|
3192
3194
|
|
|
3193
3195
|
import sys
|
|
@@ -3209,6 +3211,11 @@ if sys.version_info < (3, 9):
|
|
|
3209
3211
|
|
|
3210
3212
|
del sys
|
|
3211
3213
|
|
|
3214
|
+
"""
|
|
3215
|
+
openctp-合约信息接口
|
|
3216
|
+
"""
|
|
3217
|
+
from akshare.option.option_contract_info_ctp import option_contract_info_ctp
|
|
3218
|
+
|
|
3212
3219
|
"""
|
|
3213
3220
|
中国外汇交易中心暨全国银行间同业拆借中心-基准-外汇市场-外汇掉期曲线-外汇掉漆 C-Swap 定盘曲线
|
|
3214
3221
|
"""
|
|
@@ -4683,7 +4690,7 @@ from akshare.stock.stock_zh_kcb_report import stock_zh_kcb_report_em
|
|
|
4683
4690
|
"""
|
|
4684
4691
|
期货合约详情
|
|
4685
4692
|
"""
|
|
4686
|
-
from akshare.futures.futures_contract_detail import futures_contract_detail
|
|
4693
|
+
from akshare.futures.futures_contract_detail import futures_contract_detail, futures_contract_detail_em
|
|
4687
4694
|
|
|
4688
4695
|
"""
|
|
4689
4696
|
胡润排行榜
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/10/30 17:00
|
|
5
5
|
Desc: 查询期货合约当前时刻的详情
|
|
6
6
|
https://finance.sina.com.cn/futures/quotes/V2101.shtml
|
|
7
7
|
"""
|
|
@@ -10,6 +10,7 @@ from io import StringIO
|
|
|
10
10
|
|
|
11
11
|
import pandas as pd
|
|
12
12
|
import requests
|
|
13
|
+
from bs4 import BeautifulSoup
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def futures_contract_detail(symbol: str = "AP2101") -> pd.DataFrame:
|
|
@@ -37,6 +38,52 @@ def futures_contract_detail(symbol: str = "AP2101") -> pd.DataFrame:
|
|
|
37
38
|
return temp_df
|
|
38
39
|
|
|
39
40
|
|
|
41
|
+
def futures_contract_detail_em(symbol: str = "v2602F") -> pd.DataFrame:
|
|
42
|
+
"""
|
|
43
|
+
查询期货合约详情
|
|
44
|
+
https://quote.eastmoney.com/qihuo/v2602F.html
|
|
45
|
+
:param symbol: 合约
|
|
46
|
+
:type symbol: str
|
|
47
|
+
:return: 期货合约详情
|
|
48
|
+
:rtype: pandas.DataFrame
|
|
49
|
+
"""
|
|
50
|
+
url = f"https://quote.eastmoney.com/qihuo/{symbol}.html"
|
|
51
|
+
r = requests.get(url)
|
|
52
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
53
|
+
url_text = \
|
|
54
|
+
soup.find(name="div", attrs={"class": "sidertabbox_tsplit"}).find(name="div", attrs={"class": "onet"}).find(
|
|
55
|
+
"a")[
|
|
56
|
+
'href']
|
|
57
|
+
inner_symbol = url_text.split("#")[-1].strip("futures_")
|
|
58
|
+
url = f"https://futsse-static.eastmoney.com/redis?msgid={inner_symbol}_info"
|
|
59
|
+
r = requests.get(url)
|
|
60
|
+
data_json = r.json()
|
|
61
|
+
temp_df = pd.DataFrame.from_dict(data_json, orient="index")
|
|
62
|
+
column_mapping = {
|
|
63
|
+
'vname': '交易品种',
|
|
64
|
+
'vcode': '交易代码',
|
|
65
|
+
'jydw': '交易单位',
|
|
66
|
+
'bjdw': '报价单位',
|
|
67
|
+
'market': '上市交易所',
|
|
68
|
+
'zxbddw': '最小变动价格',
|
|
69
|
+
'zdtbfd': '跌涨停板幅度',
|
|
70
|
+
'hyjgyf': '合约交割月份',
|
|
71
|
+
'jysj': '交易时间',
|
|
72
|
+
'zhjyr': '最后交易日',
|
|
73
|
+
'zhjgr': '最后交割日',
|
|
74
|
+
'jgpj': '交割品级',
|
|
75
|
+
'zcjybzj': '最初交易保证金',
|
|
76
|
+
'jgfs': '交割方式'
|
|
77
|
+
}
|
|
78
|
+
temp_df.rename(index=column_mapping, inplace=True)
|
|
79
|
+
temp_df.reset_index(drop=False, inplace=True)
|
|
80
|
+
temp_df.columns = ['item', 'value']
|
|
81
|
+
return temp_df
|
|
82
|
+
|
|
83
|
+
|
|
40
84
|
if __name__ == "__main__":
|
|
41
|
-
futures_contract_detail_df = futures_contract_detail(symbol="
|
|
85
|
+
futures_contract_detail_df = futures_contract_detail(symbol="V2101")
|
|
42
86
|
print(futures_contract_detail_df)
|
|
87
|
+
|
|
88
|
+
futures_contract_detail_em_df = futures_contract_detail_em(symbol="v2603F")
|
|
89
|
+
print(futures_contract_detail_em_df)
|
|
@@ -6,29 +6,48 @@ Desc: 大连商品交易所-业务/服务-业务参数-交易参数-合约信息
|
|
|
6
6
|
http://www.dce.com.cn/dalianshangpin/ywfw/ywcs/jycs/hyxxcx/index.html
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
from io import StringIO
|
|
10
|
-
|
|
11
9
|
import pandas as pd
|
|
12
10
|
import requests
|
|
13
11
|
|
|
14
12
|
|
|
15
13
|
def futures_contract_info_dce() -> pd.DataFrame:
|
|
16
14
|
"""
|
|
17
|
-
|
|
18
|
-
http://www.dce.com.cn/
|
|
15
|
+
大连商品交易所-数据中心-业务数据-交易参数-合约信息
|
|
16
|
+
http://www.dce.com.cn/dce/channel/list/180.html
|
|
19
17
|
:return: 交易参数汇总查询
|
|
20
18
|
:rtype: pandas.DataFrame
|
|
21
19
|
"""
|
|
22
|
-
url = "http://
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
20
|
+
url = "http://www.dce.com.cn/dcereport/publicweb/tradepara/contractInfo"
|
|
21
|
+
payload = {
|
|
22
|
+
"lang": "zh",
|
|
23
|
+
"tradeType": "1",
|
|
24
|
+
"varietyId": "all",
|
|
26
25
|
}
|
|
27
|
-
r = requests.post(url,
|
|
28
|
-
|
|
26
|
+
r = requests.post(url, json=payload)
|
|
27
|
+
data_json = r.json()
|
|
28
|
+
temp_df = pd.DataFrame(data_json['data'])
|
|
29
|
+
temp_df.rename(columns={
|
|
30
|
+
"contractId": "合约",
|
|
31
|
+
"variety": "品种名称",
|
|
32
|
+
"varietyOrder": "品种代码",
|
|
33
|
+
"unit": "交易单位",
|
|
34
|
+
"tick": "最小变动价位",
|
|
35
|
+
"startTradeDate": "开始交易日",
|
|
36
|
+
"endTradeDate": "最后交易日",
|
|
37
|
+
"endDeliveryDate": "最后交割日",
|
|
38
|
+
"tradeType": "",
|
|
39
|
+
}, inplace=True)
|
|
40
|
+
temp_df = temp_df[[
|
|
41
|
+
"品种名称",
|
|
42
|
+
"合约",
|
|
43
|
+
"交易单位",
|
|
44
|
+
"最小变动价位",
|
|
45
|
+
"开始交易日",
|
|
46
|
+
"最后交易日",
|
|
47
|
+
"最后交割日",
|
|
48
|
+
]]
|
|
29
49
|
temp_df["交易单位"] = pd.to_numeric(temp_df["交易单位"], errors="coerce")
|
|
30
50
|
temp_df["最小变动价位"] = pd.to_numeric(temp_df["最小变动价位"], errors="coerce")
|
|
31
|
-
temp_df["最小变动价位"] = pd.to_numeric(temp_df["最小变动价位"], errors="coerce")
|
|
32
51
|
temp_df["开始交易日"] = pd.to_datetime(
|
|
33
52
|
temp_df["开始交易日"], format="%Y%m%d", errors="coerce"
|
|
34
53
|
).dt.date
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
Date: 2025/10/30 17:40
|
|
5
|
+
Desc: openctp-合约信息接口
|
|
6
|
+
http://openctp.cn/instruments.html
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import pandas as pd
|
|
10
|
+
import requests
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def option_contract_info_ctp() -> pd.DataFrame:
|
|
14
|
+
"""
|
|
15
|
+
openctp-合约信息接口-期权合约
|
|
16
|
+
http://openctp.cn/instruments.html
|
|
17
|
+
:return: 期权合约信息
|
|
18
|
+
:rtype: pandas.DataFrame
|
|
19
|
+
"""
|
|
20
|
+
url = "http://dict.openctp.cn/instruments?types=option"
|
|
21
|
+
r = requests.get(url)
|
|
22
|
+
data_json = r.json()
|
|
23
|
+
temp_df = pd.DataFrame(data_json['data'])
|
|
24
|
+
|
|
25
|
+
# 字段映射:英文字段名 -> 中文字段名
|
|
26
|
+
column_mapping = {
|
|
27
|
+
'ExchangeID': '交易所ID',
|
|
28
|
+
'InstrumentID': '合约ID',
|
|
29
|
+
'InstrumentName': '合约名称',
|
|
30
|
+
'ProductClass': '商品类别',
|
|
31
|
+
'ProductID': '品种ID',
|
|
32
|
+
'VolumeMultiple': '合约乘数',
|
|
33
|
+
'PriceTick': '最小变动价位',
|
|
34
|
+
'LongMarginRatioByMoney': '做多保证金率',
|
|
35
|
+
'ShortMarginRatioByMoney': '做空保证金率',
|
|
36
|
+
'LongMarginRatioByVolume': '做多保证金/手',
|
|
37
|
+
'ShortMarginRatioByVolume': '做空保证金/手',
|
|
38
|
+
'OpenRatioByMoney': '开仓手续费率',
|
|
39
|
+
'OpenRatioByVolume': '开仓手续费/手',
|
|
40
|
+
'CloseRatioByMoney': '平仓手续费率',
|
|
41
|
+
'CloseRatioByVolume': '平仓手续费/手',
|
|
42
|
+
'CloseTodayRatioByMoney': '平今手续费率',
|
|
43
|
+
'CloseTodayRatioByVolume': '平今手续费/手',
|
|
44
|
+
'DeliveryYear': '交割年份',
|
|
45
|
+
'DeliveryMonth': '交割月份',
|
|
46
|
+
'OpenDate': '上市日期',
|
|
47
|
+
'ExpireDate': '最后交易日',
|
|
48
|
+
'DeliveryDate': '交割日',
|
|
49
|
+
'UnderlyingInstrID': '标的合约ID',
|
|
50
|
+
'UnderlyingMultiple': '标的合约乘数',
|
|
51
|
+
'OptionsType': '期权类型',
|
|
52
|
+
'StrikePrice': '行权价',
|
|
53
|
+
'InstLifePhase': '合约状态'
|
|
54
|
+
}
|
|
55
|
+
# 重命名列为中文
|
|
56
|
+
temp_df = temp_df.rename(columns=column_mapping)
|
|
57
|
+
return temp_df
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# 使用示例
|
|
61
|
+
if __name__ == "__main__":
|
|
62
|
+
option_contract_info_ctp_df = option_contract_info_ctp()
|
|
63
|
+
print(option_contract_info_ctp_df)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/10/30 20:24
|
|
5
5
|
Desc: 市盈率, 市净率和股息率查询
|
|
6
6
|
https://www.legulegu.com/stocklist
|
|
7
7
|
https://www.legulegu.com/s/000001
|
|
@@ -24,12 +24,17 @@ def get_cookie_csrf(url: str = "") -> dict:
|
|
|
24
24
|
:return: 指定市场的市盈率数据
|
|
25
25
|
:rtype: pandas.DataFrame
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
# 创建独立的 session,避免污染全局状态
|
|
28
|
+
session = requests.Session()
|
|
29
|
+
session.headers.update(headers)
|
|
30
|
+
r = session.get(url)
|
|
28
31
|
soup = BeautifulSoup(r.text, features="lxml")
|
|
29
32
|
csrf_tag = soup.find(name="meta", attrs={"name": "_csrf"})
|
|
30
33
|
csrf_token = csrf_tag.attrs["content"]
|
|
31
|
-
headers
|
|
32
|
-
|
|
34
|
+
# 创建新的 headers
|
|
35
|
+
local_headers = headers.copy()
|
|
36
|
+
local_headers.update({"X-CSRF-Token": csrf_token})
|
|
37
|
+
return {"cookies": r.cookies, "headers": local_headers}
|
|
33
38
|
|
|
34
39
|
|
|
35
40
|
def get_token_lg() -> str:
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2025/10/
|
|
4
|
+
Date: 2025/10/30 15:00
|
|
5
5
|
Desc: 全部A股-等权重市盈率、中位数市盈率
|
|
6
6
|
https://www.legulegu.com/stockdata/a-ttm-lyr
|
|
7
7
|
"""
|
|
8
|
-
|
|
9
8
|
import pandas as pd
|
|
10
9
|
import requests
|
|
11
10
|
|
|
@@ -15,29 +14,36 @@ from akshare.stock_feature.stock_a_indicator import get_token_lg, get_cookie_csr
|
|
|
15
14
|
def stock_a_ttm_lyr() -> pd.DataFrame:
|
|
16
15
|
"""
|
|
17
16
|
全部 A 股-等权重市盈率、中位数市盈率
|
|
18
|
-
https://www.legulegu.com/stockdata/a-ttm-lyr
|
|
19
17
|
:return: 全部A股-等权重市盈率、中位数市盈率
|
|
20
18
|
:rtype: pandas.DataFrame
|
|
21
19
|
"""
|
|
20
|
+
|
|
22
21
|
url = "https://legulegu.com/api/stock-data/market-ttm-lyr"
|
|
23
22
|
params = {
|
|
24
23
|
"marketId": "5",
|
|
25
24
|
"token": get_token_lg(),
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
# 获取 cookie 和 headers
|
|
27
|
+
csrf_data = get_cookie_csrf(url="https://www.legulegu.com/stockdata/a-ttm-lyr")
|
|
28
|
+
# 使用返回的 headers(已经是副本)
|
|
29
|
+
request_headers = csrf_data['headers'].copy()
|
|
30
|
+
request_headers.update({
|
|
29
31
|
"host": "www.legulegu.com",
|
|
30
32
|
"referer": "https://www.legulegu.com/stockdata/a-ttm-lyr",
|
|
31
33
|
})
|
|
32
|
-
|
|
34
|
+
# 使用独立的 session
|
|
35
|
+
session = requests.Session()
|
|
36
|
+
r = session.get(
|
|
33
37
|
url,
|
|
34
38
|
params=params,
|
|
35
|
-
cookies=
|
|
36
|
-
headers=
|
|
39
|
+
cookies=csrf_data['cookies'],
|
|
40
|
+
headers=request_headers,
|
|
37
41
|
)
|
|
38
42
|
data_json = r.json()
|
|
39
43
|
temp_df = pd.DataFrame(data_json["data"])
|
|
40
44
|
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
45
|
+
# 关闭 session
|
|
46
|
+
session.close()
|
|
41
47
|
return temp_df
|
|
42
48
|
|
|
43
49
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
1
|
+
akshare/__init__.py,sha256=Rb7gDxWNlSLBL0i0lfpucP6P2GjDmocDP3v8FOQvhwA,200065
|
|
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
|
|
@@ -114,7 +114,7 @@ akshare/futures/futures_basis.py,sha256=YB-fOUTCanNZqHNcJXJdFqpCBi9_NYbrTlzx2st5
|
|
|
114
114
|
akshare/futures/futures_comex_em.py,sha256=NPwOCD6lZUDL4wlGxvbmmJIFkQlW427ERO0vTux13WU,3172
|
|
115
115
|
akshare/futures/futures_comm_ctp.py,sha256=IyVRCUvhLTFzmcUVvlIaYZ1e38ll7AF8ExhgtXKuzrI,1003
|
|
116
116
|
akshare/futures/futures_comm_qihuo.py,sha256=uQfabZ63qME8sTaxUbIUVQBVi8yTaPPDhD7voR9PEx0,10504
|
|
117
|
-
akshare/futures/futures_contract_detail.py,sha256=
|
|
117
|
+
akshare/futures/futures_contract_detail.py,sha256=kDovLUtHELjv3kVkMWMuvsXLkZNnRS_R5hlxE4WBdJ0,2877
|
|
118
118
|
akshare/futures/futures_daily_bar.py,sha256=LYT9_NmIBoHXtrK_jz0iuOKvfA5xZJ4GvDnxDKm-d9k,25057
|
|
119
119
|
akshare/futures/futures_foreign.py,sha256=2cbMA-eug_jriDFwKZWmA_TbPW2GQAjscpZHBrs287E,2131
|
|
120
120
|
akshare/futures/futures_hf_em.py,sha256=juiJauO7T6YTHXIS--ZDW-Idk73KMOrXgRBi1xEiBqA,8195
|
|
@@ -140,7 +140,7 @@ akshare/futures_derivative/__init__.py,sha256=COFyP01gIUhWs4EBr6hwL73B7IWePIzg7v
|
|
|
140
140
|
akshare/futures_derivative/cons.py,sha256=VkG1HMwPVxvj7BaMifcvDpRYLsfd506npVNiEIaLF_s,5914
|
|
141
141
|
akshare/futures_derivative/futures_contract_info_cffex.py,sha256=Vv8ovM3FR1HTNj0Oe6LDmP1CO3lWYhcls9ck-iFir8U,3497
|
|
142
142
|
akshare/futures_derivative/futures_contract_info_czce.py,sha256=PQOcX1DBphqdf01U9zH5D5vqZvPuSif5Tlpisnrzl_U,4329
|
|
143
|
-
akshare/futures_derivative/futures_contract_info_dce.py,sha256=
|
|
143
|
+
akshare/futures_derivative/futures_contract_info_dce.py,sha256=MAajQxkWPfAW0qPTuIHGfgUPZlIJzuTlpOB91z6ElB0,2145
|
|
144
144
|
akshare/futures_derivative/futures_contract_info_gfex.py,sha256=jWQ7TKPNfEjf1FUCnJqWlHmkvv0qYX0xi0JEEUAuzRg,2313
|
|
145
145
|
akshare/futures_derivative/futures_contract_info_ine.py,sha256=vwCPG-Vl8c_Wy3ydBZ11ghMM5gjuPN0x9QFvyWxewXI,2433
|
|
146
146
|
akshare/futures_derivative/futures_contract_info_shfe.py,sha256=PA_S7uIhCidMv2csJ8DpBtKvDQs9GaoZq-yt8oDoyfU,2454
|
|
@@ -201,6 +201,7 @@ akshare/option/cons.py,sha256=WgeX4UvkvFmTsNTMYwXcIJkqSfCw6A3hn3qM73QrIM0,4817
|
|
|
201
201
|
akshare/option/option_comm_qihuo.py,sha256=kjbdp-94KJJJi1ex5U03abtlgviqwP0Aahb6FwddPkk,3128
|
|
202
202
|
akshare/option/option_commodity.py,sha256=tgWqOXBy-GW78qRcsDdn6br-DDWhldQtix5nDN2A4EE,26333
|
|
203
203
|
akshare/option/option_commodity_sina.py,sha256=NN2qywfGZphKlHiEuwU7_3aNXTEKaXH0UrU8xLIQ5XQ,7731
|
|
204
|
+
akshare/option/option_contract_info_ctp.py,sha256=DPXdneZ8UQdqnf4Koq8a6XmFjxXQkCiV_rzo3IzDIUM,2110
|
|
204
205
|
akshare/option/option_current_sse.py,sha256=jdzQPTXNqFLURMdbqovhOeQNvemN59beuotIJzhdNX8,2033
|
|
205
206
|
akshare/option/option_current_szse.py,sha256=_6QTRnpLoVwXnUtSPDR1pqEq27Lnksq_9Sl_O06kP28,3551
|
|
206
207
|
akshare/option/option_czce.py,sha256=9FCgqgxrHX3DBdvg3F6HZ1Hs7uSO7w21KJWpS8Wykgg,2538
|
|
@@ -304,7 +305,7 @@ akshare/stock_feature/__init__.py,sha256=c2VDBGyg8nWZYLvtnnSqUoQ92Cu6dJ7UFOeJsB2
|
|
|
304
305
|
akshare/stock_feature/cons.py,sha256=h_cIhO4YEx8joPozwE5-jHABPsT8tN7tkZ5v-gcTfmw,466
|
|
305
306
|
akshare/stock_feature/stock_a_below_net_asset_statistics.py,sha256=XrhZI-wLuXXufI5Nh1l9gUx9x7f0iDtdtKa14wexo54,2653
|
|
306
307
|
akshare/stock_feature/stock_a_high_low.py,sha256=xS7btdwjlMvxrOu0I3qhezOqLV0gUuHl66FLB_ioxTo,2044
|
|
307
|
-
akshare/stock_feature/stock_a_indicator.py,sha256=
|
|
308
|
+
akshare/stock_feature/stock_a_indicator.py,sha256=6_gTR5HiDfPv6c94DD4AFqIPXRRAxgPxt_A8funQrts,2897
|
|
308
309
|
akshare/stock_feature/stock_a_pe_and_pb.py,sha256=9HfjTSL_DTlAVvv7o3--pOdZiFwhRzYki7O5DfTrNW8,19089
|
|
309
310
|
akshare/stock_feature/stock_account_em.py,sha256=4Vh1zoRXmuoGWu1Dw65c9mhIALqOVpb9PLqG5BJgQVg,3312
|
|
310
311
|
akshare/stock_feature/stock_all_pb.py,sha256=hshUYjNXPPYf3LYj4N0zeT9Q9kxpdBhQVLB9AEPSkAc,1196
|
|
@@ -357,7 +358,7 @@ akshare/stock_feature/stock_sy_em.py,sha256=GysP1WvPpqCLhbCRXH5sxwmXCPYvgtbJYQ_j
|
|
|
357
358
|
akshare/stock_feature/stock_technology_ths.py,sha256=4u9z7H6MYEutOYAQvYfzgc_FxG6XlhkMLujSotAbraw,30827
|
|
358
359
|
akshare/stock_feature/stock_tfp_em.py,sha256=Y3jjZ758AlCvmSHr7tlT0CMk5MawbLln0cMtl1dqYMY,2481
|
|
359
360
|
akshare/stock_feature/stock_three_report_em.py,sha256=SBksPOAGwYFDZSqoOXFg_d4qowHNZdw7JVOMFhMbBG0,24181
|
|
360
|
-
akshare/stock_feature/stock_ttm_lyr.py,sha256=
|
|
361
|
+
akshare/stock_feature/stock_ttm_lyr.py,sha256=EZjP1sXfix60Qii1W3MOnHQ-k1FU-rZ6yjgzxVU8m54,1512
|
|
361
362
|
akshare/stock_feature/stock_value_em.py,sha256=RA842dkeChSEoS3yN9fiGxS3eDzYjeUdrpXbnteyzZY,2576
|
|
362
363
|
akshare/stock_feature/stock_yjbb_em.py,sha256=hQBr1aj808AdA88Y_dpuR7G1mb487hcRamD31UZus-s,4689
|
|
363
364
|
akshare/stock_feature/stock_yjyg_cninfo.py,sha256=KM0O5rHBkVAxDl4dmA_WAgqBWJMuaMLoQ2PyJ-VPBi4,2889
|
|
@@ -399,10 +400,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
|
|
|
399
400
|
akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
|
|
400
401
|
akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
|
|
401
402
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
|
402
|
-
akshare-1.17.
|
|
403
|
+
akshare-1.17.80.dist-info/licenses/LICENSE,sha256=s18q7gS2g1F9-Cnk5eqrJG4OGWSwSxVEMzIuT6HyYNY,1073
|
|
403
404
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
|
404
405
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
|
405
|
-
akshare-1.17.
|
|
406
|
-
akshare-1.17.
|
|
407
|
-
akshare-1.17.
|
|
408
|
-
akshare-1.17.
|
|
406
|
+
akshare-1.17.80.dist-info/METADATA,sha256=8lFwKd4jNydrzNY2srjAw3TdXPQel6QWACRSszctsD0,12765
|
|
407
|
+
akshare-1.17.80.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
408
|
+
akshare-1.17.80.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
|
409
|
+
akshare-1.17.80.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|