muse-agent-example/pyproject.toml
zizi 9e6f1c4481 R2 改造交付:新版模块化单体全量成果
- src/muse 新版全模块(装配/共享/上下文/任务运行/作品规划/故事世界/正文写作/审校修订/知识方法/作者经验/效果评测/交付连载/资料研究/正式变更/元数据/接入/基础设施/编排)+ 测试树(单元/契约/集成/架构/迁移/端到端/夹具)
- 129 项功能全部实现与自动验证(功能覆盖.json/矩阵),含 W31 补齐的规则与代价/节奏安排/伏笔与承诺
- 旧实现按处置清单退出(702 条中 324 删,保护合同与未迁移条目留存有据);web/app.py 旧工作台退役,新工作台为唯一写入口
- 数据库/旧库迁移:真实旧库内容批次迁移链(端点守卫/PG作品正文映射/质量资产缺省投影)
- 运行手册 docs/运行手册.md;W30 本机服务阶段一已运行(infra PG 为正式内容权威)
- R2 执行证据与私有运行材料在 .agents.local/改造/R2-20260909/(不入库)
2026-09-15 12:47:42 +08:00

83 lines
2.8 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.

# muse 应用包:安装、命令、依赖与检查配置。
# 边界:只约束安装、构建或编辑配置;不规范化作者正文、不替代业务权限与验收。
# 运行时依赖随所属工作包逐步加入(W03 数据库、W06 模型传输、W07 HTTP 等),
[build-system]
requires = ["hatchling==1.32.0"]
build-backend = "hatchling.build"
[project]
name = "muse"
version = "0.1.0"
description = "Muse:AI 驱动的长篇创作工具(单作者模块化单体)"
requires-python = ">=3.12"
dependencies = [
"fastapi>=0.115",
"httpx>=0.28",
"itsdangerous>=2.2",
"jsonschema>=4.23",
"referencing>=0.28.4",
"psycopg[binary]>=3.2",
"pydantic>=2.0",
"pyyaml>=6.0",
"uvicorn>=0.30",
]
[project.scripts]
muse = "muse.__main__:main"
[dependency-groups]
dev = [
"pytest>=8.3",
"pytest-timeout>=2.3",
"ruff>=0.8",
"pyright>=1.1.390",
]
# 资源发布包(运行资源.zip、清单.json、工作台/)是 gitignore 的生成物:
# 存在时打入 sdist/wheel(artifacts 同时作用于两目标),未生成时不阻塞全新环境安装。
[tool.hatch.build]
# 迁移仅由数据库/迁移强制映射进入轮子,排除可编辑安装的同名投影。
exclude = ["src/muse/资源/迁移/**"]
artifacts = ["src/muse/资源/**", "!src/muse/资源/迁移/**"]
[tool.hatch.build.targets.sdist]
include = ["/src", "/数据库/迁移", "/数据库/初始化", "/pyproject.toml", "/uv.lock", "/README.md"]
[tool.hatch.build.targets.wheel.force-include]
"数据库/迁移" = "muse/资源/迁移"
[tool.hatch.build.targets.wheel]
packages = ["src/muse"]
[tool.pytest.ini_options]
# 只收集新版用例目录;旧测试(tests/skills、tests/architecture 英文目录)仍由旧环境
# (.venv-旧 + 旧 harness)运行,两套收集互不接管。
testpaths = ["tests/单元", "tests/契约", "tests/集成", "tests/架构", "tests/迁移", "tests/端到端"]
# 独立维护脚本以其目录为导入根;不把旧 muse 树加入路径。
pythonpath = ["数据库/旧库迁移"]
# 架构/契约/集成/单元 是目录级组织;完整用例身份绑定登记文件与符号。
addopts = "--strict-markers --timeout=120"
markers = [
"数据库: 显式外部执行需要 MUSE_TEST_DATABASE_URL;缺配置失败",
"网络: 需要真实网络访问;必须显式标记",
"真实模型: 需要真实模型调用与预算授权;必须显式标记",
"浏览器: 需要真实浏览器与后端;必须显式标记",
]
[tool.ruff]
line-length = 100
target-version = "py312"
src = ["src", "tests", "工具", "数据库/旧库迁移"]
[tool.ruff.lint]
select = ["E", "F", "W", "I", "B", "UP"]
[tool.pyright]
venvPath = "."
venv = ".venv"
include = ["src", "工具", "数据库/旧库迁移"]
extraPaths = ["数据库/旧库迁移"]
pythonVersion = "3.12"
typeCheckingMode = "standard"