fastapi==0.115.6
uvicorn[standard]==0.34.0
# 生产进程管理：gunicorn + UvicornWorker（开发用 `uvicorn --reload` 即可）
gunicorn==23.0.0
sqlalchemy[asyncio]==2.0.36
asyncpg==0.30.0
alembic==1.14.0
pydantic==2.10.4
pydantic-settings==2.7.0
pyjwt==2.10.1
redis==5.2.1
python-multipart==0.0.20
# Windows has no system tz database; ZoneInfo("Asia/Shanghai") fails without this.
# On Linux the package simply shadows the system one -- harmless.
tzdata==2026.5

# dev / test only (split into requirements-dev.txt when it grows)
pytest==8.3.4
pytest-asyncio==0.25.0
httpx==0.28.1
# 微信登录态加密（Fernet）与二维码渲染
cryptography==50.0.2
qrcode==8.2
# 微信里发来链接时抓正文：trafilatura 的正文抽取在中文站上最稳，lxml 是它的解析底座；
# lxml_html_clean 是 jusText（trafilatura 的回退抽取）还要的模块，lxml 6 起被拆成独立包。
trafilatura==2.0.0
lxml==6.1.3
lxml_html_clean==0.4.6
courlan==1.4.0
htmldate==1.11.0
jusText==3.0.2
charset-normalizer==3.5.2
urllib3==2.8.0
tld==0.13.2
dateparser==1.5.0
ruff==0.8.4
