Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--disable-gil builds are not compatible with the limited API #111506

Open
Tracked by #108219
colesbury opened this issue Oct 30, 2023 · 7 comments
Open
Tracked by #108219

--disable-gil builds are not compatible with the limited API #111506

colesbury opened this issue Oct 30, 2023 · 7 comments
Labels
3.13 bugs and security fixes topic-C-API topic-free-threading type-bug An unexpected behavior, bug, or error

Comments

@colesbury
Copy link
Contributor

colesbury commented Oct 30, 2023

Bug report

After #110764, --disable-gil builds of CPython 3.13 are (temporarily) not be compatible with the limited API or the stable ABI due to modifications to the PyObject header. For context, this was noted in the "Backwards Compatibility" section of PEP 703.

Based on feedback on the related discuss post and discussions with Gregory Smith, Guido, Petr, and Victor at the core dev sprint, I believe we can make changes to the stable ABI so that extension author can target a single stable ABI that supports CPython 3.7+ and both the default build and the --disable-gil builds of CPython 3.13+.

These changes will require a PEP. This issue is intended just to keep track of the known problem.

The rough idea is:

  1. make a number of macro/inline functions (e.g., Py_SIZE, Py_TYPE, Py_SET_REFCNT, Py_REFCNT) "real" function calls in the stable ABI for CPython 3.13+
  2. When targeting CPython <= 3.12, use dynamic symbol lookup (GetProcAddress on Windows) or weak symbols (on Linux/macOS) to determine at runtime if the active CPython version provides the desired functions. Otherwise, fall back to old definitions of the above functions for CPython <= 3.12.

Linked PRs

@corona10
Copy link
Member

cc @vstinner

vstinner added a commit to vstinner/cpython that referenced this issue Oct 30, 2023
…ted C API

In the limited C API version 3.13. Py_SET_REFCNT() is now implemented
as an opaque function call.

Add _Py_SetRefcnt() to the stable ABI.
vstinner added a commit to vstinner/cpython that referenced this issue Oct 30, 2023
…ted C API

In the limited C API version 3.13, Py_SET_REFCNT() function is now
implemented as an opaque function call.

Add _Py_SetRefcnt() to the stable ABI.
@vstinner
Copy link
Member

Before creating a whole new ABI, I would like first to avoid __asm__(...); in Include/*.h, in the limited C API. Assembly code is not portable and can cause compilation issues.

A first step for that is to implement Py_SET_REFCNT() as a function call: PR #111508.

vstinner added a commit to vstinner/cpython that referenced this issue Oct 30, 2023
…ted C API

In the limited C API version 3.13, Py_SET_REFCNT() function is now
implemented as an opaque function call.

Add _Py_SetRefcnt() to the stable ABI.
@encukou
Copy link
Member

encukou commented Oct 31, 2023

These changes will require a PEP.

Please, could we have the PEP first, then do the changes?

vstinner added a commit that referenced this issue Nov 3, 2023
…API (#111508)

In the limited C API version 3.13, Py_SET_REFCNT() function is now
implemented as an opaque function call.

Add _Py_SetRefcnt() to the stable ABI.
vstinner added a commit to vstinner/cpython that referenced this issue Dec 5, 2023
In the limited C API version 3.13, the Py_REFCNT() function is now
implemented as an opaque function call.
vstinner added a commit to vstinner/cpython that referenced this issue Dec 5, 2023
In the limited C API version 3.13, the Py_REFCNT() function is now
implemented as an opaque function call.
@encukou
Copy link
Member

encukou commented Dec 5, 2023

Please, could we have the PEP first, then do the changes?

@colesbury, do you still plan to write the PEP? Do you need any help?

@colesbury
Copy link
Contributor Author

@encukou, yes I still intend to write the PEP. It just hasn't been as a high a priority as integrating the pieces of PEP 703.

vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
Add  Objects/object_abi.c file and _Py_STABLE_ABI_IMPL macro.
vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
Export Py_SET_REFCNT() opaque function as "Py_SET_REFCNT" symbol in
the stable ABI.

Add  Objects/object_abi.c file and _Py_STABLE_ABI_IMPL macro.
vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
Convert Py_SET_REFCNT() and _Py_IsImmortal() static inline functions
to inline functions.

Stable ABI now use "Py_SET_REFCNT" name instead of "_Py_SetRefcnt".
vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
Convert Py_SET_REFCNT() and _Py_IsImmortal() static inline functions
to inline functions.

_Py_IsImmortal() has to be converted to an inline function, since
non-static Py_SET_REFCNT() function cannot call a static
_Py_IsImmortal() function.

Py_SET_REFCNT() function is now exported as "Py_SET_REFCNT" name in
the stable ABI, instead of "_Py_SetRefcnt".
vstinner added a commit to vstinner/cpython that referenced this issue Dec 6, 2023
Convert Py_SET_REFCNT() and _Py_IsImmortal() static inline functions
to inline functions.

Py_SET_REFCNT() function is now exported as "Py_SET_REFCNT" name in
the stable ABI, instead of "_Py_SetRefcnt".

_Py_IsImmortal() has to be converted to an inline function, since
non-static Py_SET_REFCNT() function cannot call a static
_Py_IsImmortal() function. _Py_IsImmortal() is not part of the stable
ABI.
vstinner added a commit to vstinner/cpython that referenced this issue Dec 7, 2023
Convert Py_SET_REFCNT() and _Py_IsImmortal() static inline functions
to inline functions.

Py_SET_REFCNT() function is now exported as "Py_SET_REFCNT" name in
the stable ABI, instead of "_Py_SetRefcnt".

_Py_IsImmortal(), _Py_IsOwnedByCurrentThread() and _Py_ThreadId()
have to be converted to an inline functions, since non-static
Py_SET_REFCNT() function cannot call a static functions.
_Py_IsImmortal(), _Py_IsOwnedByCurrentThread() and _Py_ThreadId() are
not part of the stable ABI.
vstinner added a commit to vstinner/cpython that referenced this issue Dec 7, 2023
Convert Py_SET_REFCNT() and _Py_IsImmortal() static inline functions
to inline functions.

Py_SET_REFCNT() function is now exported as "Py_SET_REFCNT" name in
the stable ABI, instead of "_Py_SetRefcnt".

_Py_IsImmortal(), _Py_IsOwnedByCurrentThread() and _Py_ThreadId()
have to be converted to an inline functions, since non-static
Py_SET_REFCNT() function cannot call a static functions.
_Py_IsImmortal(), _Py_IsOwnedByCurrentThread() and _Py_ThreadId() are
not part of the stable ABI.
aisk pushed a commit to aisk/cpython that referenced this issue Feb 11, 2024
…ted C API (python#111508)

In the limited C API version 3.13, Py_SET_REFCNT() function is now
implemented as an opaque function call.

Add _Py_SetRefcnt() to the stable ABI.
colesbury added a commit to colesbury/cpython that referenced this issue Apr 11, 2024
Issue a build time error if both `Py_LIMITED_API` and `Py_GIL_DISABLED`
are defined.
colesbury added a commit that referenced this issue Apr 11, 2024
…117762)

Issue a build time error if both `Py_LIMITED_API` and `Py_GIL_DISABLED`
are defined.
diegorusso pushed a commit to diegorusso/cpython that referenced this issue Apr 17, 2024
…ild (python#117762)

Issue a build time error if both `Py_LIMITED_API` and `Py_GIL_DISABLED`
are defined.
@neutrinoceros
Copy link
Contributor

Sorry if this was answered elsewhere already but I couldn't find this information: is the intention to bring some form of free-threaded limited API in CPython 3.13.0 final or later, in some subsequent minor version (3.14 at the earliest) ?

@colesbury
Copy link
Contributor Author

The goal will be to fix this in 3.14

DefinetlyNotAI added a commit to DefinetlyNotAI/Logicytics that referenced this issue Aug 20, 2024
Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<h1>v72.1.0</h1>
<h2>Features</h2>
<ul>
<li>Restore the tests command and deprecate access to the module. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4519">#4519</a>)
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4520">#4520</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/9a9946f98a5c1597a230db5975bdd61dc1ca1a3f"><code>9a9946f</code></a>
Add test capturing missed expectation.</li>
<li><a
href="https://github.com/pypa/setuptools/commit/dbfcf800b2d130066319ee6dc54f485ff3a09dc6"><code>dbfcf80</code></a>
Add newsfragment</li>
<li><a
href="https://github.com/pypa/setuptools/commit/d081fbdfc92da4b8bcf01455445cf739ca51d5f1"><code>d081fbd</code></a>
Remove bundled ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/49d7438a23b7ec7cfca20c4d0ae5083030f631bd"><code>49d7438</code></a>
Replace OrderedSet with dict</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8bd93089e76c88775ffccd1b03183d4ff659ec67"><code>8bd9308</code></a>
Allow dash-separated module name in <code>pyproject.toml</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4566">#4566</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v72.2.0...v73.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
github-actions bot pushed a commit to aio-libs/aiohttp that referenced this issue Aug 21, 2024
Bumps [setuptools](https://github.com/pypa/setuptools) from 68.0.0 to
73.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v68.0.0...v73.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=68.0.0&new-version=73.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions bot pushed a commit to aio-libs/aiohttp that referenced this issue Aug 21, 2024
Bumps [setuptools](https://github.com/pypa/setuptools) from 68.0.0 to
73.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v68.0.0...v73.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=68.0.0&new-version=73.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Aug 25, 2024
v73.0.1
=======

Bugfixes
--------

- 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)


v73.0.0
=======

Features
--------

- Mark abstract base classes and methods with `abc.ABC` and `abc.abstractmethod` -- by :user:`Avasam` (#4503)
- 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)


Bugfixes
--------

- 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)
- Raises an exception when ``py_limited_api`` is used in a build with
  ``Py_GIL_DISABLED``. This is currently not supported (python/cpython#111506). (#4420)
- Synced with pypa/distutils@30b7331 including fix for modified check on empty sources (pypa/distutils#284).


Deprecations and Removals
-------------------------

- ``setuptools`` is replacing the usages of :pypi:`ordered_set` with simple
  instances of ``dict[Hashable, None]``. This is done to remove the extra
  dependency and it is possible because since Python 3.7, ``dict`` maintain
  insertion order. (#4574)


Misc
----

- #4534, #4546, #4554, #4559, #4565
mergify bot pushed a commit to aws/jsii that referenced this issue Aug 26, 2024
…in /packages/@jsii/python-runtime (#4614)

Updates the requirements on [setuptools](https://github.com/pypa/setuptools) to permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p>
<blockquote>
<h1>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes. <code>pypa/setuptools#4503 &lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an unintended consequence of causing potential <code>TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases</code> -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and <code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in <code>setuptools.command.easy_install.CommandSpec.from_param</code> to support any <code>collections.abc.Iterable</code> of <code>str</code> param -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if <code>compression</code> is set to a <code>str</code> (even if valid) after finalizing options but before running the command. -- by :user:<code>Avasam</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of :pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove the extra
dependency and it is possible because since Python 3.7, <code>dict</code> maintain
insertion order. (<a href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>, <a href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a> Bump version: 73.0.0 → 73.0.1</li>
<li><a href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a> from Avasam/no-ABCMeta</li>
<li><a href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a> Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a> Override distribution attribute type in all distutils-based commands (<a href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a> Override distribution attribute type in all distutils-based commands</li>
<li><a href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a> Bump version: 72.2.0 → 73.0.0</li>
<li><a href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a> from pypa/bugfix/distutils-284</li>
<li><a href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a> from abravalheri/ordered_set</li>
<li><a href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a> Merge <a href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a> into bugfix/distutils-284</li>
<li><a href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a> Ensure a missing target is still indicated as 'sources are newer' even when t...</li>
<li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v71.1.0...v73.0.1">compare view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
jmertic pushed a commit to jmertic/landscape-tools that referenced this issue Aug 26, 2024
Bumps [setuptools](https://github.com/pypa/setuptools) from 72.2.0 to
73.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v72.2.0...v73.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=72.2.0&new-version=73.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-merge-queue bot pushed a commit to openvinotoolkit/openvino that referenced this issue Aug 26, 2024
….0 in /src/bindings/python (#26195)

Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v73.0.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>Remove <code>abc.ABCMeta</code> metaclass from abstract classes.
<code>pypa/setuptools#4503
&lt;https://github.com/pypa/setuptools/pull/4503&gt;</code>_ had an
unintended consequence of causing potential <code>TypeError: metaclass
conflict: the metaclass of a derived class must be a (non-strict)
subclass of the metaclasses of all its bases</code> -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4579">#4579</a>)</li>
</ul>
<h1>v73.0.0</h1>
<h2>Features</h2>
<ul>
<li>Mark abstract base classes and methods with <code>abc.ABC</code> and
<code>abc.abstractmethod</code> -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4503">#4503</a>)</li>
<li>Changed the order of type checks in
<code>setuptools.command.easy_install.CommandSpec.from_param</code> to
support any <code>collections.abc.Iterable</code> of <code>str</code>
param -- by :user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4505">#4505</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Prevent an error in <code>bdist_wheel</code> if
<code>compression</code> is set to a <code>str</code> (even if valid)
after finalizing options but before running the command. -- by
:user:<code>Avasam</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4383">#4383</a>)</li>
<li>Raises an exception when <code>py_limited_api</code> is used in a
build with
<code>Py_GIL_DISABLED</code><code>python/cpython#111506</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4420">#4420</a>)</li>
<li><code>pypa/distutils#284</code></li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>setuptools</code> is replacing the usages of
:pypi:<code>ordered_set</code> with simple
instances of <code>dict[Hashable, None]</code>. This is done to remove
the extra
dependency and it is possible because since Python 3.7,
<code>dict</code> maintain
insertion order. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4534">#4534</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4546">#4546</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4554">#4554</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4559">#4559</a>,
<a
href="https://redirect.github.com/pypa/setuptools/issues/4565">#4565</a></li>
</ul>
<h1>v72.2.0</h1>
<h2>Features</h2>
<ul>
<li><code>pypa/distutils#272</code><a
href="https://redirect.github.com/pypa/distutils/issues/237">pypa/distutils#237</a><code>pypa/distuils#228</code><a
href="https://redirect.github.com/pypa/setuptools/issues/4538">#4538</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/ebddeb36f72c9d758b5cc0e9f81f8a66aa837d96"><code>ebddeb3</code></a>
Bump version: 73.0.0 → 73.0.1</li>
<li><a
href="https://github.com/pypa/setuptools/commit/18963fb1851d24b89780cc10e213a2779be5f1eb"><code>18963fb</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4580">#4580</a>
from Avasam/no-ABCMeta</li>
<li><a
href="https://github.com/pypa/setuptools/commit/b7ee00da2cfa8208c47812fb657392e8b88f620c"><code>b7ee00d</code></a>
Remove ABCMeta metaclass, keep abstractmethods</li>
<li><a
href="https://github.com/pypa/setuptools/commit/477f713450ff57de126153f3034d032542916d03"><code>477f713</code></a>
Override distribution attribute type in all distutils-based commands (<a
href="https://redirect.github.com/pypa/setuptools/issues/4577">#4577</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/429ac589e5f290282f91b420350b002a2c519699"><code>429ac58</code></a>
Override distribution attribute type in all distutils-based
commands</li>
<li><a
href="https://github.com/pypa/setuptools/commit/4147b093d0aea4f57757c699a0b25bbc3aab2580"><code>4147b09</code></a>
Bump version: 72.2.0 → 73.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2ad8c10d8214340be812769359090c7950a39c35"><code>2ad8c10</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4576">#4576</a>
from pypa/bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/8afe0c3e9c4c56f5d7343dc21f743e9cf83c594a"><code>8afe0c3</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4574">#4574</a>
from abravalheri/ordered_set</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ad611bcaedfefef3480ac111c4f22e2ca8cc7a1c"><code>ad611bc</code></a>
Merge <a
href="https://github.com/pypa/distutils">https://github.com/pypa/distutils</a>
into bugfix/distutils-284</li>
<li><a
href="https://github.com/pypa/setuptools/commit/30b7331b07fbc404959cb37ac311afdfb90813be"><code>30b7331</code></a>
Ensure a missing target is still indicated as 'sources are newer' even
when t...</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v65.6.1...v73.0.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Glyphack pushed a commit to Glyphack/cpython that referenced this issue Sep 2, 2024
…ted C API (python#111508)

In the limited C API version 3.13, Py_SET_REFCNT() function is now
implemented as an opaque function call.

Add _Py_SetRefcnt() to the stable ABI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.13 bugs and security fixes topic-C-API topic-free-threading type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

6 participants