[project] name = "lead-scoring" version = "0.1.0" description = "Lead Scoring service for AI Platform" readme = "README.md" requires-python = ">=3.13" dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "pydantic>=2.8.0", "pydantic-settings>=2.4.0", "sqlalchemy[asyncio]>=2.0.30", "asyncpg>=0.29.0", "alembic>=1.13.0", "httpx>=0.27.0", ] [project.scripts] generate-openapi = "lead_scoring.cli.openapi:main" generate-webhook-contract = "lead_scoring.cli.webhook_contract:main" generate-polling-contract = "lead_scoring.cli.polling_contract:main" generate-contract-pack = "lead_scoring.cli.contract_pack:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/lead_scoring"] [dependency-groups] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "testcontainers[postgres]>=4.0.0", "ruff>=0.5.0", "pyright>=1.1.370", "ty>=0.0.74", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] pythonpath = ["src"] [tool.ruff] line-length = 100 target-version = "py313" src = ["src", "tests"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "UP", # pyupgrade ] ignore = [] [tool.pyright] include = ["src", "tests"] pythonVersion = "3.13" typeCheckingMode = "standard" venvPath = "." venv = ".venv"