https://github.com/python/cpython/commit/249b083ed8b3cfdff30bf578d7f9d3c5e982a4eb
commit: 249b083ed8b3cfdff30bf578d7f9d3c5e982a4eb
branch: main
author: Kirill Podoprigora <[email protected]>
committer: hauntsaninja <[email protected]>
date: 2024-08-25T12:24:44-07:00
summary:
gh-122982: Extend the deprecation period for bool inversion by two years
(#123306)
files:
A Misc/NEWS.d/next/Core and
Builtins/2024-08-25-10-54-22.gh-issue-122982.KLD91q.rst
M Doc/deprecations/pending-removal-in-3.16.rst
M Doc/deprecations/pending-removal-in-future.rst
M Doc/library/stdtypes.rst
M Doc/whatsnew/3.12.rst
M Objects/boolobject.c
diff --git a/Doc/deprecations/pending-removal-in-3.16.rst
b/Doc/deprecations/pending-removal-in-3.16.rst
index de134f8e2ee9d3..e50e3fc1b37cbe 100644
--- a/Doc/deprecations/pending-removal-in-3.16.rst
+++ b/Doc/deprecations/pending-removal-in-3.16.rst
@@ -5,6 +5,9 @@ Pending Removal in Python 3.16
:class:`array.array` ``'u'`` type (:c:type:`wchar_t`):
use the ``'w'`` type instead (``Py_UCS4``).
+* :mod:`builtins`:
+ ``~bool``, bitwise inversion on bool.
+
* :mod:`symtable`:
Deprecate :meth:`symtable.Class.get_methods` due to the lack of interest.
(Contributed by Bénédikt Tran in :gh:`119698`.)
diff --git a/Doc/deprecations/pending-removal-in-future.rst
b/Doc/deprecations/pending-removal-in-future.rst
index 6942b9d62cb8f2..ae33236a6cf604 100644
--- a/Doc/deprecations/pending-removal-in-future.rst
+++ b/Doc/deprecations/pending-removal-in-future.rst
@@ -11,7 +11,6 @@ although there is currently no date scheduled for their
removal.
* :mod:`builtins`:
- * ``~bool``, bitwise inversion on bool.
* ``bool(NotImplemented)``.
* Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)``
signature is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead,
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 01121feb2b2311..088735bdccab07 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -868,7 +868,7 @@ over ``&``, ``|`` and ``^``.
.. deprecated:: 3.12
The use of the bitwise inversion operator ``~`` is deprecated and will
- raise an error in Python 3.14.
+ raise an error in Python 3.16.
:class:`bool` is a subclass of :class:`int` (see :ref:`typesnumeric`). In
many numeric contexts, ``False`` and ``True`` behave like the integers 0 and
1, respectively.
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst
index 3821ee3648e909..a240c1fb4cebe6 100644
--- a/Doc/whatsnew/3.12.rst
+++ b/Doc/whatsnew/3.12.rst
@@ -1319,7 +1319,7 @@ Deprecated
(Contributed by Brett Cannon in :gh:`65961`.)
* The bitwise inversion operator (``~``) on bool is deprecated. It will throw
an
- error in Python 3.14. Use ``not`` for logical negation of bools instead.
+ error in Python 3.16. Use ``not`` for logical negation of bools instead.
In the rare case that you really need the bitwise inversion of the underlying
``int``, convert to int explicitly: ``~int(x)``. (Contributed by Tim Hoffmann
in :gh:`103487`.)
diff --git a/Misc/NEWS.d/next/Core and
Builtins/2024-08-25-10-54-22.gh-issue-122982.KLD91q.rst b/Misc/NEWS.d/next/Core
and Builtins/2024-08-25-10-54-22.gh-issue-122982.KLD91q.rst
new file mode 100644
index 00000000000000..64882df6af10d2
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and
Builtins/2024-08-25-10-54-22.gh-issue-122982.KLD91q.rst
@@ -0,0 +1 @@
+Extend the deprecation period for bool inversion (``~``) by two years.
diff --git a/Objects/boolobject.c b/Objects/boolobject.c
index fb48dcbeca7850..a88a8ad0cfd560 100644
--- a/Objects/boolobject.c
+++ b/Objects/boolobject.c
@@ -71,8 +71,8 @@ static PyObject *
bool_invert(PyObject *v)
{
if (PyErr_WarnEx(PyExc_DeprecationWarning,
- "Bitwise inversion '~' on bool is deprecated. This "
- "returns the bitwise inversion of the underlying int "
+ "Bitwise inversion '~' on bool is deprecated and will be
removed in "
+ "Python 3.16. This returns the bitwise inversion of the
underlying int "
"object and is usually not what you expect from negating "
"a bool. Use the 'not' operator for boolean negation or "
"~int(x) if you really want the bitwise inversion of the "
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]