[project] name = "music-server" version = "2.0.0" description = "多平台音乐聚合服务器" requires-python = ">=3.12,<3.13" dependencies = [ "fastapi>=0.115", "uvicorn[standard]>=0.30", "aiohttp>=3.10", "brotli>=1.1", "cryptography>=43", "qrcode>=8", "pillow>=10", ] [dependency-groups] dev = [ "pytest>=8", "pytest-asyncio>=0.24", "ruff>=0.6", "pyright>=1.1.380", "httpx>=0.27", ] [tool.ruff] line-length = 120 target-version = "py312" src = ["app", "tests"] [tool.ruff.lint] select = ["E", "F", "W", "I", "UP", "B", "BLE", "ASYNC", "RUF"] ignore = [ "RUF001", # 中文全角标点在文案里是刻意用法 "RUF002", "RUF003", "E501", # 行宽由 formatter 决定,长 URL/中文注释不强拆 ] [tool.ruff.lint.per-file-ignores] "tests/**" = ["B011"] [tool.ruff.format] quote-style = "double" [tool.pyright] include = ["app", "tests"] exclude = [".venv", "tmp"] pythonVersion = "3.12" typeCheckingMode = "basic" reportMissingTypeStubs = false reportUnknownMemberType = false reportUnknownVariableType = false reportUnknownArgumentType = false reportUnknownParameterType = false reportMissingParameterType = false reportUntypedFunctionDecorator = false reportUnnecessaryIsInstance = false [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] filterwarnings = ["ignore::DeprecationWarning"]