[build-system]
requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"]
build-backend = "setuptools.build_meta"

[project]
dependencies = [
    "prefect>=3.3.5",
    "kubernetes-asyncio>=32.0.0",
    "tenacity>=8.2.3",
    "exceptiongroup",
    "pyopenssl>=24.1.0",
    "kopf>=1.37.4",
    "python-json-logger>=3.3.0",
]
name = "prefect-kubernetes"
description = "Prefect integrations for interacting with Kubernetes."
readme = "README.md"
requires-python = ">=3.10"
license = { text = "Apache License 2.0" }
keywords = ["prefect"]
authors = [{ name = "Prefect Technologies, Inc.", email = "help@prefect.io" }]
classifiers = [
    "Natural Language :: English",
    "Intended Audience :: Developers",
    "Intended Audience :: System Administrators",
    "License :: OSI Approved :: Apache Software License",
    "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Topic :: Software Development :: Libraries",
]
dynamic = ["version"]

[dependency-groups]
dev = [
    "aiohttp",
    "coverage",
    "interrogate",
    "mkdocs-gen-files",
    "mkdocs-material",
    "mkdocs",
    "mkdocstrings[python]",
    "mypy",
    "pillow",
    "pre-commit",
    "pytest-asyncio",
    "pytest >= 8.3",
    "pytest-env",
    "pytest-timeout",
    "pytest-xdist",
]


[project.urls]
Homepage = "https://github.com/PrefectHQ/prefect/tree/main/src/integrations/prefect-kubernetes"

[project.entry-points."prefect.collections"]
prefect_kubernetes = "prefect_kubernetes"

[tool.setuptools_scm]
version_file = "prefect_kubernetes/_version.py"
root = "../../.."
tag_regex = "^prefect-kubernetes-(?P<version>\\d+\\.\\d+\\.\\d+(?:[a-zA-Z0-9]+(?:\\.[a-zA-Z0-9]+)*)?)$"
fallback_version = "0.0.0"
git_describe_command = 'git describe --dirty --tags --long --match "prefect-kubernetes-*[0-9]*"'


[tool.setuptools]
packages = ["prefect_kubernetes"]

[tool.interrogate]
ignore-init-module = true
ignore_init_method = true
exclude = ["prefect_kubernetes/_version.py", "tests"]
fail-under = 95
omit-covered-files = true

[tool.coverage.run]
omit = ["tests/*", "prefect_kubernetes/_version.py"]

[tool.coverage.report]
fail_under = 80
show_missing = true

[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_default_fixture_loop_scope = "session"
asyncio_mode = "auto"
env = ["PREFECT_TEST_MODE=1"]
timeout = 30

[tool.uv.sources]
prefect = { path = "../../../" }

[tool.uv.workspace]
members = ["integration_tests"]
