[build-system] requires = ["setuptools>=75"] build-backend = "setuptools.build_meta" [project] name = "payment-processing-service" version = "0.1.0" description = "Asynchronous payment processing service" requires-python = ">=3.12" dependencies = [ "alembic>=1.14,<2", "asyncpg>=0.30,<1", "fastapi>=0.115,<1", "faststream[cli,rabbit]>=0.5.48,<1", "httpx2>=2.13,<3", "pydantic>=2.10,<3", "pydantic-settings>=2.7,<3", "sqlalchemy[asyncio]>=2.0.36,<3", "uvicorn[standard]>=0.34,<1", ] [project.optional-dependencies] dev = [ "aio-pika>=9,<11", "pytest>=8.3,<9", "pytest-asyncio>=0.25,<1", "pytest-cov>=6,<8", "ruff>=0.9,<1", "testcontainers[postgres]>=4.13,<5", "ty>=0.0.18,<0.1", ] [tool.setuptools.packages.find] include = ["app*"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] addopts = ["--strict-markers"] markers = [ "unit: fast tests without external infrastructure", "integration: tests using real PostgreSQL or RabbitMQ containers", ] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "ASYNC", "RUF"] [tool.ty.environment] python-version = "3.12"