rquote 0.4.7__tar.gz → 0.4.9__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.
- {rquote-0.4.7 → rquote-0.4.9}/PKG-INFO +2 -24
- {rquote-0.4.7 → rquote-0.4.9}/README.md +1 -23
- {rquote-0.4.7 → rquote-0.4.9}/pyproject.toml +1 -1
- {rquote-0.4.7 → rquote-0.4.9}/rquote/api/lists.py +36 -2
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/hk_stock.py +7 -1
- {rquote-0.4.7 → rquote-0.4.9}/rquote.egg-info/PKG-INFO +2 -24
- {rquote-0.4.7 → rquote-0.4.9}/rquote/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/api/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/api/price.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/api/stock_info.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/api/tick.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/cache/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/cache/base.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/cache/memory.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/cache/persistent.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/config.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/data_sources/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/data_sources/base.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/data_sources/sina.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/data_sources/tencent.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/exceptions.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/factors/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/factors/technical.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/base.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/cn_stock.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/factory.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/future.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/markets/us_stock.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/parsers/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/parsers/kline.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/plots.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils/__init__.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils/date.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils/helpers.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils/http.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils/logging.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils/web.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote/utils.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote.egg-info/SOURCES.txt +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote.egg-info/dependency_links.txt +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote.egg-info/requires.txt +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/rquote.egg-info/top_level.txt +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/setup.cfg +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/tests/test_api.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/tests/test_cache.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/tests/test_config.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/tests/test_exceptions.py +0 -0
- {rquote-0.4.7 → rquote-0.4.9}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rquote
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.9
|
|
4
4
|
Summary: Mostly day quotes of cn/hk/us/fund/future markets, side with quote list fetch
|
|
5
5
|
Requires-Python: >=3.9.0
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -18,7 +18,7 @@ Requires-Dist: duckdb>=0.9.0; extra == "persistent"
|
|
|
18
18
|
|
|
19
19
|
## 版本信息
|
|
20
20
|
|
|
21
|
-
当前版本:**0.4.
|
|
21
|
+
当前版本:**0.4.9**
|
|
22
22
|
|
|
23
23
|
## 主要特性
|
|
24
24
|
|
|
@@ -575,30 +575,8 @@ python -m pytest tests/test_api.py
|
|
|
575
575
|
4. **网络要求**: 部分功能需要网络连接,请确保网络畅通
|
|
576
576
|
5. **缓存使用**: 建议使用缓存机制减少网络请求,提升性能
|
|
577
577
|
|
|
578
|
-
## 更新日志
|
|
579
|
-
|
|
580
|
-
### v0.3.5 (2024)
|
|
581
|
-
- 修复Critical Bugs
|
|
582
|
-
- 新增配置管理模块
|
|
583
|
-
- 新增异常处理体系
|
|
584
|
-
- 新增缓存抽象层
|
|
585
|
-
- 改进HTTP客户端
|
|
586
|
-
- 新增单元测试
|
|
587
|
-
- 完善文档
|
|
588
|
-
|
|
589
|
-
### v0.3.4
|
|
590
|
-
- 初始版本
|
|
591
578
|
|
|
592
579
|
## 贡献
|
|
593
580
|
|
|
594
581
|
欢迎提交Issue和Pull Request!
|
|
595
582
|
|
|
596
|
-
## 许可证
|
|
597
|
-
|
|
598
|
-
Copyright (c) 2021 Roi ZHAO
|
|
599
|
-
|
|
600
|
-
## 相关文档
|
|
601
|
-
|
|
602
|
-
- [架构改进建议](ARCHITECTURE_IMPROVEMENTS.md)
|
|
603
|
-
- [重构代码示例](REFACTORING_EXAMPLES.md)
|
|
604
|
-
- [快速修复清单](QUICK_FIXES.md)
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 版本信息
|
|
6
6
|
|
|
7
|
-
当前版本:**0.4.
|
|
7
|
+
当前版本:**0.4.9**
|
|
8
8
|
|
|
9
9
|
## 主要特性
|
|
10
10
|
|
|
@@ -561,30 +561,8 @@ python -m pytest tests/test_api.py
|
|
|
561
561
|
4. **网络要求**: 部分功能需要网络连接,请确保网络畅通
|
|
562
562
|
5. **缓存使用**: 建议使用缓存机制减少网络请求,提升性能
|
|
563
563
|
|
|
564
|
-
## 更新日志
|
|
565
|
-
|
|
566
|
-
### v0.3.5 (2024)
|
|
567
|
-
- 修复Critical Bugs
|
|
568
|
-
- 新增配置管理模块
|
|
569
|
-
- 新增异常处理体系
|
|
570
|
-
- 新增缓存抽象层
|
|
571
|
-
- 改进HTTP客户端
|
|
572
|
-
- 新增单元测试
|
|
573
|
-
- 完善文档
|
|
574
|
-
|
|
575
|
-
### v0.3.4
|
|
576
|
-
- 初始版本
|
|
577
564
|
|
|
578
565
|
## 贡献
|
|
579
566
|
|
|
580
567
|
欢迎提交Issue和Pull Request!
|
|
581
568
|
|
|
582
|
-
## 许可证
|
|
583
|
-
|
|
584
|
-
Copyright (c) 2021 Roi ZHAO
|
|
585
|
-
|
|
586
|
-
## 相关文档
|
|
587
|
-
|
|
588
|
-
- [架构改进建议](ARCHITECTURE_IMPROVEMENTS.md)
|
|
589
|
-
- [重构代码示例](REFACTORING_EXAMPLES.md)
|
|
590
|
-
- [快速修复清单](QUICK_FIXES.md)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rquote"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.9"
|
|
8
8
|
description = "Mostly day quotes of cn/hk/us/fund/future markets, side with quote list fetch"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
# requires-python = ">=3.6.1" # duckdb requires higher python version
|
|
@@ -191,8 +191,11 @@ def get_cnindex_stocks(index_type='hs300'):
|
|
|
191
191
|
# 指数类型到 TYPE 值的映射
|
|
192
192
|
index_type_map = {
|
|
193
193
|
'hs300': '1',
|
|
194
|
+
'sz50': '2',
|
|
194
195
|
'zz500': '3',
|
|
195
|
-
'
|
|
196
|
+
'kc500': '4',
|
|
197
|
+
'zz1000': '7',
|
|
198
|
+
'zz2000': '13'
|
|
196
199
|
}
|
|
197
200
|
|
|
198
201
|
if index_type not in index_type_map:
|
|
@@ -202,6 +205,10 @@ def get_cnindex_stocks(index_type='hs300'):
|
|
|
202
205
|
|
|
203
206
|
# 构建 URL
|
|
204
207
|
base_url = 'https://datacenter-web.eastmoney.com/api/data/v1/get'
|
|
208
|
+
page_size = 500
|
|
209
|
+
all_data = []
|
|
210
|
+
|
|
211
|
+
# 先获取第一页,确定总数
|
|
205
212
|
params = {
|
|
206
213
|
'callback': 'jQuery112308471143523381743_1763517709888',
|
|
207
214
|
'sortColumns': 'SECURITY_CODE',
|
|
@@ -232,7 +239,34 @@ def get_cnindex_stocks(index_type='hs300'):
|
|
|
232
239
|
|
|
233
240
|
# 返回 result.data 中的数据列表
|
|
234
241
|
if data.get('result') and data['result'].get('data'):
|
|
235
|
-
|
|
242
|
+
all_data.extend(data['result']['data'])
|
|
243
|
+
total = int(index_type[2:])
|
|
244
|
+
|
|
245
|
+
# 如果总数超过 page_size,需要分页获取
|
|
246
|
+
if total > page_size:
|
|
247
|
+
total_pages = (total + page_size - 1) // page_size # 向上取整
|
|
248
|
+
|
|
249
|
+
# 从第二页开始获取
|
|
250
|
+
for page_num in range(2, total_pages + 1):
|
|
251
|
+
params['pageNumber'] = str(page_num)
|
|
252
|
+
url = f'{base_url}?{urlencode(params)}'
|
|
253
|
+
|
|
254
|
+
a = hget(url)
|
|
255
|
+
if not a:
|
|
256
|
+
logger.warning(f'Failed to fetch page {page_num} for {index_type}')
|
|
257
|
+
continue
|
|
258
|
+
|
|
259
|
+
json_str = a.text.split('(', 1)[1].rstrip(');')
|
|
260
|
+
page_data = json.loads(json_str)
|
|
261
|
+
|
|
262
|
+
if page_data.get('result') and page_data['result'].get('data'):
|
|
263
|
+
all_data.extend(page_data['result']['data'])
|
|
264
|
+
|
|
265
|
+
# 避免请求过快
|
|
266
|
+
time.sleep(0.1)
|
|
267
|
+
|
|
268
|
+
logger.debug(f'Fetched {len(all_data)} stocks for {index_type} (total: {total})')
|
|
269
|
+
return all_data
|
|
236
270
|
else:
|
|
237
271
|
logger.warning(f'No data found in response for {index_type}')
|
|
238
272
|
return []
|
|
@@ -16,7 +16,13 @@ class HKStockMarket(Market):
|
|
|
16
16
|
def normalize_symbol(self, symbol: str) -> str:
|
|
17
17
|
"""标准化港股代码"""
|
|
18
18
|
if not symbol.startswith('hk'):
|
|
19
|
-
|
|
19
|
+
symbol = 'hk' + symbol
|
|
20
|
+
|
|
21
|
+
# 如果hk后面只有4位数字,则添加一个0
|
|
22
|
+
if symbol.startswith('hk') and len(symbol) == 6:
|
|
23
|
+
# hk + 4位数字 = 6位,需要补0变成 hk + 0 + 4位数字
|
|
24
|
+
return 'hk0' + symbol[2:]
|
|
25
|
+
|
|
20
26
|
return symbol
|
|
21
27
|
|
|
22
28
|
def _fetch_price_data(self, symbol: str, sdate: str = '', edate: str = '',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rquote
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.9
|
|
4
4
|
Summary: Mostly day quotes of cn/hk/us/fund/future markets, side with quote list fetch
|
|
5
5
|
Requires-Python: >=3.9.0
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -18,7 +18,7 @@ Requires-Dist: duckdb>=0.9.0; extra == "persistent"
|
|
|
18
18
|
|
|
19
19
|
## 版本信息
|
|
20
20
|
|
|
21
|
-
当前版本:**0.4.
|
|
21
|
+
当前版本:**0.4.9**
|
|
22
22
|
|
|
23
23
|
## 主要特性
|
|
24
24
|
|
|
@@ -575,30 +575,8 @@ python -m pytest tests/test_api.py
|
|
|
575
575
|
4. **网络要求**: 部分功能需要网络连接,请确保网络畅通
|
|
576
576
|
5. **缓存使用**: 建议使用缓存机制减少网络请求,提升性能
|
|
577
577
|
|
|
578
|
-
## 更新日志
|
|
579
|
-
|
|
580
|
-
### v0.3.5 (2024)
|
|
581
|
-
- 修复Critical Bugs
|
|
582
|
-
- 新增配置管理模块
|
|
583
|
-
- 新增异常处理体系
|
|
584
|
-
- 新增缓存抽象层
|
|
585
|
-
- 改进HTTP客户端
|
|
586
|
-
- 新增单元测试
|
|
587
|
-
- 完善文档
|
|
588
|
-
|
|
589
|
-
### v0.3.4
|
|
590
|
-
- 初始版本
|
|
591
578
|
|
|
592
579
|
## 贡献
|
|
593
580
|
|
|
594
581
|
欢迎提交Issue和Pull Request!
|
|
595
582
|
|
|
596
|
-
## 许可证
|
|
597
|
-
|
|
598
|
-
Copyright (c) 2021 Roi ZHAO
|
|
599
|
-
|
|
600
|
-
## 相关文档
|
|
601
|
-
|
|
602
|
-
- [架构改进建议](ARCHITECTURE_IMPROVEMENTS.md)
|
|
603
|
-
- [重构代码示例](REFACTORING_EXAMPLES.md)
|
|
604
|
-
- [快速修复清单](QUICK_FIXES.md)
|
|
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
|
|
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
|