mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 17:54:15 +08:00
feat: 五档盘口真假涨停修正 + 连板梯队涨跌停切换 + 自动版本管理
连板梯队: - 新增涨停/跌停方向切换(胶囊式, 涨停红/跌停绿) - 跌停侧三状态: 跌停/翘板/止跌(对称涨停侧) - 涨跌停双计数 + 真假板修正/降级标识(问号弹窗) 五档盘口 sealed(真假涨停): - depth_service 独立旁路线(只读enriched, 不动计算逻辑) - 涨跌停一体(一次depth.batch双向覆盖) - 假涨停归炸板/假跌停归翘板, 真封板显示封单量 - 三层防护节流(套餐clamp+限速clamp+接管通知) - Pro/Expert盘中轮询 + 盘后定版job + 启动补跑 - 收盘job可配置(15:01~18:00, 默认15:02) - 设置页'连板梯队降级修正'卡片(开关+配置+立即修正) - 看板页同步应用sealed修正+降级标识 配置/SDK: - tiers.yaml拆分depth5/depth5.batch, 补全quote.batch - tickflow SDK升级0.1.21→0.1.23(depth.batch可用) - 实时行情轮询间隔下限调整(pro 2s/expert 1s) - capabilities缓存schema版本化(v3) 其他: - 档位配色抽共享组件TierTag/tierStyle - Keys页档位问号弹窗(4档位tag+检测说明) - git hooks自动版本号+0.0.1+打tag
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env python3
|
||||
"""版本号自增脚本 — 由 git prepare-commit-msg hook 调用。
|
||||
|
||||
读取当前版本, +0.0.1, 写回 frontend/package.json 和 backend/pyproject.toml。
|
||||
跳过条件(避免 merge/rebase/amend 误触发):
|
||||
- 非 master/main 分支(可选, 当前不限制)
|
||||
- commit message 以 merge/squash/rebase 开头
|
||||
- 环境变量 SKIP_VERSION_BUMP=1
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
PKG = ROOT / "frontend" / "package.json"
|
||||
PYPROJECT = ROOT / "backend" / "pyproject.toml"
|
||||
|
||||
|
||||
def parse_version(v: str) -> tuple[int, int, int]:
|
||||
parts = v.strip().split(".")
|
||||
while len(parts) < 3:
|
||||
parts.append("0")
|
||||
return int(parts[0]), int(parts[1]), int(parts[2])
|
||||
|
||||
|
||||
def bump(v: str) -> str:
|
||||
major, minor, patch = parse_version(v)
|
||||
return f"{major}.{minor}.{patch + 1}"
|
||||
|
||||
|
||||
def read_pkg_version() -> str:
|
||||
data = json.loads(PKG.read_text(encoding="utf-8"))
|
||||
return data["version"]
|
||||
|
||||
|
||||
def write_pkg_version(v: str) -> None:
|
||||
data = json.loads(PKG.read_text(encoding="utf-8"))
|
||||
data["version"] = v
|
||||
PKG.write_text(json.dumps(data, indent=2, ensure_ascii=False) + "\n", encoding="utf-8")
|
||||
|
||||
|
||||
def read_pyproject_version() -> str:
|
||||
text = PYPROJECT.read_text(encoding="utf-8")
|
||||
m = re.search(r'^version\s*=\s*"([^"]+)"', text, re.MULTILINE)
|
||||
return m.group(1) if m else "0.0.0"
|
||||
|
||||
|
||||
def write_pyproject_version(v: str) -> None:
|
||||
text = PYPROJECT.read_text(encoding="utf-8")
|
||||
text = re.sub(r'^version\s*=\s*"[^"]+"', f'version = "{v}"', text, count=1, flags=re.MULTILINE)
|
||||
PYPROJECT.write_text(text, encoding="utf-8")
|
||||
|
||||
|
||||
def main() -> int:
|
||||
# 环境变量跳过
|
||||
if __import__("os").environ.get("SKIP_VERSION_BUMP") == "1":
|
||||
return 0
|
||||
|
||||
cur = read_pkg_version()
|
||||
new = bump(cur)
|
||||
|
||||
# 两个文件版本可能不一致, 统一用 pkg 的为准
|
||||
write_pkg_version(new)
|
||||
write_pyproject_version(new)
|
||||
|
||||
# 暂存版本文件改动(并入本次 commit)
|
||||
import subprocess
|
||||
subprocess.run(["git", "add", str(PKG), str(PYPROJECT)], check=True, cwd=str(ROOT))
|
||||
|
||||
# 输出新版本号供 hook 读用
|
||||
print(f"[bump] {cur} -> {new}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user