pydantic>=2.5
pydantic-settings>=2.1
SQLAlchemy>=2.0
PyMySQL>=1.1
# redis-py 6.x 默认按 RESP3 握手 (先发 HELLO 3), 而 208/150 两台 Redis 是 6.0 以前的版本,
# 会回 "unknown command HELLO" 导致行情与 Celery 总线全断 —— 锁在 5.x (默认 RESP2)。
# 代码侧另有 protocol=2 双保险 (app/services/market.py)。
redis>=5.0,<6.0
celery>=5.3
fastapi>=0.110
uvicorn>=0.27
requests>=2.31
chinesecalendar>=1.9
# ---- QMT WebSocket 直连通道 (协议 QMT_WS_PROTOCOL.md V1.0) ----
# websockets 上限锁在 15 之前: 14.x 起 websockets.connect 已切到新版 asyncio 实现,
# 再往上客户端 API 还会继续动。这条通道是要挂实盘的, 不接受"升级依赖顺手换实现"。
websockets>=12.0,<15.0
# Ed25519 签名/验签 (协议 §2.1)。python:3.11-slim 上有 manylinux 轮子, 不需要编译链。
cryptography>=42.0
