统一电影选片的季集字段,修正空季集摘要并补齐回归测试。 Co-Authored-By: Claude Code <noreply@anthropic.com>
87 lines
2.6 KiB
TOML
87 lines
2.6 KiB
TOML
[build-system]
|
||
requires = ["setuptools>=77"]
|
||
build-backend = "setuptools.build_meta"
|
||
|
||
[project]
|
||
name = "reelay"
|
||
version = "1.5.2"
|
||
description = "自托管的 Telegram → 115 网盘自动转存:AI 识别分享链接,审批后转存并按媒体库规范整理入库。"
|
||
readme = "README.md"
|
||
requires-python = ">=3.12"
|
||
license = "MIT"
|
||
license-files = ["LICENSE"]
|
||
authors = [{ name = "Derrors" }]
|
||
keywords = ["telegram", "115", "media-library", "jellyfin", "emby", "llm", "self-hosted"]
|
||
classifiers = [
|
||
"Development Status :: 5 - Production/Stable",
|
||
"Environment :: Web Environment",
|
||
"Framework :: AsyncIO",
|
||
"Framework :: FastAPI",
|
||
"Intended Audience :: End Users/Desktop",
|
||
"Natural Language :: Chinese (Simplified)",
|
||
"Operating System :: MacOS",
|
||
"Operating System :: POSIX :: Linux",
|
||
"Programming Language :: Python :: 3.12",
|
||
"Topic :: Multimedia :: Video",
|
||
]
|
||
dependencies = [
|
||
"Jinja2>=3.1,<4",
|
||
# 配置文件与媒体库整理的二级分类规则(category.yaml)
|
||
"PyYAML>=6.0,<7",
|
||
]
|
||
|
||
# 上限是已验证的大版本;Docker 镜像与 CI 按 constraints.txt 安装确切版本(更新方法见 CONTRIBUTING.md)
|
||
[project.optional-dependencies]
|
||
# 接入真实能力时安装:pip install -e ".[full]"
|
||
full = [
|
||
"telethon>=1.36,<2",
|
||
"p115client==0.0.9.6.5.1",
|
||
# p115client 未给传递依赖设上限;0.1.9 起移除了它导入的 threadpool_map
|
||
"python-concurrenttools==0.1.8",
|
||
"qrcode>=7.4,<9",
|
||
"openai>=1.40,<4",
|
||
# 网络代理:Telegram(Telethon)走代理要 python-socks,AI 与 TMDB(httpx2)走 SOCKS5 代理要 socksio
|
||
"python-socks>=2.5,<3",
|
||
"socksio>=1,<2",
|
||
]
|
||
web = [
|
||
"fastapi>=0.115,<1",
|
||
"uvicorn[standard]>=0.30,<1",
|
||
]
|
||
agent = ["mcp>=2,<3"]
|
||
all = ["reelay[full,web,agent]"]
|
||
# 开发与 CI:pip install -e ".[all,dev]"
|
||
dev = [
|
||
"ruff>=0.15,<1",
|
||
"pre-commit>=4,<5",
|
||
"httpx2>=2,<3", # starlette TestClient
|
||
]
|
||
|
||
[project.urls]
|
||
Homepage = "https://github.com/Derrors/reelay"
|
||
Issues = "https://github.com/Derrors/reelay/issues"
|
||
Changelog = "https://github.com/Derrors/reelay/blob/main/CHANGELOG.md"
|
||
|
||
[project.scripts]
|
||
reelay = "reelay.main:main"
|
||
reelay-web = "reelay.web:main"
|
||
reelay-mcp = "reelay.mcp_server:main"
|
||
reelay-eval = "reelay.eval:main"
|
||
|
||
[tool.setuptools.packages.find]
|
||
include = ["reelay*"]
|
||
|
||
[tool.setuptools.package-data]
|
||
# 插件随包发布的数据文件,如媒体库整理的二级分类规则
|
||
"reelay.plugins" = ["*/*.yaml"]
|
||
|
||
[tool.ruff]
|
||
line-length = 120
|
||
target-version = "py312"
|
||
extend-exclude = ["web"]
|
||
|
||
[tool.ruff.lint]
|
||
select = ["E4", "E7", "E9", "F", "B"]
|
||
# FastAPI 的 Query()/Depends() 作为参数默认值是框架惯用法
|
||
ignore = ["B008"]
|