[project] name = "han-message-safety" version = "0.1.0" requires-python = ">=3.12" dependencies = [ "alembic>=1.13", "asyncpg>=0.29", "boto3>=1.34", "dnspython>=2.6", "fastapi>=0.115", "httpx>=0.27", "idna>=3.7", "jsonschema>=4.23", "opentelemetry-api>=1.36,<2", "opentelemetry-exporter-otlp-proto-grpc>=1.36,<2", "opentelemetry-instrumentation-botocore>=0.57b0,<1", "opentelemetry-instrumentation-fastapi>=0.57b0,<1", "opentelemetry-instrumentation-httpx>=0.57b0,<1", "opentelemetry-instrumentation-redis>=0.57b0,<1", "opentelemetry-instrumentation-sqlalchemy>=0.57b0,<1", "opentelemetry-sdk>=1.36,<2", "pillow>=10.4", "pillow-heif>=0.18", "pydantic-settings>=2.5", "pyyaml>=6.0", "redis>=5.0", "sqlalchemy[asyncio]>=2.0", "uvicorn>=0.30", ] [project.optional-dependencies] dev = ["pytest>=8.3", "pytest-asyncio>=0.24", "ruff>=0.6"] [project.scripts] message-safety = "app.main:run" message-safety-worker = "app.worker:run" message-safety-config = "app.config_admin:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["app"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] target-version = "py312" line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "B", "UP", "ASYNC", "S"] ignore = ["S101"]