aps-agent/aps/pyproject.toml

60 lines
1.7 KiB
TOML
Raw Permalink 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 = "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"