aports/testing/ansible-bender/remove-pkg-resources.patch
mio 4bf6291ce3 testing/ansible-bender: rebuild against python 3.14
Fix `ModuleNotFoundError: No module named 'pkg_resources'` error when
building with setuptools 82.

Ref: https://gitlab.alpinelinux.org/alpine/aports/-/issues/18025
2026-04-01 01:29:41 +00:00

68 lines
2.4 KiB
Diff

Patch-Source: https://github.com/ansible-community/ansible-bender/commit/7b9a61a0015f08702bba0e9c66411f074986c52f
---
From 7b9a61a0015f08702bba0e9c66411f074986c52f Mon Sep 17 00:00:00 2001
From: Maxwell G <maxwell@gtmx.me>
Date: Mon, 6 Mar 2023 07:24:19 -0600
Subject: [PATCH] Remove pkg_resources usage
pkg_resources is deprecated [1] and expensive to import. Use the newer,
leaner importlib.metadata package instead.
[1] https://github.com/pypa/setuptools/commit/a1aeda391a0c462ea53627bcdf50dd4c0daadaed
---
ansible_bender/__init__.py | 12 ++++++++----
ansible_bender/cli.py | 8 ++++----
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/ansible_bender/__init__.py b/ansible_bender/__init__.py
index 5602d79..df367ca 100644
--- a/ansible_bender/__init__.py
+++ b/ansible_bender/__init__.py
@@ -6,9 +6,13 @@
$ ab build ./playbook.yaml fedora:28 my-custom-image
"""
-from pkg_resources import get_distribution, DistributionNotFound
try:
- __version__ = get_distribution(__name__).version
-except DistributionNotFound:
+ from importlib.metadata import version, PackageNotFoundError
+except ImportError:
+ from importlib_metadata import version, PackageNotFoundError
+
+try:
+ __version__ = version(__name__)
+except PackageNotFoundError:
# package is not installed
- pass
+ __version__ = None
diff --git a/ansible_bender/cli.py b/ansible_bender/cli.py
index 744f753..9490f3a 100644
--- a/ansible_bender/cli.py
+++ b/ansible_bender/cli.py
@@ -6,10 +6,10 @@
import json
import sys
import subprocess
-import pkg_resources
import yaml
from tabulate import tabulate
+from ansible_bender import __version__
from ansible_bender.api import Application
from ansible_bender.constants import ANNOTATIONS_KEY, PLAYBOOK_TEMPLATE
from ansible_bender.core import AnsibleVarsParser
@@ -421,9 +421,9 @@ def run(self):
subcommand = getattr(self.args, "subcommand", "nope")
try:
if self.args.version:
- try:
- print(pkg_resources.get_distribution("ansible-bender").version)
- except pkg_resources.DistributionNotFound:
+ if __version__ is not None:
+ print(__version__)
+ else:
print("Ansible-bender is not installed, therefore we can't print the version.")
print("Please run `python3 setup.py --version` instead.")
return 18