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.
Files changed (40) hide show
  1. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/PKG-INFO +1 -1
  2. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/__init__.py +1 -1
  3. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/cache.py +17 -0
  4. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/PKG-INFO +1 -1
  5. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/pyproject.toml +1 -1
  6. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/MANIFEST.in +0 -0
  7. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/README.md +0 -0
  8. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/README.md +0 -0
  9. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/__main__.py +0 -0
  10. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_market_fallback.py +0 -0
  11. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_metrics_15.py +0 -0
  12. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/_test_akquant_parity.py +0 -0
  13. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_data_adapter.py +0 -0
  14. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_runner.py +0 -0
  15. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/akquant_schema_adapter.py +0 -0
  16. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/base_strategy.py +0 -0
  17. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/cross_sectional_helpers.py +0 -0
  18. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/__init__.py +0 -0
  19. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/loader.py +0 -0
  20. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/qmt_broker.py +0 -0
  21. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/qmt_market.py +0 -0
  22. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/runner.py +0 -0
  23. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/live/server_market_client.py +0 -0
  24. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/prebuilt_downloader.py +0 -0
  25. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/prebuilt_resolver.py +0 -0
  26. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/qmt_translator.py +0 -0
  27. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/__init__.py +0 -0
  28. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/backtest.py +0 -0
  29. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/discipline.py +0 -0
  30. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/http_client.py +0 -0
  31. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/s3client.py +0 -0
  32. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/runtime/server_client.py +0 -0
  33. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli/scripts/server.json +0 -0
  34. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/SOURCES.txt +0 -0
  35. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/dependency_links.txt +0 -0
  36. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/entry_points.txt +0 -0
  37. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/requires.txt +0 -0
  38. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/hamuna_quant_cli.egg-info/top_level.txt +0 -0
  39. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/setup.cfg +0 -0
  40. {hamuna_quant_cli-0.1.13 → hamuna_quant_cli-0.1.14}/tests/test_live_safety.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hamuna-quant-cli
3
- Version: 0.1.13
3
+ Version: 0.1.14
4
4
  Summary: Hamuna A 股回测 + 实盘统一 CLI (akquant 0.3.x). 替代 v1 自建 driver + QMT-style 策略规范.
5
5
  Author-email: Hamuna Team <team@hamuna.example>
6
6
  License: MIT
@@ -12,4 +12,4 @@ server (13-key metrics schema). 全部走 akquant 0.3.x 引擎.
12
12
  """
13
13
  from __future__ import annotations
14
14
 
15
- __version__ = "0.1.13"
15
+ __version__ = "0.1.14"
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hamuna-quant-cli
3
- Version: 0.1.13
3
+ Version: 0.1.14
4
4
  Summary: Hamuna A 股回测 + 实盘统一 CLI (akquant 0.3.x). 替代 v1 自建 driver + QMT-style 策略规范.
5
5
  Author-email: Hamuna Team <team@hamuna.example>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "hamuna-quant-cli"
7
- version = "0.1.13"
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"