]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
tests/packaging/dependencies.py: replace pkg_resources docs-tests-replac-h6ig23/deployments/9508
authorAleš Mrázek <ales.mrazek@nic.cz>
Thu, 9 Jul 2026 11:16:40 +0000 (13:16 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Thu, 9 Jul 2026 11:16:40 +0000 (13:16 +0200)
Replace deprecated pkg_resources with importlib.metadata and packaging.

tests/packaging/dependencies.py

index 1262d2e15f65b11ddad4c238e6cea257ec56417b..2613df59d72380d1a97bf65602427869f8b158df 100755 (executable)
@@ -3,9 +3,12 @@
 import importlib
 import importlib.util
 import sys
+from importlib.metadata import distributions
 from types import ModuleType
 
-import pkg_resources
+from packaging.requirements import Requirement
+from packaging.utils import canonicalize_name
+
 
 # replace imports with mocks
 dummy = ModuleType("dummy")
@@ -21,10 +24,17 @@ spec.loader.exec_module(mod)
 install_requires = mod.install_requires
 
 # strip version codes
-deps = set((x[: x.index(">")].lower() if ">" in x else x.lower() for x in install_requires))
+deps = {
+    canonicalize_name(Requirement(req).name)
+    for req in install_requires
+}
 
 # find out which packages are missing
-installed = {pkg.key for pkg in pkg_resources.working_set}
+installed = {
+    canonicalize_name(name)
+    for dist in distributions()
+    if (name := dist.metadata.get("Name"))
+}
 missing = deps - installed
 
 # fail if there are some missing