[project]
name = "ows-product-store-mapping"
version = "0.1.0"
description = "Orchard web service mapping legacy Orchard products to store-specific identifiers."
authors = [
    {name="Sony Music PDE"}
]
requires-python = ">=3.11,<4.0"
readme = "README.md"
dependencies = [
    "owslogger (>=4.0.0,<5.0)",
    "owsrequest (>=3.0.0,<4.0)",
    "owsresponse (>=3.0.4,<4.0)",
    "secrets-manager (>=1.4.4,<2.0)",
    "flask (>=3.1.3,<4.0)",
    "pymysql (>=1.1.1,<2.0)",
    "sentry-sdk[flask] (>=2.17,<3.0)",
    "uwsgi (>=2.0.23,<2.1)"
]

[project.optional-dependencies]
dev = [
    "mypy (>=1.9.0,<2.0.0)",
    "pytest-cov (>=5.0,<6.0)",
    "pytest (>=9.0.3)",
    "ruff (>=0.4.9,<1.0.0)",
    "yamllint (>=1.37.0,<2.0.0)",
]

[tool.poetry]
package-mode = false

[[tool.poetry.source]]
name = "pde"
url = "https://pypi.theorchard.io/pypi/"
priority = "supplemental"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.mypy]
strict = true
show_error_codes = true
disallow_untyped_defs = true

[[tool.mypy.overrides]]
module = "tests.*"
disable_error_code = [
    "abstract",
]

[[tool.mypy.overrides]]
module = [
    "owsresponse",
    "owslogger",
    "owsrequest",
    "secrets_manager.*",
    "uwsgi",
]
ignore_missing_imports = true

[tool.ruff.lint]
select = ["C", "E", "F", "W", "B", "I", "T20", "TID252", "G"]
ignore = ["C901", "E501", "B007", "B008", "B009"]

[tool.ruff.lint.isort]
combine-as-imports = true
forced-separate = ["tests"]
