Files
FastapiAdmin/backend/pyproject.toml
T
zhangtao 9f3846adca feat(tenant): 新增多租户功能支持
refactor(application): 重构应用模块为门户应用,支持租户隔离
feat(portal): 添加门户应用管理功能

perf(health): 新增就绪探针检查,优化健康检查接口
fix(middleware): 修复请求日志中间件的异常处理

style(menu): 调整菜单表格列顺序,优化展示效果
style(table): 优化表格内操作按钮的焦点样式

docs: 更新README文档,修正智能体框架描述
chore(deps): 移除langchain相关依赖,更新项目依赖

test: 添加多租户相关测试用例
ci: 更新CI配置,支持多租户测试环境

build: 更新构建配置,支持租户插件
2026-04-07 00:53:22 +08:00

134 lines
5.8 KiB
TOML
Raw 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 = "backend"
version = "2.0.0"
description = "fastapiadmin后端工程"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"agno==2.5.8",
"aiofiles==24.1.0", # 文件操作
"aiosqlite==0.17.0", # sqlite 异步操作数据库
"alembic==1.15.1", # 数据库迁移
"apscheduler==3.11.0", # 定时任务
"asyncmy==0.2.11", # mysql 异步操作数据库:基于 mysqlclientasyncmy 是 mysqlclient 的异步版本,mysqlclient 是一个 C 语言编写的 MySQL 客户端,性能较高。性能:asyncmy 通常在性能上优于 aiomysql,特别是在高并发和大数据量的场景下。
"asyncpg==0.30.0", # postgresql 异步操作数据库基于 psycopg2asyncpg 是 psycopg2 的异步版本,psycopg2 是一个 pure-Python PostgreSQL 数据库适配器。性能:asyncpg 通常在性能上优于 psycopg2,特别是在高并发和大数据量的场景下。
"bcrypt==4.0.1", # 密码加密解析,切勿升级,如果升级,请同时升级python版本
"bleach==6.3.0", # 过滤 HTML 标签
"click==8.1.7", # 命令行参数解析
"croniter>=1.0.12,<5.0.0", # cron(与 prefect 约束一致;部署 requirements.txt 同源)
"cryptography==45.0.2", # mysql8 密码加密
"fastapi==0.115.2", # fastapi 框架
"fastapi-limiter==0.1.6", # 接口限流
"greenlet==3.1.1", # 协程框架
"gunicorn==23.0.0", # 协程框架
"httpx==0.27.2", # HTTP 客户端
"itsdangerous==2.2.0", # 用于安全处理各种数据,如密码、密钥等
"jinja2==3.1.6", # 模板引擎
"loguru==0.7.3", # 日志
"openai==2.28.0",
"openpyxl==3.1.5", # Excel
"pandas==2.2.3", # 数据处理
"passlib==1.7.4", # 密码加密
"prefect>=3.5.0,<4", # 工作流编排(与 typer>=0.19 兼容;部署与 requirements.txt 一致)
"pillow==11.0.0", # 图片处理
"psutil==6.1.0", # 系统信息
"psycopg==3.3.2", # postgresql 同步操作数据库基于 psycopg是psycopg2升级版:psycopg2 是一个 pure-Python PostgreSQL 适配器。
"psycopg-binary==3.3.2", # postgresql 异步操作数据库基于 psycopg2asyncpg 是 psycopg2 的异步版本,psycopg2 是一个 pure-Python PostgreSQL 数据库适配器。
"pydantic-settings==2.5.2", # 配置设置
"pydantic-validation-decorator==0.1.4", # 模型验证
"pyjwt==2.9.0", # OAuth2
"pymysql==1.1.2", # mysql 同步步操作数据库基于 pymysqlaiomysql 是 pymysql 的异步版本,pymysql 是一个纯 Python 实现的 MySQL 客户端。成熟度:aiomysql 相对较为成熟,社区支持较好,文档也比较完善。
"python-multipart==0.0.9", # request.form() 对表单进行「解析」时安装
"redis==7.1.0", # redis 同/异步操作数据库(用户celery配套使用)redis 异步操作数据库 redis已经完全具备了aioredis的功能,无需重复安全,且aioredis已经不再维护也不兼容3.10+的版本
"rich==13.9.4", # 终端打印美化
"tomli>=2.0.1; python_version < '3.11'", # 解析 plugin.toml3.11+ 用标准库 tomllib
"sqlalchemy==2.0.45", # 数据库ORM
"sqlglot[rs]==27.8.0", # sql 解析
"typer==0.19.0", # 命令行工具
"user-agents==2.2.0", # 获取用户UA
"uvicorn==0.30.6", # uvicorn web 框架
"websockets>=15.0.1,<16.0", # websocketprefect>=3.5 需 >=15.0.1;与部署 requirements.txt 一致)
]
[dependency-groups]
dev = [
"fakeredis>=2.21.0,<3", # 测试:内存 Redis,配合 TESTING
"pytest==9.0.2",
"ruff==0.14.13", # 代码检查/格式化
]
[tool.uv]
default-groups = ["dev"] # 本地 uv sync 含 dev;生产 pip -r requirements.txt 不含 pytest/ruff/fakeredis
[[tool.uv.index]]
name = "tuna"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
[tool.ruff]
line-length = 100
indent-width = 4
preview = true
fix = true
show-fixes = true
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".ipynb_checkpoints",
".mypy_cache",
".nox",
".pants.d",
".pyenv",
".pytest_cache",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
".vscode",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"site-packages",
"venv",
]
extend-include = ["*.pyw"]
[tool.ruff.lint]
select = [
"FAST",
"F",
"E",
"W",
"F",
"I",
"B",
"C4",
"UP",
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"C901", # too complex
"W191", # indentation contains tabs
"B904", # Within an `except` clause
"B010", # Do not call with a constant attribute value.
]
[tool.ruff.lint.per-file-ignores]
"tests/conftest.py" = ["E402"] # 先设置 TESTING/SQLite 环境再 import 应用
[tool.ruff.format]
docstring-code-format = true
preview = true
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"