| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- [project]
- name = "backend"
- version = "1.0.0"
- description = "xjz-payment-platform后端工程"
- 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 异步操作数据库:基于 mysqlclient:asyncmy 是 mysqlclient 的异步版本,mysqlclient 是一个 C 语言编写的 MySQL 客户端,性能较高。性能:asyncmy 通常在性能上优于 aiomysql,特别是在高并发和大数据量的场景下。
- "asyncpg==0.30.0", # postgresql 异步操作数据库基于 psycopg2:asyncpg 是 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 异步操作数据库基于 psycopg2:asyncpg 是 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 同步步操作数据库基于 pymysql:aiomysql 是 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_full_version < '3.11'", # 解析 plugin.toml(3.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", # websocket(prefect>=3.5 需 >=15.0.1;与部署 requirements.txt 一致)
- "alipay-sdk-python>=3.7.1018", # 支付宝支付SDK
- ]
- [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"
|