hamuna-quant-cli 0.1.13__tar.gz → 0.1.14__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.
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/PKG-INFO +1 -1
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/__init__.py +1 -1
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/cache.py +17 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/PKG-INFO +1 -1
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/pyproject.toml +1 -1
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/MANIFEST.in +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/README.md +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/README.md +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/__main__.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_market_fallback.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_metrics_15.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_test_akquant_parity.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_data_adapter.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_runner.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_schema_adapter.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/base_strategy.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/cross_sectional_helpers.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/__init__.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/loader.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/qmt_broker.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/qmt_market.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/runner.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/server_market_client.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/prebuilt_downloader.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/prebuilt_resolver.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/qmt_translator.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/__init__.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/backtest.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/discipline.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/http_client.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/s3client.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/server_client.py +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/scripts/server.json +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/SOURCES.txt +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/dependency_links.txt +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/entry_points.txt +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/requires.txt +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/top_level.txt +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/setup.cfg +0 -0
- {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/tests/test_live_safety.py +0 -0
|
@@ -50,6 +50,23 @@ def cache_key(params: dict[str, Any]) -> str:
|
|
|
50
50
|
return hashlib.sha256(raw.encode()).hexdigest()[:16]
|
|
51
51
|
|
|
52
52
|
|
|
53
|
+
def make_key(endpoint: str, params: dict[str, Any] | None = None) -> str:
|
|
54
|
+
"""Round 18.63+ 补: http_client.py:174 (qmt_market snapshot 路径) 调
|
|
55
|
+
cache.make_key(endpoint, params) 期望 (endpoint, params) 签名 — 0.1.13 之前
|
|
56
|
+
该方法不存在, 触发 AttributeError 让 live market broker 整个 SSE/snapshot
|
|
57
|
+
推送瘫痪. 实际语义 = endpoint + sorted params, 短小适合本地缓存键.
|
|
58
|
+
|
|
59
|
+
与 cache_key(params) 区别: cache_key 只 hash params (适配 multi-endpoint),
|
|
60
|
+
make_key 把 endpoint 当 prefix, 跟 0.1.13 之后的调用约定一致.
|
|
61
|
+
"""
|
|
62
|
+
ep = (endpoint or "").strip("/")
|
|
63
|
+
if not params:
|
|
64
|
+
return ep
|
|
65
|
+
items = sorted((k, str(v)) for k, v in params.items() if v is not None)
|
|
66
|
+
suffix = "&".join(f"{k}={v}" for k, v in items)
|
|
67
|
+
return f"{ep}?{suffix}" if suffix else ep
|
|
68
|
+
|
|
69
|
+
|
|
53
70
|
def is_fresh(path: Path, endpoint: str) -> bool:
|
|
54
71
|
if not path.exists():
|
|
55
72
|
return False
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hamuna-quant-cli"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.14"
|
|
8
8
|
description = "Hamuna A 股回测 + 实盘统一 CLI (akquant 0.3.x). 替代 v1 自建 driver + QMT-style 策略规范."
|
|
9
9
|
readme = "hamuna_quant_cli/README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_test_akquant_parity.py
RENAMED
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_data_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_schema_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/cross_sectional_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/server_market_client.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
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/server_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|