Skip to content

Commit 8d1f2e8

Browse files
committed
Use importlib.metadata instead of pkg_resources when possible
pkg_resources will be removed by setuptools before the end of 2025. Resolves #1631
1 parent fe00fbb commit 8d1f2e8

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/plugin.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,16 @@
3737
import importlib.util
3838

3939
try:
40-
import pkg_resources
40+
import importlib.metadata
4141
except ImportError:
42-
pkg_resources = None
42+
try:
43+
import pkg_resources
44+
except ImportError:
45+
iter_entry_points = None
46+
else:
47+
iter_entry_points = pkg_resources.iter_entry_points
48+
else:
49+
iter_entry_points = importlib.metadata.entry_points
4350

4451
if not hasattr(importlib.util, 'module_from_spec'):
4552
# Python < 3.5
@@ -58,9 +65,9 @@ class Deprecated(ImportError):
5865
pass
5966

6067
def loadPluginFromEntrypoint(name):
61-
if pkg_resources:
68+
if iter_entry_points is not None:
6269
for entrypoint_group in ENTRYPOINT_GROUPS:
63-
for entrypoint in pkg_resources.iter_entry_points(entrypoint_group):
70+
for entrypoint in iter_entry_points(group=entrypoint_group):
6471
if entrypoint.name.lower() == name.lower():
6572
return entrypoint.load()
6673

0 commit comments

Comments
 (0)