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..eb353cb68 100644 --- a/ros2doctor/ros2doctor/api/__init__.py +++ b/ros2doctor/ros2doctor/api/__init__.py @@ -12,15 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +from importlib import metadata +import sys 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 +88,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 +127,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)