[project] name = "auto-bangumi" version = "3.2.4" 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", "python-jose>=3.3.0", "passlib>=1.7.4", "bcrypt>=4.0.1,<4.1", "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[cli]>=1.8.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", ] [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']