From 9e287cc6388b874fd1c099c7ff822b3b632a6881 Mon Sep 17 00:00:00 2001 From: Michael Carlstrom Date: Thu, 27 Nov 2025 02:47:42 -0600 Subject: [PATCH 1/3] Remove importlib packages (#1117) Signed-off-by: Michael Carlstrom (cherry picked from commit 1691050dabc01bb5b275c50690ab46f8e0ea7302) # Conflicts: # ros2doctor/ros2doctor/api/__init__.py --- ros2cli/package.xml | 1 - ros2cli/ros2cli/entry_points.py | 13 +++++-------- ros2doctor/package.xml | 1 - ros2doctor/ros2doctor/api/__init__.py | 19 ++++++++++--------- ros2pkg/package.xml | 1 - ros2pkg/ros2pkg/api/create.py | 8 ++------ 6 files changed, 17 insertions(+), 26 deletions(-) diff --git a/ros2cli/package.xml b/ros2cli/package.xml index 5bd2393c1..a22bbb036 100644 --- a/ros2cli/package.xml +++ b/ros2cli/package.xml @@ -18,7 +18,6 @@ Michael Jeronimo python3-argcomplete - python3-importlib-metadata python3-packaging python3-psutil rclpy diff --git a/ros2cli/ros2cli/entry_points.py b/ros2cli/ros2cli/entry_points.py index 8a36f1bf6..44888f389 100644 --- a/ros2cli/ros2cli/entry_points.py +++ b/ros2cli/ros2cli/entry_points.py @@ -14,12 +14,9 @@ # limitations under the License. from collections import defaultdict +from importlib import metadata import logging - -try: - import importlib.metadata as importlib_metadata -except ModuleNotFoundError: - import importlib_metadata +import sys """ The group name for entry points identifying extension points. @@ -44,7 +41,7 @@ def get_all_entry_points(): entry_points = defaultdict(dict) - for dist in importlib_metadata.distributions(): + for dist in metadata.distributions(): for ep in dist.entry_points: # skip groups which are not registered as extension points if ep.group not in extension_points: @@ -63,8 +60,8 @@ def get_entry_points(group_name): to ``EntryPoint`` instances :rtype: dict """ - entry_points_impl = importlib_metadata.entry_points() - if hasattr(entry_points_impl, 'select'): + entry_points_impl = metadata.entry_points() + if sys.version_info >= (3, 12): groups = entry_points_impl.select(group=group_name) else: groups = entry_points_impl.get(group_name, []) diff --git a/ros2doctor/package.xml b/ros2doctor/package.xml index 446118d2d..f281678ff 100644 --- a/ros2doctor/package.xml +++ b/ros2doctor/package.xml @@ -18,7 +18,6 @@ ament_index_python python3-catkin-pkg-modules python3-psutil - python3-importlib-metadata python3-rosdistro-modules rclpy ros2cli diff --git a/ros2doctor/ros2doctor/api/__init__.py b/ros2doctor/ros2doctor/api/__init__.py index 2f29dd0fc..449d69143 100644 --- a/ros2doctor/ros2doctor/api/__init__.py +++ b/ros2doctor/ros2doctor/api/__init__.py @@ -12,15 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. +<<<<<<< HEAD +======= +from importlib import metadata +import sys +from typing import Final +>>>>>>> 1691050 (Remove importlib packages (#1117)) from typing import List from typing import Set from typing import Tuple -try: - import importlib.metadata as importlib_metadata -except ModuleNotFoundError: - import importlib_metadata - from ros2cli.node.strategy import NodeStrategy from ros2doctor.api.format import doctor_warn @@ -91,8 +92,8 @@ def run_checks(*, include_warnings=False, exclude_packages=False) -> Tuple[Set[s fail_categories = set() # remove repeating elements fail = 0 total = 0 - entry_points = importlib_metadata.entry_points() - if hasattr(entry_points, 'select'): + entry_points = metadata.entry_points() + if sys.version_info >= (3, 12): groups = entry_points.select(group='ros2doctor.checks') else: groups = entry_points.get('ros2doctor.checks', []) @@ -130,8 +131,8 @@ def generate_reports(*, categories=None, exclude_packages=False) -> List[Report] :return: list of Report objects """ reports = [] - entry_points = importlib_metadata.entry_points() - if hasattr(entry_points, 'select'): + entry_points = metadata.entry_points() + if sys.version_info >= (3, 12): groups = entry_points.select(group='ros2doctor.report') else: groups = entry_points.get('ros2doctor.report', []) diff --git a/ros2pkg/package.xml b/ros2pkg/package.xml index f95f6f908..0bc3b258e 100644 --- a/ros2pkg/package.xml +++ b/ros2pkg/package.xml @@ -21,7 +21,6 @@ ament_index_python python3-catkin-pkg-modules python3-empy - python3-importlib-resources ros2cli ament_flake8 diff --git a/ros2pkg/ros2pkg/api/create.py b/ros2pkg/ros2pkg/api/create.py index 2148257f9..7e34b45dd 100644 --- a/ros2pkg/ros2pkg/api/create.py +++ b/ros2pkg/ros2pkg/api/create.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +from importlib import resources from io import StringIO import os import sys @@ -23,11 +24,6 @@ except ImportError: em_has_configuration = False -try: - import importlib.resources as importlib_resources -except ModuleNotFoundError: - import importlib_resources - def _expand_template(template_file, data, output_file): output = StringIO() @@ -87,7 +83,7 @@ def _create_template_file( template_subdir, template_file_name, output_directory, output_file_name, template_config ): full_package = 'ros2pkg.resource.' + template_subdir - with importlib_resources.path(full_package, template_file_name) as path: + with resources.path(full_package, template_file_name) as path: template_path = str(path) if not os.path.exists(template_path): raise FileNotFoundError('template not found:', template_path) From bff075487eb83b28aa270a9962b3dccf44d78da9 Mon Sep 17 00:00:00 2001 From: Alejandro Hernandez Cordero Date: Thu, 27 Nov 2025 10:31:32 +0100 Subject: [PATCH 2/3] Fixed merge Signed-off-by: Alejandro Hernandez Cordero --- ros2doctor/ros2doctor/api/__init__.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/ros2doctor/ros2doctor/api/__init__.py b/ros2doctor/ros2doctor/api/__init__.py index 449d69143..d23d2ff5b 100644 --- a/ros2doctor/ros2doctor/api/__init__.py +++ b/ros2doctor/ros2doctor/api/__init__.py @@ -12,12 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -<<<<<<< HEAD -======= from importlib import metadata import sys from typing import Final ->>>>>>> 1691050 (Remove importlib packages (#1117)) from typing import List from typing import Set from typing import Tuple From 1f5133e77af8ed17c949ee8099249428b04090bf Mon Sep 17 00:00:00 2001 From: Alejandro Hernandez Cordero Date: Fri, 5 Dec 2025 10:19:20 +0100 Subject: [PATCH 3/3] make linters happy Signed-off-by: Alejandro Hernandez Cordero --- ros2doctor/ros2doctor/api/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ros2doctor/ros2doctor/api/__init__.py b/ros2doctor/ros2doctor/api/__init__.py index d23d2ff5b..eb353cb68 100644 --- a/ros2doctor/ros2doctor/api/__init__.py +++ b/ros2doctor/ros2doctor/api/__init__.py @@ -14,7 +14,6 @@ from importlib import metadata import sys -from typing import Final from typing import List from typing import Set from typing import Tuple