[project]
name = "extract-native-configuration"
version = "0.1.0"
description = "Lambda function for extracting native configuration from RDS instances."
readme = "README.md"
requires-python = "~=3.13.0"
dependencies = [
    "boto3>=1.40.36",
    "datadog-lambda>=8.114.0",
    "lambdacommon==6.0.3",
    "psycopg[binary]>=3.2.1",
    "pymysql>=1.1.2",
    "sentry-sdk>=2.14.0",
    "urllib3>=2.7.0",
]

[dependency-groups]
dev = [
    "moto==5.1.13",
    "pytest==8.4.0",
    "pytest-cov==6.2.1",
    "pytest-mock==3.14.1",
    "ruff==0.12.0",
    "yamllint==1.37.1",
]

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

[tool.ruff]
line-length = 82

[tool.ruff.lint]
select = [
    "E",    # pycodestyle errors
    "F",    # pyflakes
    "I",    # isort
    "Q",    # flake8-quotes
    "D",    # pydocstyle
]
ignore = [
    "D203",  # 1 blank line required before class docstring
    "D213",  # Multi-line docstring summary should start at the second line
    "D413",  # Missing blank line after last section
]

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

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

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