[project] name = "lux-fiscal-backend" version = "0.1.0" description = "Фискализация заказов через Checkbox: CRM + Нова Пошта + Checkbox" requires-python = ">=3.12" dependencies = [ "fastapi>=0.115", "uvicorn[standard]>=0.32", "pydantic>=2.9", "pydantic-settings>=2.6", "email-validator>=2.2", "sqlalchemy[asyncio]>=2.0.36", "asyncpg>=0.30", "alembic>=1.14", "httpx>=0.27", "redis>=5.2", "arq>=0.26", "argon2-cffi>=23.1", "pyjwt>=2.10", "cryptography>=43.0", "python-multipart>=0.0.12", "structlog>=24.4", ] [project.optional-dependencies] dev = [ "pytest>=8.3", "pytest-asyncio>=0.24", "respx>=0.21", "ruff>=0.7", "mypy>=1.13", ] [build-system] requires = ["setuptools>=75"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["app*"] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM", "ASYNC"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.mypy] python_version = "3.12" plugins = ["pydantic.mypy"] warn_unused_ignores = true