Files
MusicServer/pyproject.toml
T
snowy-yang bcfc1022eb feat(server): 平台默认组合——Windows granian+winloop,Unix granian+rloop
- granian[reload,rloop,uvloop,winloop] 改为默认依赖,uv sync 即具备完整启动栈
- auto 在启动器内解析为具体循环:granian Windows→winloop / Unix→rloop(缺省回退 uvloop/asyncio);
  uvicorn Unix→uvloop / Windows→asyncio
- 启动日志打印实际 server+loop;测试覆盖平台默认与回退;README 默认矩阵更新
2026-10-23 22:23:30 +08:00

66 lines
1.6 KiB
TOML
Raw 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 = "music-server"
version = "2.0.0"
description = "多平台音乐聚合服务器"
requires-python = ">=3.12,<3.13"
dependencies = [
"fastapi>=0.115",
# 默认服务器:granian;uvicorn 作为备选(--server uvicorn)
# extras 按平台自动选择循环:rloop/uvloop(Unix)、winloop(Windows)、reload(watchfiles)
"granian[reload,rloop,uvloop,winloop]>=2.0",
"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", "scripts"]
[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", "scripts"]
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"]