[project]
name = "stackit-certificates"
version = "v1.3.0"
description = "Load Balancer Certificates API"
authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
requires-python = ">=3.9,<4.0"
readme = "README.md"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
]
dependencies = [
    "stackit-core>=0.0.1a",
    "requests>=2.32.3",
    "pydantic>=2.9.2",
    "python-dateutil>=2.9.0.post0",
]

[project.urls]
Homepage = "https://github.com/stackitcloud/stackit-sdk-python"
Issues = "https://github.com/stackitcloud/stackit-sdk-python/issues"

[dependency-groups]
dev = [
    "black>=24.8.0",
    "pytest>=8.3.3",
    "flake8>=5.0.3 ; python_full_version < '3.12'",
    "flake8>=6.0.1 ; python_full_version >= '3.12'",
    "flake8-black>=0.3.6",
    "flake8-pyproject>=1.2.3",
    "autoimport>=1.6.1",
    "flake8-eol>=0.0.8",
    "flake8-eradicate>=1.5.0",
    "flake8-bandit>=4.1.1",
    "flake8-bugbear>=23.1.14",
    "flake8-quotes>=3.4.0",
    "isort>=5.13.2",
]

[tool.uv]
default-groups = "all"

[tool.uv.sources]
stackit-core = { path = "../../core" }

[tool.hatch.build.targets.sdist]
include = ["src/stackit"]

[tool.hatch.build.targets.wheel]
include = ["src/stackit"]

[tool.hatch.build.targets.wheel.sources]
"src/stackit" = "stackit"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.pytest.ini_options]
pythonpath = [
    "src"
]
testpaths = [
    "tests"
]

[tool.black]
line-length = 120
exclude = """
/(
     .eggs
    | .git
    | .hg
    | .mypy_cache
    | .nox
    | .pants.d
    | .tox
    | .venv
    | _build
    | buck-out
    | build
    | dist
    | node_modules
    | venv
)/
"""

[tool.isort]
profile = 'black'

[tool.flake8]
exclude= [".eggs", ".git", ".hg", ".mypy_cache", ".tox", ".venv", ".devcontainer", "venv", "_build", "buck-out", "build", "dist"]
statistics = true
show-source = false
max-line-length = 120
# E203,W503 and E704 are incompatible with the formatter black
# W291 needs to be disabled because some doc-strings get generated with trailing whitespace but black won't re-format comments
ignore = ["E203", "W503", "E704", "W291"]
inline-quotes = '"'
docstring-quotes = '"""'
multiline-quotes = '"""'
ban-relative-imports = true
per-file-ignores = """
    # asserts are fine in tests, tests shouldn't be build optimized
  ./tests/*: S101,
    # F841: some variables get generated but may not be used, depending on the api-spec
    # E501: long descriptions/string values might lead to lines that are too long    
  ./src/stackit/*/models/*: F841,E501
    # F841: some variables get generated but may not be used, depending on the api-spec
    # E501: long descriptions/string values might lead to lines that are too long
    # B028: stacklevel for deprecation warning is irrelevant
  ./src/stackit/*/api/default_api.py: F841,B028,E501
"""
