mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-10-29 03:18:14 +08:00
* chore: bump moviepilot-rust to 0.3.12 * fix(metainfo): exclude resolution tags from anime detection 保留年份并排除分辨率标签触发的伪季集,补充 Python 与 Rust 的标题和路径回归。补齐 0.3.12 wheel 锁,并定向修复 Brotli 与 setuptools 的依赖审计阻断。 --------- Co-authored-by: jxxghp <51039935+jxxghp@users.noreply.github.com> Co-authored-by: jxxghp <jxxghp@gmail.com>
194 lines
5.5 KiB
TOML
194 lines
5.5 KiB
TOML
[build-system]
|
||
requires = ["setuptools~=84.1.0"]
|
||
build-backend = "setuptools.build_meta"
|
||
|
||
[project]
|
||
name = "moviepilot"
|
||
dynamic = ["version"]
|
||
requires-python = ">=3.14"
|
||
dependencies = [
|
||
"aiofiles~=25.1.0",
|
||
"aioshutil~=1.6",
|
||
"aiosqlite~=0.22.1",
|
||
"alembic~=1.18.4",
|
||
"anitopy~=2.1.1",
|
||
"anthropic~=0.109.1",
|
||
"anyio~=4.14.2",
|
||
"apscheduler~=3.11.2",
|
||
"asyncpg~=0.31.0",
|
||
"beautifulsoup4~=4.15.0",
|
||
"boto3~=1.42.42",
|
||
"cachetools~=7.1.4",
|
||
"chardet~=7.6.0",
|
||
"click~=8.4.1",
|
||
"cloakbrowser~=0.5.3",
|
||
"cn2an~=0.5.24",
|
||
"crcmod-plus==2.3.1",
|
||
"cryptography~=50.0.0",
|
||
"dateparser~=1.4.0",
|
||
"ddgs~=9.14.4",
|
||
"discord.py==2.7.1",
|
||
"fast-bencode~=1.1.8",
|
||
"fastapi~=0.141.1",
|
||
"google-genai~=2.8.0",
|
||
"http-ece~=1.2.1",
|
||
"httpx[http2,socks]~=0.28.1",
|
||
"httpx2[http2,socks]~=2.12.0",
|
||
"jinja2~=3.1.6",
|
||
"langchain~=1.3.15",
|
||
"langchain-anthropic~=1.4.6",
|
||
"langchain-aws~=1.6.2",
|
||
"langchain-community~=0.4.2",
|
||
"langchain-core~=1.5.4",
|
||
"langchain-deepseek~=1.1.0",
|
||
"langchain-google-genai~=4.2.5",
|
||
"langchain-openai~=1.3.2",
|
||
"langgraph~=1.2.11",
|
||
"langgraph-checkpoint~=4.2.0",
|
||
# 宿主飞书渠道已改用自研 OpenAPI 与长连接客户端,此 SDK 暂时保留给插件使用。
|
||
"lark-oapi~=1.6.8",
|
||
"moviepilot-rust~=0.3.12",
|
||
"mutagen~=1.47.0",
|
||
"openai~=2.41.1",
|
||
"orjson==3.12.0",
|
||
"oss2~=2.19.1",
|
||
"packaging~=26.3",
|
||
"parse~=1.22.1",
|
||
"pillow~=13.0.0",
|
||
"pillow-avif-plugin~=1.5.5",
|
||
"pinyin2hanzi~=0.1.1",
|
||
"plexapi~=4.18.1",
|
||
"psutil~=7.2.2",
|
||
"py-vapid~=1.9.4",
|
||
"pycryptodome~=3.23.0",
|
||
"pydantic>=2.13.4,<3.0.0",
|
||
"pydantic-settings>=2.14.2,<3.0.0",
|
||
"pyjwt~=2.15.0",
|
||
"pyotp~=2.9.0",
|
||
"pyparsing~=3.3.2",
|
||
"pyquery~=2.0.1",
|
||
"pystray~=0.19.5",
|
||
# 宿主 Telegram 渠道已改用自研 Bot API 客户端,此 SDK 暂时保留给插件使用。
|
||
"pytelegrambotapi~=4.36.0",
|
||
"python-dateutil~=2.9.0.post0",
|
||
"python-dotenv~=1.2.2",
|
||
"python-multipart~=0.0.32",
|
||
"pytz~=2026.2",
|
||
"pyvirtualdisplay~=3.0",
|
||
# 宿主 Web Push 已直接使用 http-ece 与 py-vapid,此 SDK 暂时保留给插件使用。
|
||
"pywebpush~=2.3.0",
|
||
"pyyaml~=6.0.3",
|
||
"qbittorrent-api==2026.6.0",
|
||
"redis~=8.1.0",
|
||
"regex~=2026.5.9",
|
||
"requests[socks]~=2.34.2",
|
||
"rsa~=4.9.1",
|
||
"ruamel-yaml~=0.19.1",
|
||
"setproctitle~=1.3.7",
|
||
"setuptools~=84.1.0",
|
||
"slack-bolt~=1.28.0",
|
||
"slack-sdk~=3.42.0",
|
||
"smbprotocol~=1.16.1",
|
||
"sqlalchemy~=2.0.50",
|
||
"starlette~=1.6.0",
|
||
"telegramify-markdown~=1.2.0",
|
||
"torrentool~=1.2.0",
|
||
"tqdm~=4.68.2",
|
||
"transmission-rpc~=7.0.11",
|
||
"urllib3~=2.8.0",
|
||
"uvicorn~=0.52.4",
|
||
"watchdog~=6.0.0",
|
||
"watchfiles~=1.2.0",
|
||
"webauthn~=2.8.0",
|
||
"websocket-client~=1.9.0",
|
||
]
|
||
|
||
[dependency-groups]
|
||
dev = [
|
||
"cython~=3.2.5",
|
||
"docker~=7.1.0",
|
||
"mypy~=1.18.2",
|
||
"pylint~=4.0.6",
|
||
"pytest~=9.0.3",
|
||
"pytest-asyncio~=1.4.0",
|
||
"pytest-cov~=7.1.0",
|
||
"pytest-timeout~=2.4.0",
|
||
"ruff~=0.16.4",
|
||
"types-aiofiles~=25.1.0.20260518",
|
||
"types-dateparser~=1.4.3.20260907",
|
||
"types-psutil~=7.2.2.20260906",
|
||
"types-python-dateutil~=2.9.0.20260807",
|
||
"types-pytz~=2026.5.0.20261006",
|
||
"types-pyyaml~=6.0.12.20260906",
|
||
"types-regex~=2026.9.29.20261017",
|
||
"types-tqdm~=4.70.0.20260906",
|
||
]
|
||
runtime-standard = [
|
||
"Brotli==1.2.1",
|
||
"bcrypt~=4.3.0",
|
||
"lxml~=6.1.2",
|
||
"psycopg2-binary~=2.9.12",
|
||
"pywin32==312 ; sys_platform == 'win32'",
|
||
]
|
||
runtime-free-threaded = [
|
||
"Brotli==1.2.0",
|
||
"bcrypt~=5.0.0",
|
||
"lxml==7.0.0b1",
|
||
"psycopg[c]==3.3.4",
|
||
]
|
||
|
||
[tool.ruff]
|
||
target-version = "py314"
|
||
line-length = 120
|
||
exclude = ["app/plugins"]
|
||
|
||
[tool.ruff.lint]
|
||
select = ["E4", "E7", "E9", "F", "I"]
|
||
|
||
[tool.ruff.lint.per-file-ignores]
|
||
# 启动入口必须先完成缓存装配 / 导入路径与标准流重定向,再导入业务模块,晚导入是启动契约
|
||
"app/startup/lifecycle/__init__.py" = ["E402"]
|
||
"app/main.py" = ["E402"]
|
||
|
||
[tool.uv]
|
||
package = false
|
||
required-version = ">=0.12.5"
|
||
default-groups = ["dev", "runtime-standard"]
|
||
conflicts = [
|
||
[
|
||
{ group = "runtime-standard" },
|
||
{ group = "runtime-free-threaded" },
|
||
],
|
||
]
|
||
exclude-dependencies = [
|
||
{ package = { name = "docker" }, dependencies = ["pywin32"] },
|
||
{ package = { name = "oss2" }, dependencies = ["crcmod"] },
|
||
]
|
||
environments = [
|
||
"sys_platform == 'linux' and platform_machine == 'x86_64'",
|
||
"sys_platform == 'linux' and platform_machine == 'aarch64'",
|
||
"sys_platform == 'darwin' and platform_machine == 'x86_64'",
|
||
"sys_platform == 'darwin' and platform_machine == 'arm64'",
|
||
"sys_platform == 'win32' and platform_machine == 'AMD64'",
|
||
]
|
||
required-environments = [
|
||
"sys_platform == 'linux' and platform_machine == 'x86_64'",
|
||
"sys_platform == 'linux' and platform_machine == 'aarch64'",
|
||
"sys_platform == 'darwin' and platform_machine == 'x86_64'",
|
||
"sys_platform == 'darwin' and platform_machine == 'arm64'",
|
||
"sys_platform == 'win32' and platform_machine == 'AMD64'",
|
||
]
|
||
|
||
[tool.uv.extra-build-variables]
|
||
orjson = { ORJSON_BUILD_FREETHREADED = "1" }
|
||
|
||
[tool.uv.sources]
|
||
# 1.2.1 发布分支尚无无 GIL 声明;源码分支保留 1.2.0 版本号,固定到官方解码器安全修复提交。
|
||
brotli = { url = "https://github.com/google/brotli/archive/0ed4268a4401abcb4472096340477cf4af7d1a2b.tar.gz", group = "runtime-free-threaded" }
|
||
|
||
[tool.setuptools]
|
||
py-modules = ["version"]
|
||
|
||
[tool.setuptools.dynamic]
|
||
version = { attr = "version.APP_VERSION" }
|