[project]
name = "ows-reporting"
version = "0.1.0"
requires-python = ">=3.13"
dependencies = [
    "itsdangerous>=2.1.1",
    "jinja2>=3.1.6",
    "blinker>=1.6.2",
    "boto3>=1.20",
    "botocore>=1.23",
    "Flask>=3.1.3",
    "oto==1.0.1",
    "owsfeatures==1.2.1",
    "owslogger==0.5.0",
    "owsrequest==3.0.0",
    "secrets_manager==1.4.6",
    "sentry-sdk",
    "requests>=2.33.0,<3",
    "idna>=3.15",
    "urllib3>=2.7.0",
    "python-dotenv>=1.2.2",
    "ddtrace>=2.0",
    "azure-storage-blob>=12.13.0",
    "werkzeug>=3.1.6",
    "PyMySQL>=1.1.1",
    "jsonschema==2.5.1",
    "snowflake-connector-python==4.4.0",
    "snowflake-connector-sqlalchemy>=3.0.1",
    "pyOpenSSL>=26.0.0",
    "uwsgi",
    # pyyaml>=6.0 required: 5.4.1 (min version owsrequest allows) fails to
    # build from source on Python 3.13 due to Cython 3.x incompatibility.
    # 6.0+ ships pre-built wheels for 3.13.
    "pyyaml>=6.0",
]

[dependency-groups]
dev = [
    "ipython>=8.10.0",
    "pytest-cov>=4.0.0",
    "pytest-mock>=3.0.0",
    "pytest>=9.0.3",
    "pytest-xdist>=3.0.0",
    "ruff",
    "qa-utils-grass==0.5.0",
    "qa-utils-features==0.3.1",
]

[tool.ruff]
line-length = 79

[tool.ruff.format]
quote-style = "single"

[tool.ruff.lint]
select = ["E", "W", "F", "A", "D", "I", "Q"]

[tool.ruff.lint.isort]
known-first-party = ["reporting"]

[tool.ruff.lint.pydocstyle]
convention = "pep257"

[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"

[[tool.uv.index]]
url = "https://pypi.theorchard.io/pypi/"
default = true
