Override pkg_resources.ZipProvider.loader type (#11514)

This commit is contained in:
Avasam
2024-03-01 10:09:51 -05:00
committed by GitHub
parent 2fc0299068
commit 185ef486ae
2 changed files with 11 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
# Is always set in __init__
pkg_resources.PathMetadata.egg_info
pkg_resources.EggMetadata.loader
pkg_resources.ZipProvider.loader
# 1 used for True as a default value
setuptools._distutils.dist.Distribution.get_command_obj

View File

@@ -6,8 +6,9 @@ from abc import ABCMeta
from collections.abc import Callable, Generator, Iterable, Iterator, Sequence
from io import BytesIO
from re import Pattern
from typing import IO, Any, ClassVar, Literal, Protocol, TypeVar, overload
from typing import IO, Any, ClassVar, Literal, Protocol, TypeVar, overload, type_check_only
from typing_extensions import Self, TypeAlias
from zipfile import ZipInfo
from ._vendored_packaging import requirements as packaging_requirements, version as packaging_version
@@ -21,6 +22,10 @@ _PkgReqType: TypeAlias = str | Requirement
_DistFinderType: TypeAlias = Callable[[_Importer, str, bool], Generator[Distribution, None, None]]
_NSHandlerType: TypeAlias = Callable[[_Importer, str, str, types.ModuleType], str]
@type_check_only
class _ZipLoaderModule(Protocol):
__loader__: zipimport.zipimporter
def declare_namespace(packageName: str) -> None: ...
def fixup_namespace_packages(path_item: str, parent=None) -> None: ...
@@ -321,8 +326,11 @@ class PathMetadata(DefaultProvider):
class ZipProvider(EggProvider):
eagers: list[str] | None
zip_pre: str
# ZipProvider's loader should always be a zipimporter
loader: zipimport.zipimporter
def __init__(self, module: _ZipLoaderModule) -> None: ...
@property
def zipinfo(self): ...
def zipinfo(self) -> dict[str, ZipInfo]: ...
class EggMetadata(ZipProvider):
loader: zipimport.zipimporter