基础项目文件

包含 Pycharm 项目配置)
This commit is contained in:
2026-04-21 13:35:35 +08:00
commit 0760e51fb8
14 changed files with 1761 additions and 0 deletions

12
.gitignore vendored Normal file
View File

@@ -0,0 +1,12 @@
# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
data/
temp/
*.egg-info
# Virtual environments
.venv

10
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# 已忽略包含查询文件的默认文件夹
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

14
.idea/NJUPT-API-Suan.iml generated Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="uv (NJUPT-API-Suan)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="GOOGLE" />
<option name="myDocStringFormat" value="Google" />
</component>
</module>

12
.idea/dataSources.xml generated Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="njupt_api" uuid="7ace7879-4ed4-4efb-a643-9e88a564c03e">
<driver-ref>sqlite.xerial</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/data/njupt_api.db</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

4
.idea/encodings.xml generated Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" native2AsciiForPropertiesFiles="true" />
</project>

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

10
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="uv (NJUPT-API-Suan)" />
</component>
<component name="RuffConfiguration">
<option name="enabled" value="true" />
<option name="executableDiscoveryMode" value="PATH" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/NJUPT-API-Suan.iml" filepath="$PROJECT_DIR$/.idea/NJUPT-API-Suan.iml" />
</modules>
</component>
</project>

11
.idea/pySourceRootDetection.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PySourceRootDetectionService">
<option name="sourcePathsSet">
<set>
<option value="$PROJECT_DIR$/njupt_api" />
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

1
.python-version Normal file
View File

@@ -0,0 +1 @@
3.13

0
README.md Normal file
View File

63
pyproject.toml Normal file
View File

@@ -0,0 +1,63 @@
[project]
name = "njupt-suan-api"
version = "0.1.0"
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.12.5",
"sqlalchemy>=2.0.49",
"sqlmodel>=0.0.38",
"uvicorn>=0.43.0",
"watchfiles>=1.1.1",
"websockets>=16.0",
]
[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",
]

1604
uv.lock generated Normal file

File diff suppressed because it is too large Load Diff