Skip to content

Commit 641ca18

Browse files
authored
Remove setuptools/pkg_resources (#13369)
1 parent e4a8707 commit 641ca18

File tree

12 files changed

+23
-746
lines changed

12 files changed

+23
-746
lines changed

stubs/Pygments/METADATA.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version = "2.19.*"
22
upstream_repository = "https://github.com/pygments/pygments"
3-
requires = ["types-docutils", "types-setuptools"]
3+
requires = ["types-docutils"]
44
partial_stub = true
55

66
[tool.stubtest]

stubs/Pygments/pygments/plugin.pyi

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from collections.abc import Generator, Iterable
1+
import sys
2+
from collections.abc import Generator
23
from typing import Any
34

4-
from pkg_resources import EntryPoint
55
from pygments.filter import Filter
66
from pygments.formatter import Formatter
77
from pygments.lexer import Lexer
@@ -12,7 +12,15 @@ FORMATTER_ENTRY_POINT: str
1212
STYLE_ENTRY_POINT: str
1313
FILTER_ENTRY_POINT: str
1414

15-
def iter_entry_points(group_name: str) -> Iterable[EntryPoint]: ...
15+
if sys.version_info >= (3, 10):
16+
from importlib.metadata import EntryPoints
17+
def iter_entry_points(group_name: str) -> EntryPoints: ...
18+
19+
else:
20+
from importlib.metadata import EntryPoint
21+
22+
def iter_entry_points(group_name: str) -> tuple[EntryPoint, ...] | list[EntryPoint]: ...
23+
1624
def find_plugin_lexers() -> Generator[type[Lexer], None, None]: ...
1725
def find_plugin_formatters() -> Generator[tuple[str, type[Formatter[Any]]], None, None]: ...
1826
def find_plugin_styles() -> Generator[tuple[str, type[Style]], None, None]: ...

stubs/fanstatic/fanstatic/registry.pyi

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
from abc import abstractmethod
22
from collections.abc import Iterable
33
from threading import Lock
4-
from typing import Any, ClassVar, Literal, Protocol, TypeVar
4+
from typing import Any, ClassVar, Literal, Protocol, TypeVar, type_check_only
55
from typing_extensions import Self
66

77
from fanstatic.compiler import Compiler, Minifier
88
from fanstatic.core import Library
99
from fanstatic.injector import InjectorPlugin
10-
from pkg_resources import EntryPoint
1110

11+
# Used to be pkg_resources.EntryPoint, but any EntryPoint-like class with a `load` method works
12+
@type_check_only
13+
class _EntryPoint(Protocol):
14+
def load(self) -> Any: ... # Can be any attribute in the module
15+
16+
@type_check_only
1217
class _HasName(Protocol):
1318
@property
1419
def name(self) -> str: ...
@@ -24,7 +29,7 @@ class Registry(dict[str, _NamedT]):
2429
def __init__(self, items: Iterable[_NamedT] = ()) -> None: ...
2530
def add(self, item: _NamedT) -> None: ...
2631
def load_items_from_entry_points(self) -> None: ...
27-
def make_item_from_entry_point(self, entry_point: EntryPoint) -> Any: ...
32+
def make_item_from_entry_point(self, entry_point: _EntryPoint) -> Any: ...
2833
@classmethod
2934
def instance(cls) -> Self: ...
3035

stubs/setuptools/@tests/stubtest_allowlist.txt

-9
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
# Is always set in __init__
2-
pkg_resources.PathMetadata.egg_info
3-
pkg_resources.EggMetadata.loader
4-
pkg_resources.ZipProvider.loader
5-
6-
# @classmethod alias not handled correctly by stubtest
7-
pkg_resources.ZipManifests.load
8-
91
# Is a functools.partial, so stubtest says "is not a function"
102
setuptools.modified.newer_pairwise_group
113
setuptools._distutils._modified.newer_pairwise_group
@@ -109,4 +101,3 @@ setuptools.config._validate_pyproject.*
109101
setuptools.compat.*
110102
setuptools.command.build_py.build_py.existing_egg_info_dir
111103
.+?\.tests.*
112-
.+?\._vendor.*

stubs/setuptools/@tests/test_cases/check_protocols.py

-35
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,13 @@
22

33
from typing import Any
44

5-
from pkg_resources import (
6-
DefaultProvider,
7-
EggMetadata,
8-
EggProvider,
9-
EmptyProvider,
10-
FileMetadata,
11-
IMetadataProvider,
12-
IResourceProvider,
13-
NullProvider,
14-
PathMetadata,
15-
ZipProvider,
16-
)
175
from setuptools.command.editable_wheel import EditableStrategy, _LinkTree, _StaticPth, _TopLevelFinder
186
from setuptools.config.expand import EnsurePackagesDiscovered
197
from setuptools.config.pyprojecttoml import _EnsurePackagesDiscovered
208

219
# We don't care about the __init__ methods, only about if an instance respects the Protocol
2210
_: Any = object()
2311

24-
# Test IMetadataProvider Protocol implementers
25-
metadata_provider: IMetadataProvider
26-
metadata_provider = NullProvider(_)
27-
metadata_provider = EggProvider(_)
28-
metadata_provider = EmptyProvider()
29-
metadata_provider = DefaultProvider(_)
30-
metadata_provider = ZipProvider(_)
31-
metadata_provider = FileMetadata(_)
32-
metadata_provider = PathMetadata(_, _)
33-
metadata_provider = EggMetadata(_)
34-
35-
# Test IResourceProvider Protocol implementers
36-
resource_provider: IResourceProvider
37-
resource_provider = NullProvider(_)
38-
resource_provider = EggProvider(_)
39-
resource_provider = EmptyProvider()
40-
resource_provider = DefaultProvider(_)
41-
resource_provider = ZipProvider(_)
42-
resource_provider = FileMetadata(_)
43-
resource_provider = PathMetadata(_, _)
44-
resource_provider = EggMetadata(_)
45-
46-
4712
# Test EditableStrategy Protocol implementers
4813
editable_strategy: EditableStrategy
4914
editable_strategy = _StaticPth(_, _, _)

stubs/setuptools/METADATA.toml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
version = "~=75.8.2"
22
upstream_repository = "https://github.com/pypa/setuptools"
33
extra_description = """\
4-
If using `setuptools >= 71.1` *only* for `pkg_resources`,
5-
you don't need `types-setuptools` since `pkg_resources` is now typed.\
4+
Given that `pkg_resources` is typed since `setuptools >= 71.1`, \
5+
it is no longer included with `types-setuptools`.
66
"""
7+
requires = ["setuptools"] # For pkg_resources
78

89
[tool.stubtest]
910
# darwin is equivalent to linux for OS-specific methods

0 commit comments

Comments
 (0)