Files
fastapi_best_architecture/pyproject.toml
Wu Clan 2b56168ad0 Refactor foreign keys and relationships to pure logic (#901)
* Refactor foreign keys and relationships to pure logic

* Revert of some changes

* More revert

* Update the user paginate

* Update user create and update

* Update dept select and delete

* Rename the join query functions

* Update select_join_serialize doc and README

* Fix typo in README

* Update the user delete

* Update the user social

* Update the dict plugin crud

* Update the dict plugin version

* Bump dependencies and pre-commits

* Update the code generator plugin crud

* Update the menu crud

* Update the role crud

* Update the data scope and rule crud

* Restore get_paginated to get_select

* Update the code generator plugin version

* Add the py version in pre-commit

* Remove the plugin include parameter config

* Add more cache cleaning TODO

* Rename get_with_relation to get_join

* Add the user cache clear

* Fix known compatibility issues

* Update the version number to 1.11.0

* Fix lint

* Optimize select_join_serialize logic

* Delete cache cleanup comments

* Update the oauth2 plugin version

* Fix user-role table cleanup when user update
2025-11-12 13:06:26 +08:00

90 lines
2.1 KiB
TOML

[project]
name = "fastapi_best_architecture"
description = """
A RBAC (Role-Based Access Control) permission control system built on FastAPI, featuring a unique pseudo-three-tier
architecture design, with built-in basic implementation of fastapi admin as a template library, free and open-source.
"""
authors = [
{ name = "Wu Clan", email = "jianhengwu0407@gmail.com" },
]
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.10"
dynamic = ['version']
dependencies = [
"alembic>=1.17.1",
"asgiref>=3.10.0",
"asyncmy>=0.2.10",
"asyncpg>=0.30.0",
"bcrypt>=5.0.0",
"cappa>=0.30.4",
"celery>=5.5.3",
# When celery version < 6.0.0
# https://github.com/celery/celery/issues/7874
"celery-aio-pool>=0.1.0rc8",
"cryptography>=46.0.3",
"dulwich>=0.24.7",
"fast-captcha>=0.3.2",
"fastapi-limiter>=0.1.6",
"fastapi-pagination>=0.15.0",
"fastapi[standard-no-fastapi-cloud-cli]>=0.121.1",
"flower>=2.0.1",
"gevent>=25.9.1",
"granian>=2.5.7",
"ip2loc>=1.0.0",
"itsdangerous>=2.2.0",
"jinja2>=3.1.6",
"loguru>=0.7.3",
"msgspec>=0.19.0",
"psutil>=7.1.2",
# https://github.com/fastapi-practices/fastapi_best_architecture/issues/887
"psycopg[binary]==3.2.10",
"pwdlib>=0.2.1",
"pydantic>=2.12.3",
"pydantic-settings>=2.11.0",
"pymysql>=1.1.2",
"python-jose>=3.5.0",
"python-socketio>=5.14.3",
"redis[hiredis]>=7.0.1",
"rtoml>=0.13.0",
"sqlalchemy-crud-plus>=1.13.1",
"sqlalchemy[asyncio]>=2.0.44",
"sqlparse>=0.5.3",
"starlette-context>=0.4.0",
"user-agents>=2.2.0",
]
[dependency-groups]
dev = [
"pytest>=9.0.0",
"pytest-sugar>=1.1.1",
]
lint = [
"prek>=0.2.13",
]
server = [
"aio-pika>=9.5.7",
"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"