[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "cartsnitch-common" version = "2026.321.0" description = "Shared models, schemas, and utilities for CartSnitch services" requires-python = ">=3.12" dependencies = [ "sqlalchemy[asyncio]>=2.0,<3.0", "alembic>=1.13,<2.0", "pydantic[email]>=2.0,<3.0", "pydantic-settings>=2.0,<3.0", "asyncpg>=0.29,<1.0", "redis>=5.0,<6.0", "psycopg2-binary>=2.9,<3.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "ruff>=0.4", "mypy>=1.10", "faker>=33.0,<34.0", ] seed = [ "faker>=33.0,<34.0", "bcrypt>=4.0,<6.0", ] [project.scripts] cartsnitch-seed = "cartsnitch_common.seed.__main__:main" [tool.hatch.build.targets.wheel] packages = ["src/cartsnitch_common"] [tool.ruff] target-version = "py312" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto"