涉及的文件很多,但主要是 PyCharm 自动重构 + 手动微调。 1. 使用 src-layout 结构组织项目,旨在更加规范地管理各个子包,并方便组织代码。 2. 可以使用 uv build 构建项目至 wheel。 3. 可以在 /webui 目录下使用 pnpm run build 来构建 WebUI,构建产物会生成在 /src/njupt_suan_api/static 目录下。同时,uv build 时会一同包含此目录下的 WebUI 构建产物,避免在用户侧执行构建。 4. 使用 typer 实现了命令行入口,代码位于 manage.py;命令行实现了现 main.py 的全部功能。
79 lines
1.2 KiB
TOML
79 lines
1.2 KiB
TOML
[project]
|
|
name = "njupt-suan-api"
|
|
version = "0.1.1"
|
|
description = "API and MCP server for NJUPT infomation ~"
|
|
readme = "README.md"
|
|
requires-python = ">=3.13"
|
|
dependencies = [
|
|
"aiofiles>=25.1.0",
|
|
"beautifulsoup4>=4.14.3",
|
|
"ddddocr>=1.6.1",
|
|
"fastapi>=0.135.3",
|
|
"fastmcp>=3.2.0",
|
|
"loguru>=0.7.3",
|
|
"mcp>=1.27.0",
|
|
"playwright>=1.58.0",
|
|
"pydantic>=2.13.3",
|
|
"rich>=15.0.0",
|
|
"sqlalchemy>=2.0.49",
|
|
"sqlmodel>=0.0.38",
|
|
"typer>=0.24.2",
|
|
"uvicorn>=0.46.0",
|
|
"watchfiles>=1.1.1",
|
|
"websockets>=16.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
suanapi = "njupt_suan_api.manage:app"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/njupt_suan_api"]
|
|
|
|
[tool.hatch.build.targets.wheel.force-include]
|
|
"src/njupt_suan_api/static" = "njupt_suan_api/static"
|
|
|
|
[tool.ruff]
|
|
preview = true
|
|
line-length = 120
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"A",
|
|
"B",
|
|
"C",
|
|
"E",
|
|
"F",
|
|
"E",
|
|
"Q",
|
|
"I",
|
|
"N",
|
|
"W",
|
|
"DOC",
|
|
"RSE",
|
|
"RET",
|
|
"FAST",
|
|
"YTT",
|
|
"ANN",
|
|
"ASYNC",
|
|
"COM",
|
|
"T20",
|
|
"SIM",
|
|
"PTH",
|
|
"FLY",
|
|
"RUF",
|
|
]
|
|
|
|
ignore = [
|
|
"PTH123",
|
|
"RUF001",
|
|
"RUF002",
|
|
"RUF003",
|
|
"RUF029",
|
|
"C90",
|
|
"COM812",
|
|
]
|