commit b676e6338a7c094cb3335d11f851ac0e12222017 Author: MKLeb Date: Wed Oct 5 15:49:37 2022 -0400 Allow entrypoint compatibility for importlib-metadata>=5.0.0 diff --git a/salt/utils/entrypoints.py b/salt/utils/entrypoints.py index 3effa0b494..ac65ae2df4 100644 --- a/salt/utils/entrypoints.py +++ b/salt/utils/entrypoints.py @@ -38,13 +38,20 @@ def iter_entry_points(group, name=None): entry_points_listing = [] entry_points = importlib_metadata.entry_points() - for entry_point_group, entry_points_list in entry_points.items(): - if entry_point_group != group: - continue - for entry_point in entry_points_list: - if name is not None and entry_point.name != name: + # pre importlib-metadata 5.0.0 + if hasattr(entry_points, "items"): + for entry_point_group, entry_points_list in entry_points.items(): + if entry_point_group != group: continue - entry_points_listing.append(entry_point) + for entry_point in entry_points_list: + if name is not None and entry_point.name != name: + continue + entry_points_listing.append(entry_point) + # starting with importlib-metadata 5.0.0 + for entry_point in entry_points.select(group=group): + if name is not None and entry_point.name != name: + continue + entry_points_listing.append(entry_point) return entry_points_listing