mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-03-20 03:46:40 +08:00
- Add passkey login as alternative authentication method - Support multiple passkeys per user with custom names - Backend: WebAuthn service, auth strategy pattern, API endpoints - Frontend: passkey management UI in settings, login option - Fix: convert downloader check from sync requests to async httpx to prevent blocking the event loop when downloader unavailable Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
113 lines
2.6 KiB
TOML
113 lines
2.6 KiB
TOML
[project]
|
|
name = "auto-bangumi"
|
|
version = "3.1.0"
|
|
description = "AutoBangumi - Automated anime download manager"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"anyio>=4.0.0",
|
|
"beautifulsoup4>=4.12.0",
|
|
"certifi>=2023.5.7",
|
|
"charset-normalizer>=3.1.0",
|
|
"click>=8.1.3",
|
|
"fastapi>=0.109.0",
|
|
"h11>=0.14.0",
|
|
"idna>=3.4",
|
|
"pydantic>=2.0.0",
|
|
"sniffio>=1.3.0",
|
|
"soupsieve>=2.4.1",
|
|
"typing_extensions>=4.0.0",
|
|
"urllib3>=2.0.3",
|
|
"uvicorn>=0.27.0",
|
|
"Jinja2>=3.1.2",
|
|
"python-dotenv>=1.0.0",
|
|
"python-jose>=3.3.0",
|
|
"passlib>=1.7.4",
|
|
"bcrypt>=4.0.1,<4.1",
|
|
"python-multipart>=0.0.6",
|
|
"sqlmodel>=0.0.14",
|
|
"sse-starlette>=1.6.5",
|
|
"semver>=3.0.1",
|
|
"openai>=1.54.3",
|
|
"httpx>=0.25.0",
|
|
"httpx-socks>=0.9.0",
|
|
"aiosqlite>=0.19.0",
|
|
"sqlalchemy[asyncio]>=2.0.0",
|
|
"webauthn>=2.0.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0.0",
|
|
"pytest-asyncio>=0.23.0",
|
|
"ruff>=0.1.0",
|
|
"black>=24.0.0",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["src/test"]
|
|
asyncio_mode = "auto"
|
|
|
|
[tool.ruff]
|
|
select = [
|
|
# pycodestyle(E): https://beta.ruff.rs/docs/rules/#pycodestyle-e-w
|
|
"E",
|
|
# Pyflakes(F): https://beta.ruff.rs/docs/rules/#pyflakes-f
|
|
"F",
|
|
# isort(I): https://beta.ruff.rs/docs/rules/#isort-i
|
|
"I"
|
|
]
|
|
ignore = [
|
|
# E501: https://beta.ruff.rs/docs/rules/line-too-long/
|
|
'E501',
|
|
# F401: https://beta.ruff.rs/docs/rules/unused-import/
|
|
# avoid unused imports lint in `__init__.py`
|
|
'F401',
|
|
]
|
|
|
|
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
|
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
|
|
unfixable = []
|
|
|
|
# Exclude a variety of commonly ignored directories.
|
|
exclude = [
|
|
".bzr",
|
|
".direnv",
|
|
".eggs",
|
|
".git",
|
|
".git-rewrite",
|
|
".hg",
|
|
".mypy_cache",
|
|
".nox",
|
|
".pants.d",
|
|
".pytype",
|
|
".ruff_cache",
|
|
".svn",
|
|
".tox",
|
|
".venv",
|
|
"__pypackages__",
|
|
"_build",
|
|
"buck-out",
|
|
"build",
|
|
"dist",
|
|
"node_modules",
|
|
"venv",
|
|
]
|
|
per-file-ignores = {}
|
|
|
|
# Same as Black.
|
|
line-length = 88
|
|
|
|
# Allow unused variables when underscore-prefixed.
|
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
# Assume Python 3.10.
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.mccabe]
|
|
# Unlike Flake8, default to a complexity level of 10.
|
|
max-complexity = 10
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py310', 'py311']
|