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)