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

[project]
name = "prefect-client"
dynamic = ["version"]
description = "Workflow orchestration and management."
readme = "README.md"
requires-python = ">=3.10,<3.15"
license = { text = "Apache-2.0" }
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",
    "Programming Language :: Python :: 3.14",
    "Topic :: Software Development :: Libraries",
]
dependencies = [
    # Client dependencies
    "anyio>=4.4.0,<5.0.0",
    "asgi-lifespan>=1.0,<3.0",
    "cachetools>=5.3,<7.0",
    "cloudpickle>=2.0,<4.0",
    "coolname>=1.0.4,<3.0.0",
    "dateparser>=1.1.1,<2.0.0",
    "exceptiongroup>=1.0.0",
    "fastapi>=0.111.0,<1.0.0",
    "fsspec>=2022.5.0",
    "graphviz>=0.20.1",
    "griffe>=0.49.0,<2.0.0",
    "httpcore>=1.0.5,<2.0.0",
    "httpx[http2]>=0.23,!=0.23.2",
    "humanize>=4.9.0,<5.0.0",
    "jsonpatch>=1.32,<2.0",
    "jsonschema>=4.18.0,<5.0.0",
    "opentelemetry-api>=1.27.0,<2.0.0",
    "orjson>=3.7,<4.0",
    "packaging>=21.3,<25.1",
    "pathspec>=0.8.0",
    "pendulum>=3.0.0,<4; python_version<'3.13'",
    "prometheus-client>=0.20.0",
    "pydantic>=2.10.1,<3.0.0,!=2.11.0,!=2.11.1,!=2.11.2,!=2.11.3,!=2.11.4",
    "pydantic_core>=2.12.0,<3.0.0",
    "pydantic_extra_types>=2.8.2,<3.0.0",
    "pydantic_settings>2.2.1,<3.0.0,!=2.9.0",
    "python-dateutil>=2.8.2,<3.0.0",
    "python-slugify>=5.0,<9.0",
    "pytz>=2021.1,<2026",
    "pyyaml>=5.4.1,<7.0.0",
    "rfc3339-validator>=0.1.4,<0.2.0",
    "rich>=11.0,<15.0",
    "ruamel.yaml>=0.17.0",
    "sniffio>=1.3.0,<2.0.0",
    "toml>=0.10.0",
    "typing_extensions>=4.10.0,<5.0.0",
    "uvicorn>=0.14.0,!=0.29.0",
    "websockets>=15.0.1,<16.0",
    "whenever>=0.7.3,<0.10.0; python_version>='3.13'",
]
[project.urls]
Changelog = "https://github.com/PrefectHQ/prefect/releases"
Documentation = "https://docs.prefect.io"
Source = "https://github.com/PrefectHQ/prefect"
Tracker = "https://github.com/PrefectHQ/prefect/issues"
[project.optional-dependencies]
notifications = ["apprise>=1.1.0, <2.0.0"]


[tool.hatch.version]
source = "versioningit"

[tool.versioningit.vcs]
match = ["[0-9]*.[0-9]*.[0-9]*", "[0-9]*.[0-9]*.[0-9]*.dev[0-9]*"]

[tool.versioningit.write]
method = { module = "write_build_info", value = "write_build_info", module-dir = "tools" }
path = "src/prefect/_build_info.py"

[tool.versioningit.format]
distance = "{base_version}+{distance}.{vcs}{rev}"
dirty = "{base_version}"
distance-dirty = "{base_version}+{distance}.{vcs}{rev}"

[tool.hatch.build]
artifacts = ["src/prefect/_build_info.py"]

[tool.hatch.build.targets.sdist]
include = ["/src/prefect", "/README.md", "/LICENSE", "/pyproject.toml"]

[tool.hatch.build.targets.wheel]
packages = ["src/prefect"]
