akshare-one 0.1.0__py3-none-any.whl → 0.1.2__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_one/adapters/eastmoney.py +2 -4
- akshare_one/adapters/sina.py +7 -29
- akshare_one/financial.py +2 -80
- akshare_one/stock.py +1 -1
- akshare_one-0.1.2.dist-info/METADATA +66 -0
- akshare_one-0.1.2.dist-info/RECORD +15 -0
- akshare_one-0.1.0.dist-info/METADATA +0 -61
- akshare_one-0.1.0.dist-info/RECORD +0 -15
- {akshare_one-0.1.0.dist-info → akshare_one-0.1.2.dist-info}/WHEEL +0 -0
- {akshare_one-0.1.0.dist-info → akshare_one-0.1.2.dist-info}/licenses/LICENSE +0 -0
- {akshare_one-0.1.0.dist-info → akshare_one-0.1.2.dist-info}/top_level.txt +0 -0
@@ -31,7 +31,7 @@ class EastMoneyAdapter:
|
|
31
31
|
|
32
32
|
Args:
|
33
33
|
symbol: Unified symbol format (e.g. '600000')
|
34
|
-
interval: Time granularity ('
|
34
|
+
interval: Time granularity ('minute','hour','day','week','month','year')
|
35
35
|
interval_multiplier: Interval multiplier (e.g. 5 for 5 minutes)
|
36
36
|
start_date: Start date in YYYY-MM-DD format (will be converted to YYYYMMDD)
|
37
37
|
end_date: End date in YYYY-MM-DD format (will be converted to YYYYMMDD)
|
@@ -42,9 +42,7 @@ class EastMoneyAdapter:
|
|
42
42
|
"""
|
43
43
|
# Map standard interval to akshare supported periods
|
44
44
|
interval = interval.lower()
|
45
|
-
if interval == "
|
46
|
-
raise ValueError("EastMoney does not support second-level data")
|
47
|
-
elif interval == "minute":
|
45
|
+
if interval == "minute":
|
48
46
|
if interval_multiplier < 1:
|
49
47
|
raise ValueError("Minute interval multiplier must be >= 1")
|
50
48
|
|
akshare_one/adapters/sina.py
CHANGED
@@ -12,7 +12,7 @@ class SinaAdapter:
|
|
12
12
|
- Historical market data
|
13
13
|
"""
|
14
14
|
|
15
|
-
@cached(CACHE_CONFIG["financial_cache"], key=lambda self, symbol: f"
|
15
|
+
@cached(CACHE_CONFIG["financial_cache"], key=lambda self, symbol: f"sina_balance_{symbol}")
|
16
16
|
def get_balance_sheet(self, symbol: str) -> pd.DataFrame:
|
17
17
|
"""获取资产负债表数据
|
18
18
|
|
@@ -26,7 +26,7 @@ class SinaAdapter:
|
|
26
26
|
raw_df = ak.stock_financial_report_sina(stock=stock, symbol="资产负债表")
|
27
27
|
return self._clean_balance_data(raw_df)
|
28
28
|
|
29
|
-
@cached(CACHE_CONFIG["financial_cache"], key=lambda self, symbol: f"
|
29
|
+
@cached(CACHE_CONFIG["financial_cache"], key=lambda self, symbol: f"sina_income_{symbol}")
|
30
30
|
def get_income_statement(self, symbol: str) -> pd.DataFrame:
|
31
31
|
"""获取利润表数据
|
32
32
|
|
@@ -40,7 +40,7 @@ class SinaAdapter:
|
|
40
40
|
raw_df = ak.stock_financial_report_sina(stock=stock, symbol="利润表")
|
41
41
|
return self._clean_income_data(raw_df)
|
42
42
|
|
43
|
-
@cached(CACHE_CONFIG["financial_cache"], key=lambda self, symbol: f"
|
43
|
+
@cached(CACHE_CONFIG["financial_cache"], key=lambda self, symbol: f"sina_cash_{symbol}")
|
44
44
|
def get_cash_flow(self, symbol: str) -> pd.DataFrame:
|
45
45
|
"""获取现金流量表数据
|
46
46
|
|
@@ -98,28 +98,8 @@ class SinaAdapter:
|
|
98
98
|
raw_df = raw_df.rename(columns=column_mapping)
|
99
99
|
|
100
100
|
# Select only required columns
|
101
|
-
required_columns = [
|
102
|
-
|
103
|
-
"report_period",
|
104
|
-
"period",
|
105
|
-
"currency",
|
106
|
-
"net_income",
|
107
|
-
"depreciation_and_amortization",
|
108
|
-
"share_based_compensation",
|
109
|
-
"net_cash_flow_from_operations",
|
110
|
-
"capital_expenditure",
|
111
|
-
"business_acquisitions_and_disposals",
|
112
|
-
"investment_acquisitions_and_disposals",
|
113
|
-
"net_cash_flow_from_investing",
|
114
|
-
"issuance_or_repayment_of_debt_securities",
|
115
|
-
"issuance_or_purchase_of_equity_shares",
|
116
|
-
"dividends_and_other_cash_distributions",
|
117
|
-
"net_cash_flow_from_financing",
|
118
|
-
"change_in_cash_and_equivalents",
|
119
|
-
"effect_of_exchange_rate_changes",
|
120
|
-
"ending_cash_balance",
|
121
|
-
"free_cash_flow",
|
122
|
-
]
|
101
|
+
required_columns = ["report_date"]
|
102
|
+
required_columns.extend(column_mapping.values())
|
123
103
|
|
124
104
|
# Filter columns
|
125
105
|
available_columns = [col for col in required_columns if col in raw_df.columns]
|
@@ -420,7 +400,7 @@ class SinaAdapter:
|
|
420
400
|
"币种": "currency",
|
421
401
|
"营业总收入": "revenue",
|
422
402
|
"营业成本": "cost_of_revenue",
|
423
|
-
"营业利润": "
|
403
|
+
"营业利润": "operating_profit",
|
424
404
|
"销售费用": "selling_general_and_administrative_expenses",
|
425
405
|
"管理费用": "operating_expense",
|
426
406
|
"研发费用": "research_and_development",
|
@@ -438,16 +418,14 @@ class SinaAdapter:
|
|
438
418
|
# Select only required columns
|
439
419
|
required_columns = [
|
440
420
|
"report_date",
|
441
|
-
"report_period",
|
442
421
|
"period",
|
443
422
|
"currency",
|
444
423
|
"revenue",
|
445
424
|
"cost_of_revenue",
|
446
|
-
"
|
425
|
+
"operating_profit",
|
447
426
|
"operating_expense",
|
448
427
|
"selling_general_and_administrative_expenses",
|
449
428
|
"research_and_development",
|
450
|
-
"operating_income",
|
451
429
|
"interest_expense",
|
452
430
|
"ebit",
|
453
431
|
"income_tax_expense",
|
akshare_one/financial.py
CHANGED
@@ -13,39 +13,6 @@ def get_balance_sheet(symbol: str, source: str = "sina") -> "pd.DataFrame":
|
|
13
13
|
Args:
|
14
14
|
symbol: 股票代码 (如 "600600")
|
15
15
|
source: 数据源 ("sina")
|
16
|
-
|
17
|
-
Returns:
|
18
|
-
pd.DataFrame:
|
19
|
-
- report_date: 报告日期
|
20
|
-
- report_period: 报告期
|
21
|
-
- period: 期间
|
22
|
-
- currency: 币种
|
23
|
-
- total_assets: 资产总计
|
24
|
-
- current_assets: 流动资产合计
|
25
|
-
- cash_and_equivalents: 货币资金
|
26
|
-
- inventory: 存货
|
27
|
-
- current_investments: 交易性金融资产
|
28
|
-
- trade_and_non_trade_receivables: 应收票据及应收账款
|
29
|
-
- non_current_assets: 非流动资产合计
|
30
|
-
- property_plant_and_equipment: 固定资产
|
31
|
-
- goodwill_and_intangible_assets: 商誉
|
32
|
-
- investments: 长期股权投资
|
33
|
-
- non_current_investments: 其他非流动金融资产
|
34
|
-
- outstanding_shares: 实收资本(或股本)
|
35
|
-
- tax_assets: 递延所得税资产
|
36
|
-
- total_liabilities: 负债合计
|
37
|
-
- current_liabilities: 流动负债合计
|
38
|
-
- current_debt: 短期借款
|
39
|
-
- trade_and_non_trade_payables: 应付票据及应付账款
|
40
|
-
- deferred_revenue: 合同负债
|
41
|
-
- deposit_liabilities: 吸收存款及同业存放
|
42
|
-
- non_current_liabilities: 非流动负债合计
|
43
|
-
- non_current_debt: 长期借款
|
44
|
-
- tax_liabilities: 递延所得税负债
|
45
|
-
- shareholders_equity: 所有者权益(或股东权益)合计
|
46
|
-
- retained_earnings: 未分配利润
|
47
|
-
- accumulated_other_comprehensive_income: 其他综合收益
|
48
|
-
- total_debt: 总债务(短期借款+长期借款)
|
49
16
|
"""
|
50
17
|
if source == "sina":
|
51
18
|
return SinaAdapter().get_balance_sheet(symbol=symbol)
|
@@ -57,29 +24,7 @@ def get_income_statement(symbol: str, source: str = "sina") -> "pd.DataFrame":
|
|
57
24
|
|
58
25
|
Args:
|
59
26
|
symbol: 股票代码 (如 "600600")
|
60
|
-
source: 数据源 (
|
61
|
-
|
62
|
-
Returns:
|
63
|
-
pd.DataFrame:
|
64
|
-
- report_date: 报告日期
|
65
|
-
- report_period: 报告期
|
66
|
-
- period: 期间
|
67
|
-
- currency: 币种
|
68
|
-
- revenue: 营业总收入
|
69
|
-
- cost_of_revenue: 营业成本
|
70
|
-
- gross_profit: 营业利润
|
71
|
-
- operating_expense: 管理费用
|
72
|
-
- selling_general_and_administrative_expenses: 销售费用
|
73
|
-
- research_and_development: 研发费用
|
74
|
-
- operating_income: 营业利润
|
75
|
-
- interest_expense: 利息支出
|
76
|
-
- ebit: 利润总额
|
77
|
-
- income_tax_expense: 所得税费用
|
78
|
-
- net_income: 净利润
|
79
|
-
- net_income_common_stock: 归属于母公司所有者的净利润
|
80
|
-
- net_income_non_controlling_interests: 少数股东损益
|
81
|
-
- earnings_per_share: 基本每股收益
|
82
|
-
- earnings_per_share_diluted: 稀释每股收益
|
27
|
+
source: 数据源 ("sina")
|
83
28
|
"""
|
84
29
|
if source == "sina":
|
85
30
|
return SinaAdapter().get_income_statement(symbol=symbol)
|
@@ -91,30 +36,7 @@ def get_cash_flow(symbol: str, source: str = "sina") -> "pd.DataFrame":
|
|
91
36
|
|
92
37
|
Args:
|
93
38
|
symbol: 股票代码 (如 "600600")
|
94
|
-
source: 数据源 (
|
95
|
-
|
96
|
-
Returns:
|
97
|
-
pd.DataFrame:
|
98
|
-
- report_date: 报告日期
|
99
|
-
- report_period: 报告期
|
100
|
-
- period: 期间
|
101
|
-
- currency: 币种
|
102
|
-
- net_income: 净利润
|
103
|
-
- depreciation_and_amortization: 固定资产折旧、油气资产折耗、生产性生物资产折旧
|
104
|
-
- share_based_compensation: 无形资产摊销
|
105
|
-
- net_cash_flow_from_operations: 经营活动产生的现金流量净额
|
106
|
-
- capital_expenditure: 购建固定资产、无形资产和其他长期资产支付的现金
|
107
|
-
- business_acquisitions_and_disposals: 取得子公司及其他营业单位支付的现金净额
|
108
|
-
- investment_acquisitions_and_disposals: 投资支付的现金
|
109
|
-
- net_cash_flow_from_investing: 投资活动产生的现金流量净额
|
110
|
-
- issuance_or_repayment_of_debt_securities: 取得借款收到的现金
|
111
|
-
- issuance_or_purchase_of_equity_shares: 吸收投资收到的现金
|
112
|
-
- dividends_and_other_cash_distributions: 分配股利、利润或偿付利息支付的现金
|
113
|
-
- net_cash_flow_from_financing: 筹资活动产生的现金流量净额
|
114
|
-
- change_in_cash_and_equivalents: 现金及现金等价物净增加额
|
115
|
-
- effect_of_exchange_rate_changes: 汇率变动对现金及现金等价物的影响
|
116
|
-
- ending_cash_balance: 期末现金及现金等价物余额
|
117
|
-
- free_cash_flow: 自由现金流
|
39
|
+
source: 数据源 ("sina")
|
118
40
|
"""
|
119
41
|
if source == "sina":
|
120
42
|
return SinaAdapter().get_cash_flow(symbol=symbol)
|
akshare_one/stock.py
CHANGED
@@ -21,7 +21,7 @@ def get_hist_data(
|
|
21
21
|
|
22
22
|
Args:
|
23
23
|
symbol: 股票代码 (e.g. '600000')
|
24
|
-
interval: 时间间隔 ('
|
24
|
+
interval: 时间间隔 ('minute','hour','day','week','month','year')
|
25
25
|
interval_multiplier: 时间间隔倍数 (e.g. 5 for 5 minutes)
|
26
26
|
start_date: 开始日期 (YYYY-MM-DD)
|
27
27
|
end_date: 结束日期 (YYYY-MM-DD)
|
@@ -0,0 +1,66 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: akshare-one
|
3
|
+
Version: 0.1.2
|
4
|
+
Summary: Standardized interface for Chinese financial market data, built on AKShare with unified data formats and simplified APIs
|
5
|
+
License-Expression: MIT
|
6
|
+
Project-URL: Homepage, https://github.com/zwldarren/akshare-one
|
7
|
+
Project-URL: Repository, https://github.com/zwldarren/akshare-one.git
|
8
|
+
Keywords: akshare,financial-data,stock-data,quant
|
9
|
+
Requires-Python: >=3.12
|
10
|
+
Description-Content-Type: text/markdown
|
11
|
+
License-File: LICENSE
|
12
|
+
Requires-Dist: akshare>=1.16.64
|
13
|
+
Requires-Dist: cachetools>=5.5.2
|
14
|
+
Dynamic: license-file
|
15
|
+
|
16
|
+
<div align="center">
|
17
|
+
<h1>AKShare One</h1>
|
18
|
+
<div>
|
19
|
+
<strong>English</strong> | <a href="README_zh.md">中文</a>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
**AKShare One** is a standardized interface for Chinese financial market data, built as a wrapper around [AKShare](https://github.com/akfamily/akshare) to solve inconsistencies in input/output formats across different data sources.
|
24
|
+
|
25
|
+
## ✨ Features
|
26
|
+
|
27
|
+
- 📊 Unified stock code formats across data sources
|
28
|
+
- 🏗️ Standardized return data structures
|
29
|
+
- 🛠️ Simplified API parameters
|
30
|
+
- ⏱️ Automatic timestamp and adjustment handling
|
31
|
+
|
32
|
+
## 🚀 Core Features
|
33
|
+
|
34
|
+
| Feature | Interface |
|
35
|
+
|---------|-----------|
|
36
|
+
| Historical data | `get_hist_data` |
|
37
|
+
| Real-time quotes | `get_realtime_data` |
|
38
|
+
| Stock news | `get_news_data` |
|
39
|
+
| Financial data | `get_balance_sheet`/`get_income_statement`/`get_cash_flow` |
|
40
|
+
| Insider trading | `get_inner_trade_data` |
|
41
|
+
|
42
|
+
## 📦 Quick Installation
|
43
|
+
|
44
|
+
```bash
|
45
|
+
pip install akshare-one
|
46
|
+
```
|
47
|
+
|
48
|
+
## 💻 Usage Example
|
49
|
+
|
50
|
+
```python
|
51
|
+
from akshare_one import get_hist_data, get_realtime_data
|
52
|
+
|
53
|
+
# Get historical data
|
54
|
+
df_hist = get_hist_data(
|
55
|
+
symbol="600000",
|
56
|
+
interval="day",
|
57
|
+
adjust="hfq"
|
58
|
+
)
|
59
|
+
|
60
|
+
# Get real-time data
|
61
|
+
df_realtime = get_realtime_data(symbol="600000")
|
62
|
+
```
|
63
|
+
|
64
|
+
## 📚 Documentation
|
65
|
+
|
66
|
+
Detailed API reference: [docs/api.md](docs/api.md)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
akshare_one/__init__.py,sha256=xWUyTnh1Tv-2mEPxDmk5giUPwhrsoAuZcyoW6mAbX4k,923
|
2
|
+
akshare_one/financial.py,sha256=fCi6FPtPc28id7nQf8b3i2bh5vSCpZTmnPQ9kKr2n8Y,1215
|
3
|
+
akshare_one/insider.py,sha256=hy1eM0Fa2J4uHU3vl-VDm4uB8zYTSUTbonnxOxbBuGc,1193
|
4
|
+
akshare_one/news.py,sha256=qUeX_1SnViDXBAb4Gcl28ow1qvMugEEPL75JgJhLbCA,707
|
5
|
+
akshare_one/stock.py,sha256=T6AEJlOYpVdAesOEU1lVI5tYrDwcs3Zw8KSwFv44WjQ,2457
|
6
|
+
akshare_one/adapters/__init__.py,sha256=JrpGJ80drrU9Imc3L_gZ5Z90zyMd3PiJ5dG86VAEnmA,252
|
7
|
+
akshare_one/adapters/eastmoney.py,sha256=QN6Tx1IrC7xrQjwm_F4dqpafHGMCy1zHvkMzcVuEWpg,11662
|
8
|
+
akshare_one/adapters/sina.py,sha256=M0KNTE8eE3NhBEZ5NcHsI9teK8DQWgwIYr5hfs2YzSc,16634
|
9
|
+
akshare_one/adapters/xueqiu.py,sha256=bwRNTDnXrXJxp4cFG0Uj5LVLBvCxFyxKOHAJS1nnKaM,3624
|
10
|
+
akshare_one/adapters/cache/cache.py,sha256=GhADIdLuh_IFpPXrkhTLv-joTcuh_vC12kRdqT-cpvI,378
|
11
|
+
akshare_one-0.1.2.dist-info/licenses/LICENSE,sha256=Gg6A1GNSJCZWQ73aHJ7TXOa0i8RQ3FejZCTZ6Db07cU,1066
|
12
|
+
akshare_one-0.1.2.dist-info/METADATA,sha256=K8g-_H6i3YsyEP5J04czM4dtp5cfMScNOm2YmdB2EpQ,1865
|
13
|
+
akshare_one-0.1.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
14
|
+
akshare_one-0.1.2.dist-info/top_level.txt,sha256=kNiucyLVAGa89wmUSpXbBLWD7pF_RuahuiaOfLHZSyw,12
|
15
|
+
akshare_one-0.1.2.dist-info/RECORD,,
|
@@ -1,61 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: akshare-one
|
3
|
-
Version: 0.1.0
|
4
|
-
Summary: Add your description here
|
5
|
-
Requires-Python: >=3.12
|
6
|
-
Description-Content-Type: text/markdown
|
7
|
-
License-File: LICENSE
|
8
|
-
Requires-Dist: akshare>=1.16.64
|
9
|
-
Requires-Dist: cachetools>=5.5.2
|
10
|
-
Dynamic: license-file
|
11
|
-
|
12
|
-
# AKShare One
|
13
|
-
|
14
|
-
**AKShare One** 是一个标准化中国金融市场数据接口,基于 [AKShare](https://github.com/akfamily/akshare) 二次封装,解决AKShare多数据源输入输出不统一的问题。
|
15
|
-
|
16
|
-
## 项目背景
|
17
|
-
|
18
|
-
AKShare提供了丰富的中国金融市场数据,但不同数据源的:
|
19
|
-
- 股票代码格式不统一(如东方财富和新浪使用不同格式)
|
20
|
-
- 返回数据结构不一致
|
21
|
-
- 参数命名和用法有差异
|
22
|
-
|
23
|
-
AKShare One希望通过统一封装,提供:
|
24
|
-
- 标准化的股票代码格式
|
25
|
-
- 一致的数据返回结构
|
26
|
-
- 简化的API参数
|
27
|
-
|
28
|
-
## 核心功能
|
29
|
-
|
30
|
-
### 目前仅实现了以下功能:
|
31
|
-
- 历史数据 (`get_hist_data`)
|
32
|
-
- 实时行情 (`get_realtime_data`)
|
33
|
-
- 个股新闻 (`get_news_data`)
|
34
|
-
- 财务数据 (资产负债表/利润表/现金流量表)
|
35
|
-
- 内部交易 (`get_inner_trade_data`)
|
36
|
-
|
37
|
-
### 标准化处理
|
38
|
-
- 统一时间戳为UTC
|
39
|
-
- 自动处理复权数据
|
40
|
-
- 清理异常值和缺失数据
|
41
|
-
- 统一列名和数据类型
|
42
|
-
|
43
|
-
## 快速开始
|
44
|
-
|
45
|
-
使用示例:
|
46
|
-
```python
|
47
|
-
from akshare_one import get_hist_data, get_realtime_data
|
48
|
-
|
49
|
-
# 获取历史数据
|
50
|
-
df_hist = get_hist_data(
|
51
|
-
symbol="600000",
|
52
|
-
interval="day",
|
53
|
-
adjust="hfq"
|
54
|
-
)
|
55
|
-
|
56
|
-
# 获取实时数据
|
57
|
-
df_realtime = get_realtime_data(symbol="600000")
|
58
|
-
```
|
59
|
-
|
60
|
-
## API文档
|
61
|
-
详细API说明请参考 [docs/api.md](docs/api.md)
|
@@ -1,15 +0,0 @@
|
|
1
|
-
akshare_one/__init__.py,sha256=xWUyTnh1Tv-2mEPxDmk5giUPwhrsoAuZcyoW6mAbX4k,923
|
2
|
-
akshare_one/financial.py,sha256=0vPm8LYzV-UIaPIk5GeEJuuCXYYXtWp5h1AYo-9ms38,5005
|
3
|
-
akshare_one/insider.py,sha256=hy1eM0Fa2J4uHU3vl-VDm4uB8zYTSUTbonnxOxbBuGc,1193
|
4
|
-
akshare_one/news.py,sha256=qUeX_1SnViDXBAb4Gcl28ow1qvMugEEPL75JgJhLbCA,707
|
5
|
-
akshare_one/stock.py,sha256=oGd432iZ6_hr63L4VG2iT36wOQ2q8RI8QUOflFY-OPg,2466
|
6
|
-
akshare_one/adapters/__init__.py,sha256=JrpGJ80drrU9Imc3L_gZ5Z90zyMd3PiJ5dG86VAEnmA,252
|
7
|
-
akshare_one/adapters/eastmoney.py,sha256=OP5zNbSRVEKfKX0ikC6onABuifxoWEAbBNYbk_GO3lU,11783
|
8
|
-
akshare_one/adapters/sina.py,sha256=jcpddoEJI7hEIRkxlZl7Ee1PAyDglhsOZGXFOgdnpGs,17412
|
9
|
-
akshare_one/adapters/xueqiu.py,sha256=bwRNTDnXrXJxp4cFG0Uj5LVLBvCxFyxKOHAJS1nnKaM,3624
|
10
|
-
akshare_one/adapters/cache/cache.py,sha256=GhADIdLuh_IFpPXrkhTLv-joTcuh_vC12kRdqT-cpvI,378
|
11
|
-
akshare_one-0.1.0.dist-info/licenses/LICENSE,sha256=Gg6A1GNSJCZWQ73aHJ7TXOa0i8RQ3FejZCTZ6Db07cU,1066
|
12
|
-
akshare_one-0.1.0.dist-info/METADATA,sha256=oHAPghYP-c2rNCZGcqxEYacIxV9pOwuK0eTpnk0l-oQ,1586
|
13
|
-
akshare_one-0.1.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
14
|
-
akshare_one-0.1.0.dist-info/top_level.txt,sha256=kNiucyLVAGa89wmUSpXbBLWD7pF_RuahuiaOfLHZSyw,12
|
15
|
-
akshare_one-0.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|