Don't ignore missing stubs in setuptools (#10058)

This commit is contained in:
Avasam
2023-05-19 02:03:34 -04:00
committed by GitHub
parent 274f449edc
commit b5c9d8d677
41 changed files with 765 additions and 97 deletions

View File

@@ -1,27 +1,16 @@
pkg_resources.Distribution.__cmp__
pkg_resources.Distribution.activate
pkg_resources.Distribution.get_entry_map
pkg_resources.EggMetadata.__init__
pkg_resources.Environment.best_match
pkg_resources.Environment.obtain
pkg_resources.FileMetadata.__init__
# These are used like protocols, but forgot to specify "self" as the first method param
pkg_resources.IResourceProvider.get_resource_filename
pkg_resources.IResourceProvider.get_resource_stream
pkg_resources.IResourceProvider.get_resource_string
pkg_resources.IResourceProvider.has_resource
pkg_resources.IResourceProvider.resource_isdir
pkg_resources.IResourceProvider.resource_listdir
pkg_resources.IMetadataProvider.get_metadata
pkg_resources.IMetadataProvider.get_metadata_lines
pkg_resources.IMetadataProvider.has_metadata
pkg_resources.IMetadataProvider.metadata_isdir
pkg_resources.IMetadataProvider.metadata_listdir
pkg_resources.IMetadataProvider.run_script
pkg_resources.IResourceManager
pkg_resources.Requirement.__init__
pkg_resources.WorkingSet.find_plugins
pkg_resources.WorkingSet.resolve
pkg_resources.WorkingSet.subscribe
pkg_resources.declare_namespace
pkg_resources.fixup_namespace_packages
pkg_resources.get_entry_map
pkg_resources.get_provider
pkg_resources.split_sections
pkg_resources.to_filename
# Is always set in __init__
pkg_resources.PathMetadata.egg_info
@@ -53,16 +42,24 @@ setuptools._distutils.dist.Distribution.get_requires
setuptools._distutils.dist.Distribution.get_provides
setuptools._distutils.dist.Distribution.get_obsoletes
# Uncomment once ignore_missing_stub is turned off
# # Not supported by typeshed
# setuptools.py34compat
# Not supported by typeshed
setuptools.py34compat
setuptools.command.py36compat
# # Private modules
# setuptools.config._validate_pyproject.*
# setuptools.build_meta._BuildMetaBackend.*
# Private modules
setuptools.config._validate_pyproject.*
setuptools.command.build_py.build_py.existing_egg_info_dir
# # Vendored and modified version of stdlib's distutils. Basically implementation details
# setuptools._distutils.*
# # Other vendored code
# setuptools._vendor.*
# pkg_resources._vendor.*
# Loop variable leak
setuptools.sandbox.AbstractSandbox.name
# Vendored and modified version of stdlib's distutils. Basically implementation details
setuptools._distutils.*
# Other vendored code
setuptools._vendor.*
pkg_resources._vendor.*
# Deprecated in favor of importlib.resources, importlib.metadata and their backports
# So like distutils, we only add what we need to reference.
pkg_resources.AvailableDistributions
pkg_resources.ResourceManager
pkg_resources.extern

View File

@@ -0,0 +1,2 @@
# Mock
setuptools.msvc.winreg

View File

@@ -0,0 +1,2 @@
# Mock
setuptools.msvc.winreg

View File

@@ -0,0 +1,54 @@
from __future__ import annotations
from typing import Any
from pkg_resources import (
DefaultProvider,
EggMetadata,
EggProvider,
EmptyProvider,
FileMetadata,
IMetadataProvider,
IResourceProvider,
NullProvider,
PathMetadata,
ZipProvider,
)
from setuptools.command.editable_wheel import EditableStrategy, _LinkTree, _StaticPth, _TopLevelFinder
from setuptools.config.expand import EnsurePackagesDiscovered
from setuptools.config.pyprojecttoml import _EnsurePackagesDiscovered
# We don't care about the __init__ methods, only about if an instance respects the Protocol
_: Any = object()
# Test IMetadataProvider Protocol implementers
metadata_provider: IMetadataProvider
metadata_provider = NullProvider(_)
metadata_provider = EggProvider(_)
metadata_provider = EmptyProvider()
metadata_provider = DefaultProvider(_)
metadata_provider = ZipProvider(_)
metadata_provider = FileMetadata(_)
metadata_provider = PathMetadata(_, _)
metadata_provider = EggMetadata(_)
# Test IResourceProvider Protocol implementers
resource_provider: IResourceProvider
resource_provider = NullProvider(_)
resource_provider = EggProvider(_)
resource_provider = EmptyProvider()
resource_provider = DefaultProvider(_)
resource_provider = ZipProvider(_)
resource_provider = FileMetadata(_)
resource_provider = PathMetadata(_, _)
resource_provider = EggMetadata(_)
# Test EditableStrategy Protocol implementers
editable_strategy: EditableStrategy
editable_strategy = _StaticPth(_, _, _)
editable_strategy = _LinkTree(_, _, _, _)
editable_strategy = _TopLevelFinder(_, _)
# Not EditableStrategy due to incompatible __call__ method
editable_strategy = EnsurePackagesDiscovered(_) # type: ignore
editable_strategy = _EnsurePackagesDiscovered(_, _, _) # type: ignore