[project]
name = "lambda-asset-tools-get-products-for-account"
version = "0.1.0"
description = "Lambda for retrieving products for given label."
authors = [
    {name = "Sony Music PDE"},
]
requires-python = ">=3.13.0,<4.0"
dependencies = [
    "boto3-stubs (>=1.37.29,<2.0.0)",
    "datadog_lambda (>=6.107.0,<9.0.0)",
    "httpx (>=0.27.0)",
    "jwtauth (>=0.2.0,<1.0.0)",
    "owsclient (>=0.6.0,<1.0.0)",
    "secrets-manager (>=1.4.4,<2.0.0)",
    "sentry_sdk (>=2.25.1,<3.0.0)",
]

[project.optional-dependencies]
dev = [
    "mypy (>=1.9.0,<2.0.0)",
    "ruff (>=0.4.9,<1.0.0)",
    "pytest (>=9.0.3)",
    "pytest-cov (>=4.1.0,<5.0.0)",
    "pytest-mock (>=3.13.0,<4.0.0)",
    "types-requests (>=2.31.0.20240311,<3.0.0)",
    "freezegun (>=1.5.1,<2.0.0)",
]

[tool.poetry]
package-mode = false

[tool.ruff]
line-length = 88
target-version = "py313"

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

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

[tool.mypy]
python_version = "3.13"
strict = true
show_error_codes = true
disallow_untyped_defs = true

[tool.pytest.ini_options]
addopts = [
    "--strict-config",
    "--strict-markers",
]
xfail_strict = true
junit_family = "xunit2"

[tool.coverage.report]
exclude_also = [
    "@abstractmethod",
    "@abc.abstractmethod",
    "if TYPE_CHECKING",
    "raise NotImplementedError",
]

[[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.overrides]]
module = [
    "secrets_manager.*"
]
ignore_missing_imports = true
