Files
streamstack/pyproject.toml
T
unkinben 2309e9f43a Initial commit — StreamStack v1
Five-service streaming platform: auth, catalogue, streaming, ingest, thumbnailer.
Includes React frontend served by nginx, NATS JetStream event bus, aiobotocore
async S3, PyAV video metadata + thumbnail extraction, service-to-service JWT auth,
and a full unit + e2e test suite.
2026-05-04 22:16:39 +10:00

63 lines
1.3 KiB
TOML

[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
]