Skip to content

Commit b845a9e

Browse files
authored
gh-109975: What's new in 3.13: Add module headers to removals and sort (#110994)
1 parent 8c689c9 commit b845a9e

File tree

1 file changed

+107
-66
lines changed

1 file changed

+107
-66
lines changed

Doc/whatsnew/3.13.rst

+107-66
Original file line numberDiff line numberDiff line change
@@ -813,37 +813,80 @@ PEP 594: dead batteries
813813
* :mod:`!xdrlib`.
814814
(Contributed by Victor Stinner in :gh:`104773`.)
815815

816-
* Remove support for the keyword-argument method of creating
817-
:class:`typing.TypedDict` types, deprecated in Python 3.11.
818-
(Contributed by Tomas Roun in :gh:`104786`.)
819-
816+
2to3
817+
----
820818

821819
* Remove the ``2to3`` program and the :mod:`!lib2to3` module,
822820
deprecated in Python 3.11.
823821
(Contributed by Victor Stinner in :gh:`104780`.)
824822

825-
* Namespaces ``typing.io`` and ``typing.re``, deprecated in Python 3.8,
826-
are now removed. The items in those namespaces can be imported directly
827-
from :mod:`typing`. (Contributed by Sebastian Rittau in :gh:`92871`.)
828-
829-
* Remove the untested and undocumented :mod:`webbrowser` :class:`!MacOSX` class,
830-
deprecated in Python 3.11.
831-
Use the :class:`!MacOSXOSAScript` class (introduced in Python 3.2) instead.
832-
(Contributed by Hugo van Kemenade in :gh:`104804`.)
833-
834-
* Remove support for using :class:`pathlib.Path` objects as context managers.
835-
This functionality was deprecated and made a no-op in Python 3.9.
823+
configparser
824+
------------
836825

837826
* Remove the undocumented :class:`!configparser.LegacyInterpolation` class,
838827
deprecated in the docstring since Python 3.2,
839828
and with a deprecation warning since Python 3.11.
840829
(Contributed by Hugo van Kemenade in :gh:`104886`.)
841830

831+
locale
832+
------
833+
834+
* Remove ``locale.resetlocale()`` function deprecated in Python 3.11:
835+
use ``locale.setlocale(locale.LC_ALL, "")`` instead.
836+
(Contributed by Victor Stinner in :gh:`104783`.)
837+
838+
logging
839+
-------
840+
841+
* :mod:`logging`: Remove undocumented and untested ``Logger.warn()`` and
842+
``LoggerAdapter.warn()`` methods and ``logging.warn()`` function. Deprecated
843+
since Python 3.3, they were aliases to the :meth:`logging.Logger.warning`
844+
method, :meth:`!logging.LoggerAdapter.warning` method and
845+
:func:`logging.warning` function.
846+
(Contributed by Victor Stinner in :gh:`105376`.)
847+
848+
pathlib
849+
-------
850+
851+
* Remove support for using :class:`pathlib.Path` objects as context managers.
852+
This functionality was deprecated and made a no-op in Python 3.9.
853+
854+
re
855+
--
856+
857+
* Remove undocumented, never working, and deprecated ``re.template`` function
858+
and ``re.TEMPLATE`` flag (and ``re.T`` alias).
859+
(Contributed by Serhiy Storchaka and Nikita Sobolev in :gh:`105687`.)
860+
861+
tkinter
862+
-------
863+
864+
* Remove the :mod:`!tkinter.tix` module, deprecated in Python 3.6. The
865+
third-party Tix library which the module wrapped is unmaintained.
866+
(Contributed by Zachary Ware in :gh:`75552`.)
867+
868+
turtle
869+
------
870+
842871
* Remove the :meth:`!turtle.RawTurtle.settiltangle` method,
843872
deprecated in docs since Python 3.1
844873
and with a deprecation warning since Python 3.11.
845874
(Contributed by Hugo van Kemenade in :gh:`104876`.)
846875

876+
typing
877+
------
878+
879+
* Namespaces ``typing.io`` and ``typing.re``, deprecated in Python 3.8,
880+
are now removed. The items in those namespaces can be imported directly
881+
from :mod:`typing`. (Contributed by Sebastian Rittau in :gh:`92871`.)
882+
883+
* Remove support for the keyword-argument method of creating
884+
:class:`typing.TypedDict` types, deprecated in Python 3.11.
885+
(Contributed by Tomas Roun in :gh:`104786`.)
886+
887+
unittest
888+
--------
889+
847890
* Removed the following :mod:`unittest` functions, deprecated in Python 3.11:
848891

849892
* :func:`!unittest.findTestCases`
@@ -862,26 +905,8 @@ PEP 594: dead batteries
862905
method, deprecated in Python 3.11.
863906
(Contributed by Hugo van Kemenade in :gh:`104992`.)
864907

865-
* Remove the :mod:`!tkinter.tix` module, deprecated in Python 3.6. The
866-
third-party Tix library which the module wrapped is unmaintained.
867-
(Contributed by Zachary Ware in :gh:`75552`.)
868-
869-
* Remove the old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and
870-
``Py_TRASHCAN_SAFE_END``. They should be replaced by the new macros
871-
``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``. The new macros were
872-
added in Python 3.8 and the old macros were deprecated in Python 3.11.
873-
(Contributed by Irit Katriel in :gh:`105111`.)
874-
875-
* Remove ``locale.resetlocale()`` function deprecated in Python 3.11:
876-
use ``locale.setlocale(locale.LC_ALL, "")`` instead.
877-
(Contributed by Victor Stinner in :gh:`104783`.)
878-
879-
* :mod:`logging`: Remove undocumented and untested ``Logger.warn()`` and
880-
``LoggerAdapter.warn()`` methods and ``logging.warn()`` function. Deprecated
881-
since Python 3.3, they were aliases to the :meth:`logging.Logger.warning`
882-
method, :meth:`!logging.LoggerAdapter.warning` method and
883-
:func:`logging.warning` function.
884-
(Contributed by Victor Stinner in :gh:`105376`.)
908+
urllib
909+
------
885910

886911
* Remove *cafile*, *capath* and *cadefault* parameters of the
887912
:func:`urllib.request.urlopen` function, deprecated in Python 3.6: use the
@@ -891,50 +916,31 @@ PEP 594: dead batteries
891916
certificates for you.
892917
(Contributed by Victor Stinner in :gh:`105382`.)
893918

919+
webbrowser
920+
----------
921+
922+
* Remove the untested and undocumented :mod:`webbrowser` :class:`!MacOSX` class,
923+
deprecated in Python 3.11.
924+
Use the :class:`!MacOSXOSAScript` class (introduced in Python 3.2) instead.
925+
(Contributed by Hugo van Kemenade in :gh:`104804`.)
926+
894927
* Remove deprecated ``webbrowser.MacOSXOSAScript._name`` attribute.
895928
Use :attr:`webbrowser.MacOSXOSAScript.name <webbrowser.controller.name>`
896929
attribute instead.
897930
(Contributed by Nikita Sobolev in :gh:`105546`.)
898931

899-
* Remove undocumented, never working, and deprecated ``re.template`` function
900-
and ``re.TEMPLATE`` flag (and ``re.T`` alias).
901-
(Contributed by Serhiy Storchaka and Nikita Sobolev in :gh:`105687`.)
932+
Others
933+
------
902934

935+
* None yet
903936

904937
Porting to Python 3.13
905938
======================
906939

907940
This section lists previously described changes and other bugfixes
908941
that may require changes to your code.
909942

910-
* The old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and ``Py_TRASHCAN_SAFE_END``
911-
were removed. They should be replaced by the new macros ``Py_TRASHCAN_BEGIN``
912-
and ``Py_TRASHCAN_END``.
913-
914-
A tp_dealloc function that has the old macros, such as::
915-
916-
static void
917-
mytype_dealloc(mytype *p)
918-
{
919-
PyObject_GC_UnTrack(p);
920-
Py_TRASHCAN_SAFE_BEGIN(p);
921-
...
922-
Py_TRASHCAN_SAFE_END
923-
}
924-
925-
should migrate to the new macros as follows::
926-
927-
static void
928-
mytype_dealloc(mytype *p)
929-
{
930-
PyObject_GC_UnTrack(p);
931-
Py_TRASHCAN_BEGIN(p, mytype_dealloc)
932-
...
933-
Py_TRASHCAN_END
934-
}
935-
936-
Note that ``Py_TRASHCAN_BEGIN`` has a second argument which
937-
should be the deallocation function it is in.
943+
* None yet
938944

939945

940946
Build Changes
@@ -1130,6 +1136,35 @@ Porting to Python 3.13
11301136
are now undefined by ``<Python.h>``.
11311137
(Contributed by Victor Stinner in :gh:`85283`.)
11321138

1139+
* The old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and ``Py_TRASHCAN_SAFE_END``
1140+
were removed. They should be replaced by the new macros ``Py_TRASHCAN_BEGIN``
1141+
and ``Py_TRASHCAN_END``.
1142+
1143+
A tp_dealloc function that has the old macros, such as::
1144+
1145+
static void
1146+
mytype_dealloc(mytype *p)
1147+
{
1148+
PyObject_GC_UnTrack(p);
1149+
Py_TRASHCAN_SAFE_BEGIN(p);
1150+
...
1151+
Py_TRASHCAN_SAFE_END
1152+
}
1153+
1154+
should migrate to the new macros as follows::
1155+
1156+
static void
1157+
mytype_dealloc(mytype *p)
1158+
{
1159+
PyObject_GC_UnTrack(p);
1160+
Py_TRASHCAN_BEGIN(p, mytype_dealloc)
1161+
...
1162+
Py_TRASHCAN_END
1163+
}
1164+
1165+
Note that ``Py_TRASHCAN_BEGIN`` has a second argument which
1166+
should be the deallocation function it is in.
1167+
11331168
* The :c:func:`PyUnicode_AsUTF8` function now raises an exception if the string
11341169
contains embedded null characters. To accept embedded null characters and
11351170
truncate on purpose at the first null byte,
@@ -1264,6 +1299,12 @@ Removed
12641299
Configuration <init-config>` instead (:pep:`587`), added to Python 3.8.
12651300
(Contributed by Victor Stinner in :gh:`105145`.)
12661301

1302+
* Remove the old trashcan macros ``Py_TRASHCAN_SAFE_BEGIN`` and
1303+
``Py_TRASHCAN_SAFE_END``. They should be replaced by the new macros
1304+
``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``. The new macros were
1305+
added in Python 3.8 and the old macros were deprecated in Python 3.11.
1306+
(Contributed by Irit Katriel in :gh:`105111`.)
1307+
12671308
* Remove ``PyEval_InitThreads()`` and ``PyEval_ThreadsInitialized()``
12681309
functions, deprecated in Python 3.9. Since Python 3.7, ``Py_Initialize()``
12691310
always creates the GIL: calling ``PyEval_InitThreads()`` did nothing and

0 commit comments

Comments
 (0)