1
- import importlib .abc
2
1
import types
3
2
import zipimport
4
3
from _typeshed import Incomplete
5
- from abc import ABCMeta
6
4
from collections .abc import Callable , Generator , Iterable , Iterator , Sequence
7
5
from io import BytesIO
8
6
from pkgutil import get_importer as get_importer
@@ -20,8 +18,10 @@ _InstallerType: TypeAlias = Callable[[Requirement], Distribution | None]
20
18
_EPDistType : TypeAlias = Distribution | Requirement | str
21
19
_MetadataType : TypeAlias = IResourceProvider | None
22
20
_PkgReqType : TypeAlias = str | Requirement
23
- _DistFinderType : TypeAlias = Callable [[_Importer , str , bool ], Generator [Distribution , None , None ]]
24
- _NSHandlerType : TypeAlias = Callable [[_Importer , str , str , types .ModuleType ], str ]
21
+ _ModuleLike : TypeAlias = object | types .ModuleType # Any object that optionally has __loader__ or __file__, usually a module
22
+ _ProviderFactoryType : TypeAlias = Callable [[_ModuleLike ], IResourceProvider ]
23
+ _DistFinderType : TypeAlias = Callable [[_T , str , bool ], Iterable [Distribution ]]
24
+ _NSHandlerType : TypeAlias = Callable [[_T , str , str , types .ModuleType ], str | None ]
25
25
26
26
__all__ = [
27
27
"require" ,
@@ -294,11 +294,9 @@ class ExtractionError(Exception):
294
294
cache_path : str
295
295
original_error : Exception
296
296
297
- class _Importer (importlib .abc .MetaPathFinder , importlib .abc .InspectLoader , metaclass = ABCMeta ): ...
298
-
299
- def register_finder (importer_type : type , distribution_finder : _DistFinderType ) -> None : ...
300
- def register_loader_type (loader_type : type , provider_factory : Callable [[types .ModuleType ], IResourceProvider ]) -> None : ...
301
- def register_namespace_handler (importer_type : type , namespace_handler : _NSHandlerType ) -> None : ...
297
+ def register_finder (importer_type : type [_T ], distribution_finder : _DistFinderType [_T ]) -> None : ...
298
+ def register_loader_type (loader_type : type [_ModuleLike ], provider_factory : _ProviderFactoryType ) -> None : ...
299
+ def register_namespace_handler (importer_type : type [_T ], namespace_handler : _NSHandlerType [_T ]) -> None : ...
302
300
303
301
class IResourceProvider (IMetadataProvider , Protocol ):
304
302
def get_resource_filename (self , manager : ResourceManager , resource_name ): ...
@@ -317,7 +315,7 @@ class NullProvider:
317
315
loader : types ._LoaderProtocol | None
318
316
module_path : str | None
319
317
320
- def __init__ (self , module ) -> None : ...
318
+ def __init__ (self , module : _ModuleLike ) -> None : ...
321
319
def get_resource_filename (self , manager : ResourceManager , resource_name ) -> str : ...
322
320
def get_resource_stream (self , manager : ResourceManager , resource_name ) -> BytesIO : ...
323
321
def get_resource_string (self , manager : ResourceManager , resource_name ): ...
0 commit comments