2026-08-01 10:59:37 +08:00
|
|
|
[project]
|
|
|
|
|
name = "yunke-server"
|
|
|
|
|
version = "0.1.0"
|
|
|
|
|
description = "云客数据本地化系统 - Python backend"
|
|
|
|
|
requires-python = ">=3.11"
|
|
|
|
|
dependencies = [
|
|
|
|
|
"fastapi",
|
|
|
|
|
"uvicorn[standard]",
|
|
|
|
|
"sqlalchemy[asyncio]",
|
|
|
|
|
"asyncmy",
|
2026-08-01 11:15:34 +08:00
|
|
|
# Pure-Python sync MySQL driver used by Alembic migrations (env.py swaps
|
|
|
|
|
# the production ``mysql+asyncmy`` URL to ``mysql+pymysql`` for the sync
|
|
|
|
|
# migration engine).
|
|
|
|
|
"pymysql",
|
2026-08-01 10:59:37 +08:00
|
|
|
"alembic",
|
|
|
|
|
"redis",
|
|
|
|
|
"httpx",
|
|
|
|
|
"playwright",
|
|
|
|
|
"apscheduler",
|
|
|
|
|
"pydantic",
|
|
|
|
|
"pydantic-settings",
|
|
|
|
|
"cryptography",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
|
dev = [
|
|
|
|
|
"pytest",
|
|
|
|
|
"pytest-asyncio",
|
2026-08-01 11:04:44 +08:00
|
|
|
"aiosqlite",
|
2026-08-01 10:59:37 +08:00
|
|
|
"respx",
|
|
|
|
|
"ruff",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[build-system]
|
|
|
|
|
requires = ["setuptools>=68"]
|
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
|
where = ["."]
|
|
|
|
|
include = ["app*"]
|
|
|
|
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
|
|
|
asyncio_mode = "auto"
|
|
|
|
|
testpaths = ["tests"]
|
|
|
|
|
|
|
|
|
|
[tool.ruff]
|
|
|
|
|
line-length = 100
|
|
|
|
|
target-version = "py311"
|