Skip to content

Commit eedd810

Browse files
committed
Add 'groups' and 'names' to EntryPoints collections.
1 parent 2eeb629 commit eedd810

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

importlib_metadata/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ def __getitem__(self, name) -> EntryPoint:
166166
except Exception:
167167
raise KeyError(name)
168168

169+
@property
170+
def names(self):
171+
return set(ep.name for ep in self)
172+
169173

170174
class GroupedEntryPoints(tuple):
171175
"""
@@ -175,6 +179,10 @@ class GroupedEntryPoints(tuple):
175179
def __getitem__(self, group) -> EntryPoints:
176180
return EntryPoints(ep for ep in self if ep.group == group)
177181

182+
@property
183+
def groups(self):
184+
return set(ep.group for ep in self)
185+
178186

179187
class PackagePath(pathlib.PurePosixPath):
180188
"""A reference to a path in a package"""

tests/test_api.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@ def test_read_text(self):
6565
self.assertEqual(top_level.read_text(), 'mod\n')
6666

6767
def test_entry_points(self):
68-
ep = entry_points()['entries']['main']
68+
eps = entry_points()
69+
assert 'entries' in eps.groups
70+
entries = eps['entries']
71+
assert 'main' in entries.names
72+
ep = entries['main']
6973
self.assertEqual(ep.value, 'mod:main')
7074
self.assertEqual(ep.extras, [])
7175

0 commit comments

Comments
 (0)