[project] name = "cpv3" version = "0.1.0" description = "Coffee Project Backend v3 (FastAPI)" requires-python = ">=3.11" dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "sqlalchemy>=2.0.30", "asyncpg>=0.29.0", "alembic>=1.13.2", "pydantic>=2.7.0", "pydantic-settings>=2.3.0", "python-multipart>=0.0.9", "boto3>=1.42.1", "httpx>=0.27.0", "PyJWT>=2.8.0", "passlib[bcrypt]>=1.7.4", # bcrypt 4.x dropped the __about__ metadata passlib 1.7.x expects; pin to 3.x. "bcrypt>=3.2.2,<4.0.0", "python-dotenv>=1.0.1", "pydub>=0.25.1", "google-cloud-speech>=2.34.0", "openai-whisper>=20250625", "dramatiq[redis]>=1.17.0", "redis>=5.0.0", "psycopg2-binary>=2.9.9", ] [dependency-groups] dev = [ "mypy>=1.19.1", "ruff>=0.6.0", "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "aiosqlite>=0.20.0", ] [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] [tool.ruff] line-length = 100 [build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["."] include = ["cpv3*"] exclude = ["alembic*"] namespaces = false