Skip to content

Commit 637f6da

Browse files
reintroduce a python 3.9 entrypints shim
1 parent 71e657b commit 637f6da

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ dependencies = [
4646
"setuptools", # >= 61",
4747
'tomli>=1; python_version < "3.11"',
4848
'typing-extensions; python_version < "3.10"',
49-
'importlib-metadata>=4.6; python_version < "3.10"',
5049
]
5150
[project.optional-dependencies]
5251
docs = [

src/setuptools_scm/_entrypoints.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,27 @@
3030
log = _log.log.getChild("entrypoints")
3131

3232

33-
def entry_points(**kw: Any) -> im.EntryPoints:
34-
if sys.version_info[:2] < (3, 10):
35-
import importlib_metadata as im
36-
else:
33+
if sys.version_info[:2] < (3, 10):
34+
35+
def entry_points(*, group: str, name: str | None = None) -> Any:
36+
# Python 3.9: entry_points() returns dict, need to handle filtering manually
37+
import importlib.metadata as im
38+
39+
eps = im.entry_points() # Returns dict
40+
41+
group_eps = eps.get(group, [])
42+
if name is not None:
43+
return [ep for ep in group_eps if ep.name == name]
44+
return group_eps
45+
else:
46+
47+
def entry_points(*, group: str, name: str | None = None) -> Any:
3748
import importlib.metadata as im
3849

39-
return im.entry_points(**kw)
50+
kw = {"group": group}
51+
if name is not None:
52+
kw["name"] = name
53+
return im.entry_points(**kw)
4054

4155

4256
def version_from_entrypoint(

0 commit comments

Comments
 (0)