mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2026-03-13 09:31:31 +08:00
* Add granian and celery metrics collection * Update dashboards * Add asyncio instrument * Fix opera log finally
99 lines
2.5 KiB
TOML
99 lines
2.5 KiB
TOML
[project]
|
|
name = "fastapi_best_architecture"
|
|
description = "FastAPI 企业级后端架构解决方案"
|
|
authors = [
|
|
{ name = "Wu Clan", email = "jianhengwu0407@gmail.com" },
|
|
]
|
|
readme = "README.md"
|
|
license = { text = "MIT" }
|
|
requires-python = ">=3.10"
|
|
dynamic = ['version']
|
|
dependencies = [
|
|
"alembic>=1.18.3",
|
|
"asgiref>=3.11.0",
|
|
"asyncmy>=0.2.11",
|
|
"asyncpg>=0.31.0",
|
|
"bcrypt>=5.0.0",
|
|
# If there is a serious problem, we will try `moka-py`
|
|
"cachebox>=5.2.2",
|
|
"cappa>=0.31.0",
|
|
"celery>=5.6.2",
|
|
# When celery version < 6.0.0
|
|
# https://github.com/celery/celery/issues/7874
|
|
"celery-aio-pool>=0.1.0rc8",
|
|
"cryptography>=46.0.4",
|
|
"dulwich>=1.0.0",
|
|
"fast-captcha>=0.3.2",
|
|
"fastapi-limiter>=0.1.6",
|
|
"fastapi-pagination>=0.15.9",
|
|
"fastapi[standard-no-fastapi-cloud-cli]>=0.128.0",
|
|
"flower>=2.0.1",
|
|
"gevent>=25.9.1",
|
|
"granian>=2.7.0",
|
|
"ip2loc>=1.0.0",
|
|
"itsdangerous>=2.2.0",
|
|
"jinja2>=3.1.6",
|
|
"loguru>=0.7.3",
|
|
"msgspec>=0.20.0",
|
|
"opentelemetry-exporter-otlp-proto-grpc>=1.39.1",
|
|
"opentelemetry-instrumentation-asyncio>=0.60b1",
|
|
"opentelemetry-instrumentation-celery>=0.60b1",
|
|
"opentelemetry-instrumentation-fastapi>=0.60b1",
|
|
"opentelemetry-instrumentation-httpx>=0.60b1",
|
|
"opentelemetry-instrumentation-logging>=0.60b1",
|
|
"opentelemetry-instrumentation-redis>=0.60b1",
|
|
"opentelemetry-instrumentation-sqlalchemy>=0.60b1",
|
|
"opentelemetry-sdk>=1.39.1",
|
|
"prometheus-client>=0.24.1",
|
|
"psutil>=7.2.2",
|
|
# https://github.com/fastapi-practices/fastapi_best_architecture/issues/887
|
|
"psycopg[binary]==3.2.10",
|
|
"pwdlib>=0.3.0",
|
|
"pydantic>=2.12.5",
|
|
"pydantic-settings>=2.12.0",
|
|
"pymysql>=1.1.2",
|
|
"python-jose>=3.5.0",
|
|
"python-socketio>=5.16.0",
|
|
"redis[hiredis]>=7.1.0",
|
|
"rtoml>=0.13.0",
|
|
"sqlalchemy-crud-plus>=1.13.1",
|
|
"sqlalchemy[asyncio]>=2.0.46",
|
|
"sqlparse>=0.5.5",
|
|
"starlette-context>=0.4.0",
|
|
"user-agents>=2.2.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=9.0.2",
|
|
"pytest-sugar>=1.1.1",
|
|
]
|
|
lint = [
|
|
"prek>=0.3.1",
|
|
]
|
|
server = [
|
|
"aio-pika>=9.5.8",
|
|
"wait-for-it>=2.3.0",
|
|
]
|
|
|
|
[tool.uv]
|
|
python-downloads = "manual"
|
|
default-groups = ["dev", "lint"]
|
|
|
|
[[tool.uv.index]]
|
|
name = "aliyun"
|
|
url = "https://mirrors.aliyun.com/pypi/simple"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["backend"]
|
|
|
|
[tool.hatch.version]
|
|
path = "backend/__init__.py"
|
|
|
|
[project.scripts]
|
|
fba = "backend.cli:main"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|