Skip to content

Commit 338aa30

Browse files
reintroduce a python 3.9 entrypints shim
1 parent 71e657b commit 338aa30

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
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: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,29 @@
2121
from ._config import Configuration
2222
from ._config import ParseFunction
2323

24-
if sys.version_info[:2] < (3, 10):
25-
import importlib_metadata as im
26-
else:
27-
from importlib import metadata as im
28-
24+
from importlib import metadata as im
2925

3026
log = _log.log.getChild("entrypoints")
3127

3228

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

39-
return im.entry_points(**kw)
42+
def entry_points(*, group: str, name: str | None = None) -> im.EntryPoints:
43+
kw = {"group": group}
44+
if name is not None:
45+
kw["name"] = name
46+
return im.entry_points(**kw)
4047

4148

4249
def version_from_entrypoint(

0 commit comments

Comments
 (0)