[PATCH] binman: migrate from pkg_resources to importlib
Yannic Moog
y.moog at phytec.de
Tue Jun 10 14:26:12 CEST 2025
pkg_resources is deprecated, use migration guide in [1] to migrate to
importlib.resources.
Keep the Python 3.6 backwards compatibility.
This also fixes the binman version test which failed for setuptools
versions that print the deprecation warning.
[1] https://importlib-resources.readthedocs.io/en/latest/migration.html
Signed-off-by: Yannic Moog <y.moog at phytec.de>
---
tools/binman/control.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/binman/control.py b/tools/binman/control.py
index 81f61e3e152a9eab558cfc9667131a38082b61a1..e36238c473c564de2e4e48d08229eab5f5e542fb 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -8,12 +8,11 @@
from collections import OrderedDict
import glob
try:
- import importlib.resources
+ import importlib.resources as importlib_resources
except ImportError: # pragma: no cover
# for Python 3.6
import importlib_resources
import os
-import pkg_resources
import re
import sys
@@ -96,7 +95,7 @@ def _ReadMissingBlobHelp():
msg = ''
return tag, msg
- my_data = pkg_resources.resource_string(__name__, 'missing-blob-help')
+ my_data = importlib_resources.files(__name__).joinpath('missing-blob-help').read_bytes()
re_tag = re.compile('^([-a-z0-9]+):$')
result = {}
tag = None
@@ -151,8 +150,9 @@ def GetEntryModules(include_testing=True):
Returns:
Set of paths to entry class filenames
"""
- glob_list = pkg_resources.resource_listdir(__name__, 'etype')
- glob_list = [fname for fname in glob_list if fname.endswith('.py')]
+ entries = importlib_resources.files(__name__).joinpath('etype')
+ glob_list = [entry.name for entry in entries.iterdir()
+ if entry.name.endswith('.py') and entry.is_file()]
return set([os.path.splitext(os.path.basename(item))[0]
for item in glob_list
if include_testing or '_testing' not in item])
@@ -759,7 +759,7 @@ def Binman(args):
global state
if args.full_help:
- with importlib.resources.path('binman', 'README.rst') as readme:
+ with importlib_resources.path('binman', 'README.rst') as readme:
tools.print_full_help(str(readme))
return 0
---
base-commit: d7c449c3d83a986d61e38d1762433c0607caf5c5
change-id: 20250610-pkg_resoures-removal-17f922d2e64d
Best regards,
--
Yannic Moog <y.moog at phytec.de>
More information about the U-Boot
mailing list