[project]
name = "ows-product-staging"
version = "0.1.0"
description = "Orchard web service to serve as staging area for content before ingest"
authors = [{name = "Sony Music PDE"}]
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "aioboto3==15.5.0",
    "aiobotocore==2.25.1",
    "aiofiles==24.1.0",
    "audience-common>=3.4.0,<4.0.0",
    "boto3>=1.40.21,<2.0.0",
    "boto3-stubs[sts,secretsmanager,dynamodb]>=1.40.21,<2.0.0",
    "botocore>=1.40.21,<2.0.0",
    "dynamodb-encryption-sdk>=3.3.0,<4.0.0",
    "ddtrace==4.6.4",
    "environs>=11.0.0,<12.0.0",
    "fakeredis==2.33.0",
    "fansifter-common>=0.10.0,<0.11.0",
    "google-auth==2.48.0",
    "idna==3.15",
    "neo4j==5.25.0",
    "owsclient==0.13.1",
    "owscontext>=0.4.1",
    "openpyxl>=3.1.5,<4.0.0",
    "protobuf>=6.33.5,<7.0.0",
    "python-pdp-sdk>=6.0.0,<7.0.0",
    "redis==5.2.1",
    "secrets-manager>=1.4.4,<2.0.0",
    "sentry-sdk[fastapi]>=2.8.0,<3.0.0",
    "splitio-client>=10.2.0",
    "sqlalchemy>=2.0.29,<3.0.0",
    "types-aioboto3==13.4.0",
    "types-aiobotocore==2.19.0",
    "types-aiobotocore-s3==2.18.0",
    "types-openpyxl>=3.1.5,<4.0.0",
    "uvicorn>=0.29.0,<0.30.0",
    "urllib3>=2.7.0",
    "oto>=1.0.1,<2.0.0",
    "owsrequest>=2.10.0,<3.0.0",
    "fastapi>=0.135.0,<0.140.0",
    "aiomysql>=0.3.2,<0.4.0",
    "greenlet>=3.2.4,<4.0.0",
    "aiosqlite>=0.21.0,<0.22.0",
    "pytest-asyncio>=1.3.0,<2.0.0",
    "spotipy>=2.26.0",
]

[dependency-groups]
dev = [
    "ruff>=0.14.10,<0.15.0",
    "pytest>=9.0.0,<10.0.0",
    "pytest-cov>=4.1.0,<5.0.0",
    "pytest-mock>=3.13.0,<4.0.0",
    "pytest-watcher>=0.4.3,<0.5.0",
    "types-requests>=2.31.0.20240311,<3.0.0",
    "faker>=36.1.1,<37.0.0",
    "requests>=2.32.4,<3.0.0",
    "click>=8.3.1,<9.0.0",
    "tqdm>=4.67.1,<5.0.0",
    "types-tqdm>=4.67.0.20250809,<5.0.0",
    "scipy>=1.16.3,<2.0.0",
    "numpy>=2.3.5,<3.0.0",
    "pillow>=12.1.1,<13.0.0",
    "scipy-stubs>=1.16.3.1,<2.0.0",
    "jwtauth[testing]>=0.7.0,<0.8.0",
    "ty>=0.0.24,<0.0.25",
]

[tool.ty.rules]
unused-type-ignore-comment = "error"

[tool.uv]
package = true

[[tool.uv.index]]
name = "pde"
url = "https://pypi.theorchard.io/pypi/"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["product_staging"]

[tool.pytest-watcher]
now = true
clear = true
delay = 0
runner = "pytest"
runner_args = ["-vv"]
patterns = ["*.py"]
ignore_patterns = []
