@@ -813,37 +813,80 @@ PEP 594: dead batteries
813
813
* :mod: `!xdrlib `.
814
814
(Contributed by Victor Stinner in :gh: `104773 `.)
815
815
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
+ ----
820
818
821
819
* Remove the ``2to3 `` program and the :mod: `!lib2to3 ` module,
822
820
deprecated in Python 3.11.
823
821
(Contributed by Victor Stinner in :gh: `104780 `.)
824
822
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
+ ------------
836
825
837
826
* Remove the undocumented :class: `!configparser.LegacyInterpolation ` class,
838
827
deprecated in the docstring since Python 3.2,
839
828
and with a deprecation warning since Python 3.11.
840
829
(Contributed by Hugo van Kemenade in :gh: `104886 `.)
841
830
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
+
842
871
* Remove the :meth: `!turtle.RawTurtle.settiltangle ` method,
843
872
deprecated in docs since Python 3.1
844
873
and with a deprecation warning since Python 3.11.
845
874
(Contributed by Hugo van Kemenade in :gh: `104876 `.)
846
875
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
+
847
890
* Removed the following :mod: `unittest ` functions, deprecated in Python 3.11:
848
891
849
892
* :func: `!unittest.findTestCases `
@@ -862,26 +905,8 @@ PEP 594: dead batteries
862
905
method, deprecated in Python 3.11.
863
906
(Contributed by Hugo van Kemenade in :gh: `104992 `.)
864
907
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
+ ------
885
910
886
911
* Remove *cafile *, *capath * and *cadefault * parameters of the
887
912
:func: `urllib.request.urlopen ` function, deprecated in Python 3.6: use the
@@ -891,50 +916,31 @@ PEP 594: dead batteries
891
916
certificates for you.
892
917
(Contributed by Victor Stinner in :gh: `105382 `.)
893
918
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
+
894
927
* Remove deprecated ``webbrowser.MacOSXOSAScript._name `` attribute.
895
928
Use :attr: `webbrowser.MacOSXOSAScript.name <webbrowser.controller.name> `
896
929
attribute instead.
897
930
(Contributed by Nikita Sobolev in :gh: `105546 `.)
898
931
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
+ ------
902
934
935
+ * None yet
903
936
904
937
Porting to Python 3.13
905
938
======================
906
939
907
940
This section lists previously described changes and other bugfixes
908
941
that may require changes to your code.
909
942
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
938
944
939
945
940
946
Build Changes
@@ -1130,6 +1136,35 @@ Porting to Python 3.13
1130
1136
are now undefined by ``<Python.h> ``.
1131
1137
(Contributed by Victor Stinner in :gh: `85283 `.)
1132
1138
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
+
1133
1168
* The :c:func: `PyUnicode_AsUTF8 ` function now raises an exception if the string
1134
1169
contains embedded null characters. To accept embedded null characters and
1135
1170
truncate on purpose at the first null byte,
@@ -1264,6 +1299,12 @@ Removed
1264
1299
Configuration <init-config>` instead (:pep: `587 `), added to Python 3.8.
1265
1300
(Contributed by Victor Stinner in :gh: `105145 `.)
1266
1301
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
+
1267
1308
* Remove ``PyEval_InitThreads() `` and ``PyEval_ThreadsInitialized() ``
1268
1309
functions, deprecated in Python 3.9. Since Python 3.7, ``Py_Initialize() ``
1269
1310
always creates the GIL: calling ``PyEval_InitThreads() `` did nothing and
0 commit comments