[build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "reactbin-api" version = "0.1.0" requires-python = ">=3.12" dependencies = [ "fastapi>=0.111", "uvicorn[standard]>=0.29", "sqlalchemy[asyncio]>=2.0", "asyncpg>=0.29", "alembic>=1.13", "aiobotocore>=2.13", "pydantic-settings>=2.2", "python-multipart>=0.0.9", "pillow>=10.0", "PyJWT>=2.8", ] [project.optional-dependencies] dev = [ "pytest>=8.2", "pytest-asyncio>=0.23", "httpx>=0.27", "anyio>=4.4", ] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"] ignore = [ "B008", # FastAPI Depends/File/Form in function signatures — intentional "B904", # raise-without-from inside except — HTTPException re-raise pattern ] [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "session" asyncio_default_test_loop_scope = "session" testpaths = ["tests"] [tool.setuptools.packages.find] where = ["."] include = ["app*"] [dependency-groups] dev = [ "anyio>=4.13.0", "httpx>=0.28.1", "pytest>=9.0.3", "pytest-asyncio>=1.3.0", ]