12
12
from . import _log
13
13
from . import version
14
14
15
+ __all__ = [
16
+ "entry_points" ,
17
+ "im" ,
18
+ ]
15
19
if TYPE_CHECKING :
16
20
from . import _types as _t
17
21
from ._config import Configuration
18
22
from ._config import ParseFunction
19
23
20
- if sys .version_info [:2 ] < (3 , 10 ):
21
- from importlib_metadata import EntryPoint as EntryPoint
22
- from importlib_metadata import entry_points as entry_points
23
- else :
24
- from importlib .metadata import EntryPoint as EntryPoint
25
- from importlib .metadata import entry_points as entry_points
24
+ if sys .version_info [:2 ] < (3 , 10 ):
25
+ import importlib_metadata as im
26
+ else :
27
+ from importlib import metadata as im
26
28
27
29
28
30
log = _log .log .getChild ("entrypoints" )
29
31
30
32
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
38
+
39
+ return im .entry_points (** kw )
40
+
41
+
31
42
def version_from_entrypoint (
32
43
config : Configuration , * , entrypoint : str , root : _t .PathT
33
44
) -> version .ScmVersion | None :
@@ -52,6 +63,8 @@ def _get_ep(group: str, name: str) -> Any | None:
52
63
53
64
def _get_from_object_reference_str (path : str , group : str ) -> Any | None :
54
65
# todo: remove for importlib native spelling
66
+ from importlib .metadata import EntryPoint # hack
67
+
55
68
ep = EntryPoint (path , path , group )
56
69
try :
57
70
return ep .load ()
0 commit comments