Skip to content

Commit f7665e6

Browse files
committed
Merge branch 'main' of https://github.com/pypa/setuptools into setuptools-simple-typeshed-params
2 parents 5a7b9ac + ebddeb3 commit f7665e6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+184
-783
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 72.2.0
2+
current_version = 73.0.1
33
commit = True
44
tag = True
55

NEWS.rst

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,46 @@
1+
v73.0.1
2+
=======
3+
4+
Bugfixes
5+
--------
6+
7+
- Remove `abc.ABCMeta` metaclass from abstract classes. `pypa/setuptools#4503 <https://github.com/pypa/setuptools/pull/4503>`_ had an unintended consequence of causing potential ``TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases`` -- by :user:`Avasam` (#4579)
8+
9+
10+
v73.0.0
11+
=======
12+
13+
Features
14+
--------
15+
16+
- Mark abstract base classes and methods with `abc.ABC` and `abc.abstractmethod` -- by :user:`Avasam` (#4503)
17+
- Changed the order of type checks in ``setuptools.command.easy_install.CommandSpec.from_param`` to support any `collections.abc.Iterable` of `str` param -- by :user:`Avasam` (#4505)
18+
19+
20+
Bugfixes
21+
--------
22+
23+
- Prevent an error in ``bdist_wheel`` if ``compression`` is set to a `str` (even if valid) after finalizing options but before running the command. -- by :user:`Avasam` (#4383)
24+
- Raises an exception when ``py_limited_api`` is used in a build with
25+
``Py_GIL_DISABLED``. This is currently not supported (python/cpython#111506). (#4420)
26+
- Synced with pypa/distutils@30b7331 including fix for modified check on empty sources (pypa/distutils#284).
27+
28+
29+
Deprecations and Removals
30+
-------------------------
31+
32+
- ``setuptools`` is replacing the usages of :pypi:`ordered_set` with simple
33+
instances of ``dict[Hashable, None]``. This is done to remove the extra
34+
dependency and it is possible because since Python 3.7, ``dict`` maintain
35+
insertion order. (#4574)
36+
37+
38+
Misc
39+
----
40+
41+
- #4534, #4546, #4554, #4559, #4565
42+
43+
144
v72.2.0
245
=======
346

newsfragments/4383.bugfix.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4503.feature.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4505.feature.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4534.misc.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

newsfragments/4546.misc.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

newsfragments/4554.misc.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

pkg_resources/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from __future__ import annotations
2424

2525
import sys
26-
from abc import ABC
2726

2827
if sys.version_info < (3, 8): # noqa: UP036 # Check for unsupported versions
2928
raise RuntimeError("Python 3.8 or later is required")
@@ -306,7 +305,7 @@ def get_supported_platform():
306305
]
307306

308307

309-
class ResolutionError(Exception, ABC):
308+
class ResolutionError(Exception):
310309
"""Abstract base for dependency resolution errors"""
311310

312311
def __repr__(self):

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ backend-path = ["."]
55

66
[project]
77
name = "setuptools"
8-
version = "72.2.0"
8+
version = "73.0.1"
99
authors = [
1010
{ name = "Python Packaging Authority", email = "[email protected]" },
1111
]
@@ -110,7 +110,6 @@ ssl = []
110110
certs = []
111111
core = [
112112
"packaging>=24",
113-
"ordered-set>=3.1.1",
114113
"more_itertools>=8.8",
115114
"jaraco.text>=3.7",
116115
"importlib_resources>=5.10.2; python_version < '3.9'",

setuptools/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import os
77
import re
88
import sys
9-
from abc import ABC, abstractmethod
9+
from abc import abstractmethod
1010
from typing import TYPE_CHECKING, TypeVar, overload
1111

1212
sys.path.extend(((vendor_path := os.path.join(os.path.dirname(os.path.dirname(__file__)), 'setuptools', '_vendor')) not in sys.path) * [vendor_path]) # fmt: skip
@@ -120,7 +120,7 @@ def setup(**attrs):
120120
_Command = monkey.get_unpatched(distutils.core.Command)
121121

122122

123-
class Command(_Command, ABC):
123+
class Command(_Command):
124124
"""
125125
Setuptools internal actions are organized using a *command design pattern*.
126126
This means that each action (or group of closely related actions) executed during

setuptools/_distutils/_modified.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def missing_as_newer(source):
6363
return missing == 'newer' and not os.path.exists(source)
6464

6565
ignored = os.path.exists if missing == 'ignore' else None
66-
return any(
66+
return not os.path.exists(target) or any(
6767
missing_as_newer(source) or _newer(source, target)
6868
for source in filter(ignored, sources)
6969
)

setuptools/_distutils/dist.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ def _show_help(
658658
)
659659
print()
660660

661-
for command in self.commands:
661+
for command in commands:
662662
if isinstance(command, type) and issubclass(command, Command):
663663
klass = command
664664
else:

setuptools/_distutils/tests/test_modified.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,10 @@ def test_newer_pairwise_group(groups_target):
117117
newer = newer_pairwise_group([groups_target.newer], [groups_target.target])
118118
assert older == ([], [])
119119
assert newer == ([groups_target.newer], [groups_target.target])
120+
121+
122+
def test_newer_group_no_sources_no_target(tmp_path):
123+
"""
124+
Consider no sources and no target "newer".
125+
"""
126+
assert newer_group([], str(tmp_path / 'does-not-exist'))

setuptools/_vendor/ordered_set-4.1.0.dist-info/INSTALLER

Lines changed: 0 additions & 1 deletion
This file was deleted.

setuptools/_vendor/ordered_set-4.1.0.dist-info/METADATA

Lines changed: 0 additions & 158 deletions
This file was deleted.

setuptools/_vendor/ordered_set-4.1.0.dist-info/RECORD

Lines changed: 0 additions & 8 deletions
This file was deleted.

setuptools/_vendor/ordered_set-4.1.0.dist-info/REQUESTED

Whitespace-only changes.

setuptools/_vendor/ordered_set-4.1.0.dist-info/WHEEL

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)