Files
backend/pyproject.toml
2025-11-22 10:26:30 +08:00

110 lines
2.5 KiB
TOML
Executable File

[project]
name = "blabla-server"
version = "0.0.1"
description = "FastAPI Best Architecture"
authors = [
{ name = "Felix", email = "hengzone@outlook.com" },
]
dependencies = [
"fastapi>=0.115.0",
"uvicorn>=0.30.0",
"sqlalchemy>=2.0.0",
"alembic>=1.13.0",
"asyncmy>=0.2.10",
"mysql-connector-python>=8.0.33", # Added MySQL connector
"pydantic>=2.0.0",
"pydantic-settings>=2.0.0",
"passlib>=1.7.4",
"bcrypt>=4.0.0",
"python-jose>=3.3.0",
"python-multipart>=0.0.9",
"redis>=5.0.0",
"fastapi-limiter>=0.1.5",
"fastapi-pagination>=0.12.0",
"celery>=5.3.0",
"flower>=2.0.0",
"loguru>=0.7.0",
"apscheduler>=3.10.0",
"typer>=0.9.0",
"rich>=13.0.0",
"httpx>=0.25.0",
"jinja2>=3.1.0",
"python-dotenv>=1.0.0",
"cryptography>=41.0.0",
"python-socketio>=5.8.0",
"asgi-correlation-id>=4.2.0",
"fastapi-utilities>=0.3.0",
"sqlalchemy-crud-plus>=1.0.0",
"path>=16.7.0",
"fast-captcha>=0.3.0",
"user-agents>=2.2.0",
"ip2loc>=1.0.0",
"dashscope>=1.14.0",
"dulwich>=0.27.0",
"msgspec>=0.18.0",
"rtoml>=0.11.0",
"psutil>=5.9.0",
"pwdlib>=0.2.0",
"itsdangerous>=2.1.0",
"aiofiles>=23.0.0",
"asgiref>=3.7.0",
]
requires-python = ">=3.10"
readme = "README.md"
server = [
"aio-pika>=9.5.7",
"wait-for-it>=2.3.0",
]
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["backend*"]
[tool.setuptools.package-data]
"*" = ["*.md", "*.yaml", "*.yml"]
[tool.uv]
python-downloads = "manual"
default-groups = ["dev", "lint"]
dev-dependencies = [
"pytest>=7.4.0",
"pytest-sugar>=0.9.7",
"pre-commit>=3.4.0",
"ruff>=0.1.0",
]
[[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]
myapp = "backend.cli:main"
[tool.ruff]
line-length = 120
indent-width = 4
target-version = "py310"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"C", # flake8-comprehensions
"B", # flake8-bugbear
"Q", # flake8-quotes
"SIM", # flake8-simplify
"TID", # flake8-tidy-imports
"RUF", # Ruff-specific rules
]