1212from . import _log
1313from . import version
1414
15+ __all__ = [
16+ "entry_points" ,
17+ "im" ,
18+ ]
1519if TYPE_CHECKING :
1620 from . import _types as _t
1721 from ._config import Configuration
1822 from ._config import ParseFunction
1923
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
2628
2729
2830log = _log .log .getChild ("entrypoints" )
2931
3032
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+
3142def version_from_entrypoint (
3243 config : Configuration , * , entrypoint : str , root : _t .PathT
3344) -> version .ScmVersion | None :
@@ -52,6 +63,8 @@ def _get_ep(group: str, name: str) -> Any | None:
5263
5364def _get_from_object_reference_str (path : str , group : str ) -> Any | None :
5465 # todo: remove for importlib native spelling
66+ from importlib .metadata import EntryPoint # hack
67+
5568 ep = EntryPoint (path , path , group )
5669 try :
5770 return ep .load ()
0 commit comments