diff --git a/stubs/setuptools/@tests/stubtest_allowlist.txt b/stubs/setuptools/@tests/stubtest_allowlist.txt index 79dcad433a95..0acd265e8cb5 100644 --- a/stubs/setuptools/@tests/stubtest_allowlist.txt +++ b/stubs/setuptools/@tests/stubtest_allowlist.txt @@ -42,6 +42,10 @@ setuptools._distutils.dist.Distribution.get_requires setuptools._distutils.dist.Distribution.get_provides setuptools._distutils.dist.Distribution.get_obsoletes +# Is a functools.partial, so stubtest says "is not a function" +setuptools.dep_util.newer_pairwise_group +setuptools.modified.newer_pairwise_group + # Private modules setuptools.config._validate_pyproject.* setuptools.command.build_py.build_py.existing_egg_info_dir diff --git a/stubs/setuptools/METADATA.toml b/stubs/setuptools/METADATA.toml index d1530b871eb0..75e84e2773ac 100644 --- a/stubs/setuptools/METADATA.toml +++ b/stubs/setuptools/METADATA.toml @@ -1,6 +1,6 @@ -version = "68.2.*" +version = "69.0.*" upstream_repository = "https://github.com/pypa/setuptools" -partial_stub = true +requires = ["packaging"] [tool.stubtest] # darwin is equivalent to linux for OS-specific methods diff --git a/stubs/setuptools/pkg_resources/__init__.pyi b/stubs/setuptools/pkg_resources/__init__.pyi index 6dfa2c50fba1..97709e84a023 100644 --- a/stubs/setuptools/pkg_resources/__init__.pyi +++ b/stubs/setuptools/pkg_resources/__init__.pyi @@ -9,7 +9,7 @@ from re import Pattern from typing import IO, Any, ClassVar, Protocol, TypeVar, overload, type_check_only from typing_extensions import Literal, Self, TypeAlias -from ._vendor.packaging import requirements as packaging_requirements, version as packaging_version +from packaging import requirements as packaging_requirements, version as packaging_version _T = TypeVar("_T") _D = TypeVar("_D", bound=Distribution) diff --git a/stubs/setuptools/pkg_resources/_vendor/packaging/__init__.pyi b/stubs/setuptools/pkg_resources/_vendor/packaging/__init__.pyi deleted file mode 100644 index 1981f2d9b273..000000000000 --- a/stubs/setuptools/pkg_resources/_vendor/packaging/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -__title__: str -__summary__: str -__uri__: str -__version__: str -__author__: str -__email__: str -__license__: str -__copyright__: str diff --git a/stubs/setuptools/pkg_resources/_vendor/packaging/markers.pyi b/stubs/setuptools/pkg_resources/_vendor/packaging/markers.pyi deleted file mode 100644 index 0a7acbbf3a75..000000000000 --- a/stubs/setuptools/pkg_resources/_vendor/packaging/markers.pyi +++ /dev/null @@ -1,13 +0,0 @@ -__all__ = ["InvalidMarker", "UndefinedComparison", "UndefinedEnvironmentName", "Marker", "default_environment"] - -class InvalidMarker(ValueError): ... -class UndefinedComparison(ValueError): ... -class UndefinedEnvironmentName(ValueError): ... - -def default_environment() -> dict[str, str]: ... - -class Marker: - def __init__(self, marker: str) -> None: ... - def __hash__(self) -> int: ... - def __eq__(self, other: object) -> bool: ... - def evaluate(self, environment: dict[str, str] | None = None) -> bool: ... diff --git a/stubs/setuptools/pkg_resources/_vendor/packaging/requirements.pyi b/stubs/setuptools/pkg_resources/_vendor/packaging/requirements.pyi deleted file mode 100644 index 4f909fa75a23..000000000000 --- a/stubs/setuptools/pkg_resources/_vendor/packaging/requirements.pyi +++ /dev/null @@ -1,14 +0,0 @@ -from .markers import Marker -from .specifiers import SpecifierSet - -class InvalidRequirement(ValueError): ... - -class Requirement: - name: str - url: str | None - extras: set[str] - specifier: SpecifierSet - marker: Marker | None - def __init__(self, requirement_str: str) -> None: ... - def __hash__(self) -> int: ... - def __eq__(self, other: object) -> bool: ... diff --git a/stubs/setuptools/pkg_resources/_vendor/packaging/specifiers.pyi b/stubs/setuptools/pkg_resources/_vendor/packaging/specifiers.pyi deleted file mode 100644 index ec86ea306e74..000000000000 --- a/stubs/setuptools/pkg_resources/_vendor/packaging/specifiers.pyi +++ /dev/null @@ -1,66 +0,0 @@ -import abc -from collections.abc import Iterable, Iterator -from typing import TypeVar -from typing_extensions import TypeAlias - -from .version import Version - -# These exist at runtime, hence the public names -UnparsedVersion: TypeAlias = Version | str -UnparsedVersionVar = TypeVar("UnparsedVersionVar", bound=UnparsedVersion) # noqa: Y001 - -class InvalidSpecifier(ValueError): ... - -class BaseSpecifier(metaclass=abc.ABCMeta): - @abc.abstractmethod - def __str__(self) -> str: ... - @abc.abstractmethod - def __hash__(self) -> int: ... - @abc.abstractmethod - def __eq__(self, other: object) -> bool: ... - @property - @abc.abstractmethod - def prereleases(self) -> bool | None: ... - @prereleases.setter - def prereleases(self, value: bool) -> None: ... - @abc.abstractmethod - def contains(self, item: str, prereleases: bool | None = None) -> bool: ... - @abc.abstractmethod - def filter(self, iterable: Iterable[UnparsedVersionVar], prereleases: bool | None = None) -> Iterator[UnparsedVersionVar]: ... - -class Specifier(BaseSpecifier): - def __init__(self, spec: str = "", prereleases: bool | None = None) -> None: ... - @property # type: ignore[override] - def prereleases(self) -> bool: ... - @prereleases.setter - def prereleases(self, value: bool) -> None: ... - @property - def operator(self) -> str: ... - @property - def version(self) -> str: ... - def __str__(self) -> str: ... # noqa: Y029 # needed as it's abstract on the superclass - def __hash__(self) -> int: ... - def __eq__(self, other: object) -> bool: ... - def __contains__(self, item: Version | str) -> bool: ... - def contains(self, item: UnparsedVersion, prereleases: bool | None = None) -> bool: ... - def filter(self, iterable: Iterable[UnparsedVersionVar], prereleases: bool | None = None) -> Iterator[UnparsedVersionVar]: ... - -class SpecifierSet(BaseSpecifier): - def __init__(self, spec: str = "", prereleases: bool | None = None) -> None: ... - @property - def prereleases(self) -> bool | None: ... - @prereleases.setter - def prereleases(self, value: bool) -> None: ... - @property - def operator(self) -> str: ... - @property - def version(self) -> str: ... - def __str__(self) -> str: ... # noqa: Y029 # needed as it's abstract on the superclass - def __hash__(self) -> int: ... - def __and__(self, other: SpecifierSet | str) -> SpecifierSet: ... - def __len__(self) -> int: ... - def __iter__(self) -> Iterator[Specifier]: ... - def __eq__(self, other: object) -> bool: ... - def __contains__(self, item: UnparsedVersion) -> bool: ... - def contains(self, item: UnparsedVersion, prereleases: bool | None = None, installed: bool | None = None) -> bool: ... - def filter(self, iterable: Iterable[UnparsedVersionVar], prereleases: bool | None = None) -> Iterator[UnparsedVersionVar]: ... diff --git a/stubs/setuptools/pkg_resources/_vendor/packaging/version.pyi b/stubs/setuptools/pkg_resources/_vendor/packaging/version.pyi deleted file mode 100644 index e05866730dbe..000000000000 --- a/stubs/setuptools/pkg_resources/_vendor/packaging/version.pyi +++ /dev/null @@ -1,49 +0,0 @@ -from typing_extensions import Final - -__all__ = ["VERSION_PATTERN", "parse", "Version", "InvalidVersion"] - -def parse(version: str) -> Version: ... - -class InvalidVersion(ValueError): ... - -VERSION_PATTERN: Final[str] - -class _BaseVersion: - def __hash__(self) -> int: ... - def __lt__(self, other: _BaseVersion) -> bool: ... - def __le__(self, other: _BaseVersion) -> bool: ... - def __ge__(self, other: _BaseVersion) -> bool: ... - def __gt__(self, other: _BaseVersion) -> bool: ... - def __eq__(self, other: object) -> bool: ... - def __ne__(self, other: object) -> bool: ... - -class Version(_BaseVersion): - def __init__(self, version: str) -> None: ... - @property - def epoch(self) -> int: ... - @property - def release(self) -> tuple[int, ...]: ... - @property - def pre(self) -> tuple[str, int] | None: ... - @property - def post(self) -> int | None: ... - @property - def dev(self) -> int | None: ... - @property - def local(self) -> str | None: ... - @property - def public(self) -> str: ... - @property - def base_version(self) -> str: ... - @property - def is_prerelease(self) -> bool: ... - @property - def is_postrelease(self) -> bool: ... - @property - def is_devrelease(self) -> bool: ... - @property - def major(self) -> int: ... - @property - def minor(self) -> int: ... - @property - def micro(self) -> int: ... diff --git a/stubs/setuptools/setuptools/_distutils/_modified.pyi b/stubs/setuptools/setuptools/_distutils/_modified.pyi new file mode 100644 index 000000000000..39b853256ed4 --- /dev/null +++ b/stubs/setuptools/setuptools/_distutils/_modified.pyi @@ -0,0 +1,6 @@ +from typing_extensions import Literal + +def newer(source, target): ... +def newer_pairwise(sources, targets, newer=...): ... +def newer_group(sources, target, missing: Literal["error", "newer", "ignore"] = "error"): ... +def newer_pairwise_group(sources, targets, *, newer=...): ... diff --git a/stubs/setuptools/setuptools/dep_util.pyi b/stubs/setuptools/setuptools/dep_util.pyi index 0ac008029257..0891d9775f47 100644 --- a/stubs/setuptools/setuptools/dep_util.pyi +++ b/stubs/setuptools/setuptools/dep_util.pyi @@ -1 +1 @@ -def newer_pairwise_group(sources_groups, targets): ... +from ._distutils._modified import newer_group as newer_group, newer_pairwise_group as newer_pairwise_group diff --git a/stubs/setuptools/setuptools/errors.pyi b/stubs/setuptools/setuptools/errors.pyi index 003874563c7c..9723a11d514f 100644 --- a/stubs/setuptools/setuptools/errors.pyi +++ b/stubs/setuptools/setuptools/errors.pyi @@ -18,5 +18,7 @@ TemplateError = _distutils_errors.DistutilsTemplateError UnknownFileError = _distutils_errors.UnknownFileError BaseError = _distutils_errors.DistutilsError +class InvalidConfigError(OptionError): ... +class RemovedConfigError(OptionError): ... class RemovedCommandError(BaseError, RuntimeError): ... class PackageDiscoveryError(BaseError, RuntimeError): ... diff --git a/stubs/setuptools/setuptools/modified.pyi b/stubs/setuptools/setuptools/modified.pyi new file mode 100644 index 000000000000..3148cc626dc6 --- /dev/null +++ b/stubs/setuptools/setuptools/modified.pyi @@ -0,0 +1,8 @@ +from ._distutils._modified import ( + newer as newer, + newer_group as newer_group, + newer_pairwise as newer_pairwise, + newer_pairwise_group as newer_pairwise_group, +) + +__all__ = ["newer", "newer_pairwise", "newer_group", "newer_pairwise_group"]