[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/streamstack"] [project] name = "streamstack" version = "0.1.0" requires-python = ">=3.12" dependencies = [ "fastapi", "uvicorn[standard]", "pydantic-settings", "av", "nats-py", "sqlalchemy[asyncio]", "asyncpg", "alembic", "boto3", "aiobotocore", "pyjwt[crypto]", "pwdlib[argon2]", "httpx", "python-multipart", "pillow", ] [project.optional-dependencies] dev = [ "pytest", "pytest-asyncio", "pytest-cov", "moto[s3]", "aiosqlite", ] lint = ["ruff"] [project.scripts] streamstack-streaming = "streamstack.streaming.app:main" streamstack-catalogue = "streamstack.catalogue.app:main" streamstack-auth = "streamstack.auth.app:main" streamstack-ingest = "streamstack.ingest.app:main" streamstack-thumbnailer = "streamstack.thumbnailer.app:main" [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] addopts = "--tb=short -q --ignore=tests/e2e" markers = ["e2e: end-to-end tests requiring a running stack (deselect with -m 'not e2e')"] [tool.ruff] src = ["src"] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"] ignore = [ "B008", # Depends() in argument defaults is standard FastAPI usage ]