Files
Auto_Bangumi/backend/pyproject.toml
Estrella Pan 29dc558789 fix(update): 应用内更新只提供同一主版本的发布,准备 3.3.7
4.0 的更新包要求 4.0 镜像,3.3 镜像上无法应用;稳定版与测试版渠道都不再提供 4.x。
发布列表每页取 100 条,4.x 发布增多后仍能找到 3.x 发布。
2026-10-24 11:03:45 +02:00

100 lines
2.5 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[project]
name = "auto-bangumi"
version = "3.3.7"
description = "AutoBangumi - Automated anime download manager"
requires-python = ">=3.13"
dependencies = [
"fastapi>=0.109.0",
"uvicorn>=0.27.0",
"httpx[socks]>=0.25.0",
"httpx-socks>=0.9.0",
"beautifulsoup4>=4.12.0",
"sqlmodel>=0.0.14",
"sqlalchemy[asyncio]>=2.0.0",
"aiosqlite>=0.19.0",
"pydantic>=2.0.0",
"pyjwt>=2.11.0",
"bcrypt>=4.1",
"cryptography>=42.0.0",
"python-multipart>=0.0.6",
"python-dotenv>=1.0.0",
"Jinja2>=3.1.2",
"openai>=1.54.3",
"semver>=3.0.1",
"sse-starlette>=1.6.5",
"webauthn>=2.0.0",
"urllib3>=2.0.3",
"mcp>=1.8.0",
"anthropic>=0.116.0",
"google-genai>=2.10.0",
]
[dependency-groups]
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-mock>=3.12.0",
"ruff>=0.1.0",
"black>=24.0.0",
"pre-commit>=3.0.0",
"mypy>=2.1.0",
]
[tool.pytest.ini_options]
testpaths = ["src/test"]
pythonpath = ["src"]
asyncio_mode = "auto"
markers = [
"e2e: End-to-end integration tests (require Docker)",
]
[tool.ruff]
line-length = 88
target-version = "py313"
exclude = [".venv", "venv", "build", "dist"]
[tool.ruff.lint]
select = ["E", "F", "I"]
ignore = ["E501", "F401"]
fixable = ["ALL"]
unfixable = []
[tool.ruff.lint.mccabe]
max-complexity = 10
[tool.uv]
package = false
[tool.black]
line-length = 88
target-version = ['py313']
[tool.mypy]
python_version = "3.13"
# 非严格基线:先打开对未标注函数体的检查(能捕获协程未 await 等真实 bug),
# 暂不强制所有函数都标注类型。
check_untyped_defs = true
disallow_untyped_defs = false
# module.__version__ 是构建期生成的文件,仓库中不存在(见 module/conf/config.py 的 try/except)
[[tool.mypy.overrides]]
module = "module.__version__"
ignore_missing_imports = true
# httpx_socks 已安装但未发布类型存根
[[tool.mypy.overrides]]
module = "httpx_socks.*"
ignore_missing_imports = true
# aiohttp 仅用于 e2e mock server(在独立 Docker 容器中安装,不在本项目依赖中)
[[tool.mypy.overrides]]
module = "aiohttp"
ignore_missing_imports = true
# 测试代码惯用 `obj.method = AsyncMock()` 直接打桩实例方法,这是标准、安全的
# unittest.mock 用法,但 mypy 默认禁止给方法赋值。只关闭这一条错误码,
# attr-defined 等其余检查(含真实 bug)在测试代码中保持开启。
[[tool.mypy.overrides]]
module = "test.*"
disable_error_code = ["method-assign"]