From 4da343ac74e7acd09c58cd76667b858947d86d36 Mon Sep 17 00:00:00 2001 From: Timon Engelke Date: Mon, 4 Sep 2023 17:17:11 +0200 Subject: [PATCH] Use single call to importlib.metadata.entry_points for all groups --- catkin_tools/commands/catkin.py | 5 ----- catkin_tools/utils.py | 18 +++++++++++------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/catkin_tools/commands/catkin.py b/catkin_tools/commands/catkin.py index d7dc4df5..2a966561 100644 --- a/catkin_tools/commands/catkin.py +++ b/catkin_tools/commands/catkin.py @@ -31,11 +31,6 @@ CATKIN_COMMAND_VERB_GROUP = 'catkin_tools.commands.catkin.verbs' -@functools.lru_cache(maxsize=None) -def _get_verb_entrypoints(): - return list(entry_points(group=CATKIN_COMMAND_VERB_GROUP)) - - def list_verbs(): verbs = [] for entry_point in _get_verb_entrypoints(): diff --git a/catkin_tools/utils.py b/catkin_tools/utils.py index e94c3956..66b7952d 100644 --- a/catkin_tools/utils.py +++ b/catkin_tools/utils.py @@ -14,15 +14,19 @@ import os import sys +import functools -if sys.version_info >= (3, 10): - from importlib.metadata import entry_points -else: - import importlib.metadata - def entry_points(*, group): - for ep in importlib.metadata.entry_points().get(group, []): - yield ep +def entry_points(*, group): + @functools.lru_cache(maxsize=None) + def _entry_points(): + from importlib.metadata import entry_points + return entry_points() + + if sys.version_info >= (3, 10): + return _entry_points().select(group=group) + else: + return _entry_points().get(group, []) def which(program):