aps-agent/aps/pyproject.toml

60 lines
1.7 KiB
TOML
Raw Permalink Normal View History

[project]
name = "aps"
version = "0.1.0"
description = "APS:独立的高级排产业务系统。开发期与平台同仓不同目录(ADR-0010),工具链与依赖独立。"
requires-python = ">=3.11"
dependencies = [
# 接口层(B5:契约化 API)
"fastapi>=0.115",
"uvicorn[standard]>=0.30",
"pydantic>=2.7",
"python-multipart>=0.0.9",
"httpx>=0.27",
# 求解引擎(B1 搬入 server/engines)
"ortools>=9.10",
"scipy>=1.14",
# 导入与文档解析(B1 搬入 server/importers;图纸解析归 APS)
"openpyxl>=3.1",
"pdfplumber>=0.11",
"python-docx>=1.1",
"lxml>=5.0",
"ezdxf>=1.4",
"fonttools>=4.50",
# 持久层:APS 库归 APS(ADR-0008),独立账号、独立 database
"sqlalchemy>=2.0",
"alembic>=1.13",
"pymysql>=1.1",
# APS 自己的审计归档加密(B4)
"cryptography>=42",
"python-dotenv>=1.0",
]
# 开发依赖用 uv 的 dependency-group(uv sync 默认安装,CI 用 --locked 保证一致)
[dependency-groups]
dev = ["ruff>=0.7", "pytest>=8.3", "pytest-asyncio>=0.24"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/aps"]
[tool.ruff]
line-length = 120
target-version = "py311"
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "SIM"]
[tool.ruff.lint.per-file-ignores]
# B1 从 main 分支原样搬入的旧代码:先保证行为与旧系统一致,格式与风格清理放到 B3(那时删掉这一段)
"src/aps/domain/*.py" = ["E501", "I001", "B007", "SIM103", "SIM108"]
"src/aps/engines/*.py" = ["E501", "I001"]
"src/aps/timeutil.py" = ["I001"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
addopts = "-q"