[project]
name = "scorecard-rule-supported-language-version"
version = "0.1.0"
description = "Lambda to check language versions against supported versions"
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
    "datadog-api-client==2.55.0",
    "datadog-lambda>=8.121.0",
    "packaging>=23.0",
    "lambdacommon==7.0.0",
    "secrets-manager==1.4.6",
    "sentry-sdk>=2.50.0",
]

[dependency-groups]
dev = [
    "pytest==9.0.3",
    "pytest-mock==3.12.0",
    "ruff==0.1.6",
    "mypy==1.8.0",
    "types-requests"
]

[tool.mypy]
python_version = "3.14"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true

[[tool.mypy.overrides]]
module = ["common.datadog_utils", "datadog_api_client.*", "packaging.*"]
ignore_missing_imports = true

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
addopts = ["--strict-markers"]

[tool.ruff]
line-length = 120

[tool.ruff.lint]
select = [
    "E",    # pycodestyle errors
    "F",    # pyflakes
    "I",    # isort
    "Q",    # flake8-quotes
    "D",    # pydocstyle
]

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

[tool.ruff.lint.isort]
known-first-party = ["src", "config", "common"]
known-third-party = [
    "boto3",
    "datadog_api_client",
    "datadog_lambda",
    "lambdacommon",
    "packaging",
    "sentry_sdk"
]

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

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