11import contextlib
22import importlib .machinery
3+ import importlib .metadata
4+ import importlib .resources
35import importlib .util
46import operator
57import os
1012import types
1113import warnings
1214
13- from collections .abc import Iterable
14- from typing import Any , Callable , Optional , ParamSpec , TypeVar
15+ from collections .abc import Callable , Iterable
16+ from typing import Any , ParamSpec , TypeVar
1517
1618import pkgconf
1719
1820
19- if sys .version_info >= (3 , 10 ):
20- import importlib .metadata as importlib_metadata
21- import importlib .resources as importlib_resources
22- else :
23- import importlib_metadata
24- import importlib_resources
25-
26-
2721P = ParamSpec ('P' )
2822T = TypeVar ('T' )
2923
@@ -63,7 +57,7 @@ def module_path(name: str) -> str:
6357 if len (module .__spec__ .submodule_search_locations ) == 1 :
6458 return module .__spec__ .submodule_search_locations [0 ]
6559 # Traversables often implement __fspath__, attempt to use it.
66- traversable = importlib_resources .files (module )
60+ traversable = importlib . resources .files (module )
6761 if isinstance (traversable , os .PathLike ):
6862 return os .fsdecode (os .fspath (traversable ))
6963 # Give up :/
@@ -129,7 +123,7 @@ def replace_sys_modules() -> Iterable[None]:
129123
130124
131125class EntryPoint :
132- def __init__ (self , entrypoint : importlib_metadata .EntryPoint ) -> None :
126+ def __init__ (self , entrypoint : importlib . metadata .EntryPoint ) -> None :
133127 self ._ep = entrypoint
134128
135129 @property
@@ -145,7 +139,7 @@ def group(self) -> str:
145139 return self ._ep .group
146140
147141 @property
148- def dist (self ) -> Optional [ importlib_metadata . Distribution ] :
142+ def dist (self ) -> importlib . metadata . Distribution | None :
149143 return self ._ep .dist
150144
151145 @property
@@ -180,7 +174,7 @@ def _resolve_via_translation(self) -> str:
180174
181175
182176def entry_points (** select_params : Any ) -> list [EntryPoint ]:
183- original_eps = importlib_metadata .entry_points (** select_params )
177+ original_eps = importlib . metadata .entry_points (** select_params )
184178 our_eps = map (EntryPoint , original_eps )
185179 valid_eps = filter (operator .attrgetter ('path' ), our_eps )
186180 return sorted (valid_eps , key = operator .attrgetter ('name' ))
@@ -206,7 +200,7 @@ def _distribution_info(self) -> str:
206200 info += f' at { metadata_path !r} '
207201 return info
208202
209- def _find_metadata_path (self ) -> Optional [ str ] :
203+ def _find_metadata_path (self ) -> str | None :
210204 assert self ._entrypoint .dist
211205 try :
212206 dist_root = self ._entrypoint .dist .locate_file ('' )
0 commit comments