From: Aleš Mrázek Date: Mon, 29 Jun 2026 13:20:26 +0000 (+0200) Subject: pyproject.toml: move to PEP 621 standard and setuptools X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4e289d0d1254f737f8a396c6a79d705aabebb479;p=thirdparty%2Fknot-resolver.git pyproject.toml: move to PEP 621 standard and setuptools - minimal project config - use VERSION file as source for version - increased Python version to 3.11+ - remove typing-extensions (unnecessary for 3.11+) --- diff --git a/pyproject.toml b/pyproject.toml index 451e27e6b..3dae35e8c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,78 +1,65 @@ -[tool.poetry] +[project] name = "knot-resolver" -version = "6.4.0" -description = "Knot Resolver Manager - a Python program that automatically manages the other components of the resolver" -license = "GPL-3.0-or-later" -authors = [ - "AleÅ¡ Mrázek ", - "Václav Å raier " +dynamic = ["version"] +requires-python = ">=3.11" +dependencies = [ + "aiohttp", + "jinja2", + "pyyaml", + "supervisor", ] -maintainers = [ - "AleÅ¡ Mrázek " -] -readme = "README.md" -homepage = "https://www.knot-resolver.cz" -repository = "https://gitlab.nic.cz/knot/knot-resolver" -documentation = "https://www.knot-resolver.cz/documentation" -packages = [ - {include = "knot_resolver", from = "python"} -] -exclude = ["**/*.in", "**/meson.build"] - -# See currently open issue about building C extensions here: -# https://github.com/python-poetry/poetry/issues/2740 -[tool.poetry.build] -script = "build_c_extensions.py" -generate-setup-file = true - -[tool.poetry.dependencies] -python = "^3.8" -aiohttp = "*" -jinja2 = "*" -pyyaml = "*" -supervisor = "*" -typing-extensions = "*" -prometheus-client = { version = "*", optional = true } -watchdog = { version = "*", optional = true } - -[tool.poetry.extras] +[project.optional-dependencies] prometheus = ["prometheus-client"] watchdog = ["watchdog"] +dev = [ + "pyparsing", + "poethepoet", + "debugpy", +] +test = [ + "pytest", + "pytest-cov", + "pytest-asyncio", +] +lint = [ + "ruff", + "mypy", + "types-pyyaml", +] +docs = [ + "sphinx", + "sphinx-rtd-theme", + "breathe", + # 'imghdr' was removed from a standard library in Python 3.13 (https://peps.python.org/pep-0594/). + # 'standard-imghdr' is a replacement for missing 'imghdr' module for projects that depend on it. + # https://pypi.org/project/standard-imghdr/ + "standard-imghdr", +] -[tool.poetry.group.build.dependencies] -poetry-core = ">=1.9.1" -setuptools = ">=75.3.2" - -[tool.poetry.group.dev.dependencies] -poetry = "^1.8.5" -pyparsing = "^3.1.4" -poethepoet = "^0.24.4" -debugpy = "^1.8.18" - -[tool.poetry.group.test.dependencies] -pytest = "^8.3.5" -pytest-cov = "^4.1.0" -pytest-asyncio = "^0.23.8" -toml = "^0.10.2" - -[tool.poetry.group.lint.dependencies] -ruff = "^0.6.9" -mypy = "^1.14.1" -types-pyyaml = "^6.0.12.20241230" - -[tool.poetry.group.docs.dependencies] -sphinx = "^5.3.0" -sphinx-rtd-theme = "^2.0.0" -breathe = "^4.35.0" -# 'imghdr' was removed from a standard library in Python 3.13 (https://peps.python.org/pep-0594/). -# 'standard-imghdr' is a replacement for missing 'imghdr' module for projects that depend on it. -# https://pypi.org/project/standard-imghdr/ -standard-imghdr = "*" - -[tool.poetry.scripts] -kresctl = 'knot_resolver.client.main:main' -knot-resolver = 'knot_resolver.manager.main:main' +[project.scripts] +knot-resolver = "knot_resolver.main:main" +kres-manager = "knot_resolver.manager.main:main" +kresctl = "knot_resolver.client.main:main" + +[build-system] +requires = ["setuptools>=61"] +build-backend = "setuptools.build_meta" + +# [tool.setuptools] +# package-dir = {"" = "python"} +# ext-modules = [ +# {name = "knot_resolver.controller.supervisord.plugin.notify", sources = ["python/knot_resolver/controller/supervisord/plugin/notifymodule.c"]} +# ] + +# [tool.setuptools.package-data] +# knot_resolver = ["datamodel/templates/**/*.j2", "controller/supervisord/*.j2"] + +[tool.setuptools.packages.find] +where = ["python"] + +[tool.setuptools.dynamic] +version = {file = "VERSION"} [tool.poe.tasks] # Tasks to configure, build and run @@ -237,10 +224,3 @@ disallow_incomplete_defs = true check_untyped_defs = true implicit_reexport = false no_implicit_optional = true - -[build-system] -requires = [ - "poetry-core", - "setuptools" -] -build-backend = "poetry.core.masonry.api"