Skip to content

Commit e7d465a

Browse files
authored
GH-109975: Copyedit 3.13 What's New: Copyedit C API deprecations pending removal (#124336)
1 parent f3b2c36 commit e7d465a

File tree

4 files changed

+114
-60
lines changed

4 files changed

+114
-60
lines changed

Doc/deprecations/c-api-pending-removal-in-3.14.rst

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,38 +9,64 @@ Pending Removal in Python 3.14
99

1010
* Functions to configure Python's initialization, deprecated in Python 3.11:
1111

12-
* ``PySys_SetArgvEx()``: set :c:member:`PyConfig.argv` instead.
13-
* ``PySys_SetArgv()``: set :c:member:`PyConfig.argv` instead.
14-
* ``Py_SetProgramName()``: set :c:member:`PyConfig.program_name` instead.
15-
* ``Py_SetPythonHome()``: set :c:member:`PyConfig.home` instead.
12+
* :c:func:`!PySys_SetArgvEx()`:
13+
Set :c:member:`PyConfig.argv` instead.
14+
* :c:func:`!PySys_SetArgv()`:
15+
Set :c:member:`PyConfig.argv` instead.
16+
* :c:func:`!Py_SetProgramName()`:
17+
Set :c:member:`PyConfig.program_name` instead.
18+
* :c:func:`!Py_SetPythonHome()`:
19+
Set :c:member:`PyConfig.home` instead.
1620

1721
The :c:func:`Py_InitializeFromConfig` API should be used with
1822
:c:type:`PyConfig` instead.
1923

2024
* Global configuration variables:
2125

22-
* :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug` instead.
23-
* :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose` instead.
24-
* :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet` instead.
25-
* :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive` instead.
26-
* :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect` instead.
27-
* :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level` instead.
28-
* :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import` instead.
29-
* :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning` instead.
30-
* :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings` instead.
31-
* :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment` instead.
32-
* :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode` instead.
33-
* :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory` instead.
34-
* :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio` instead.
35-
* :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed`
26+
* :c:var:`Py_DebugFlag`:
27+
Use :c:member:`PyConfig.parser_debug` instead.
28+
* :c:var:`Py_VerboseFlag`:
29+
Use :c:member:`PyConfig.verbose` instead.
30+
* :c:var:`Py_QuietFlag`:
31+
Use :c:member:`PyConfig.quiet` instead.
32+
* :c:var:`Py_InteractiveFlag`:
33+
Use :c:member:`PyConfig.interactive` instead.
34+
* :c:var:`Py_InspectFlag`:
35+
Use :c:member:`PyConfig.inspect` instead.
36+
* :c:var:`Py_OptimizeFlag`:
37+
Use :c:member:`PyConfig.optimization_level` instead.
38+
* :c:var:`Py_NoSiteFlag`:
39+
Use :c:member:`PyConfig.site_import` instead.
40+
* :c:var:`Py_BytesWarningFlag`:
41+
Use :c:member:`PyConfig.bytes_warning` instead.
42+
* :c:var:`Py_FrozenFlag`:
43+
Use :c:member:`PyConfig.pathconfig_warnings` instead.
44+
* :c:var:`Py_IgnoreEnvironmentFlag`:
45+
Use :c:member:`PyConfig.use_environment` instead.
46+
* :c:var:`Py_DontWriteBytecodeFlag`:
47+
Use :c:member:`PyConfig.write_bytecode` instead.
48+
* :c:var:`Py_NoUserSiteDirectory`:
49+
Use :c:member:`PyConfig.user_site_directory` instead.
50+
* :c:var:`Py_UnbufferedStdioFlag`:
51+
Use :c:member:`PyConfig.buffered_stdio` instead.
52+
* :c:var:`Py_HashRandomizationFlag`:
53+
Use :c:member:`PyConfig.use_hash_seed`
3654
and :c:member:`PyConfig.hash_seed` instead.
37-
* :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated` instead.
38-
* :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig.legacy_windows_fs_encoding` instead.
39-
* :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio` instead.
40-
* :c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding` instead.
41-
* :c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding` instead.
42-
* :c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors` instead.
43-
* :c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` instead. (see :c:func:`Py_PreInitialize`)
55+
* :c:var:`Py_IsolatedFlag`:
56+
Use :c:member:`PyConfig.isolated` instead.
57+
* :c:var:`Py_LegacyWindowsFSEncodingFlag`:
58+
Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` instead.
59+
* :c:var:`Py_LegacyWindowsStdioFlag`:
60+
Use :c:member:`PyConfig.legacy_windows_stdio` instead.
61+
* :c:var:`!Py_FileSystemDefaultEncoding`:
62+
Use :c:member:`PyConfig.filesystem_encoding` instead.
63+
* :c:var:`!Py_HasFileSystemDefaultEncoding`:
64+
Use :c:member:`PyConfig.filesystem_encoding` instead.
65+
* :c:var:`!Py_FileSystemDefaultEncodeErrors`:
66+
Use :c:member:`PyConfig.filesystem_errors` instead.
67+
* :c:var:`!Py_UTF8Mode`:
68+
Use :c:member:`PyPreConfig.utf8_mode` instead.
69+
(see :c:func:`Py_PreInitialize`)
4470

4571
The :c:func:`Py_InitializeFromConfig` API should be used with
4672
:c:type:`PyConfig` instead.

Doc/deprecations/c-api-pending-removal-in-3.15.rst

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,26 @@ Pending Removal in Python 3.15
22
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
33

44
* The bundled copy of ``libmpdecimal``.
5-
* :c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule` instead.
6-
* :c:func:`PyWeakref_GET_OBJECT`: use :c:func:`PyWeakref_GetRef` instead.
7-
* :c:func:`PyWeakref_GetObject`: use :c:func:`PyWeakref_GetRef` instead.
8-
* :c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t` instead.
9-
* :c:type:`Py_UNICODE` type: use :c:type:`wchar_t` instead.
5+
* The :c:func:`PyImport_ImportModuleNoBlock`:
6+
Use :c:func:`PyImport_ImportModule` instead.
7+
* :c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`:
8+
Use :c:func:`PyWeakref_GetRef` instead.
9+
* :c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro:
10+
Use :c:type:`wchar_t` instead.
1011
* Python initialization functions:
1112

12-
* :c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and
13-
:data:`!warnings.filters` instead.
14-
* :c:func:`Py_GetExecPrefix`: get :data:`sys.exec_prefix` instead.
15-
* :c:func:`Py_GetPath`: get :data:`sys.path` instead.
16-
* :c:func:`Py_GetPrefix`: get :data:`sys.prefix` instead.
17-
* :c:func:`Py_GetProgramFullPath`: get :data:`sys.executable` instead.
18-
* :c:func:`Py_GetProgramName`: get :data:`sys.executable` instead.
19-
* :c:func:`Py_GetPythonHome`: get :c:member:`PyConfig.home` or
20-
the :envvar:`PYTHONHOME` environment variable instead.
13+
* :c:func:`PySys_ResetWarnOptions`:
14+
Clear :data:`sys.warnoptions` and :data:`!warnings.filters` instead.
15+
* :c:func:`Py_GetExecPrefix`:
16+
Get :data:`sys.exec_prefix` instead.
17+
* :c:func:`Py_GetPath`:
18+
Get :data:`sys.path` instead.
19+
* :c:func:`Py_GetPrefix`:
20+
Get :data:`sys.prefix` instead.
21+
* :c:func:`Py_GetProgramFullPath`:
22+
Get :data:`sys.executable` instead.
23+
* :c:func:`Py_GetProgramName`:
24+
Get :data:`sys.executable` instead.
25+
* :c:func:`Py_GetPythonHome`:
26+
Get :c:member:`PyConfig.home`
27+
or the :envvar:`PYTHONHOME` environment variable instead.

Doc/deprecations/c-api-pending-removal-in-future.rst

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,48 @@ Pending Removal in Future Versions
44
The following APIs are deprecated and will be removed,
55
although there is currently no date scheduled for their removal.
66

7-
* :c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: unneeded since Python 3.8.
8-
* :c:func:`PyErr_Fetch`: use :c:func:`PyErr_GetRaisedException` instead.
9-
* :c:func:`PyErr_NormalizeException`: use :c:func:`PyErr_GetRaisedException` instead.
10-
* :c:func:`PyErr_Restore`: use :c:func:`PyErr_SetRaisedException` instead.
11-
* :c:func:`PyModule_GetFilename`: use :c:func:`PyModule_GetFilenameObject` instead.
12-
* :c:func:`PyOS_AfterFork`: use :c:func:`PyOS_AfterFork_Child` instead.
13-
* :c:func:`PySlice_GetIndicesEx`: use :c:func:`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices` instead.
14-
* :c:func:`!PyUnicode_AsDecodedObject`: use :c:func:`PyCodec_Decode` instead.
15-
* :c:func:`!PyUnicode_AsDecodedUnicode`: use :c:func:`PyCodec_Decode` instead.
16-
* :c:func:`!PyUnicode_AsEncodedObject`: use :c:func:`PyCodec_Encode` instead.
17-
* :c:func:`!PyUnicode_AsEncodedUnicode`: use :c:func:`PyCodec_Encode` instead.
18-
* :c:func:`PyUnicode_READY`: unneeded since Python 3.12
19-
* :c:func:`!PyErr_Display`: use :c:func:`PyErr_DisplayException` instead.
20-
* :c:func:`!_PyErr_ChainExceptions`: use ``_PyErr_ChainExceptions1`` instead.
7+
* :c:macro:`Py_TPFLAGS_HAVE_FINALIZE`:
8+
Unneeded since Python 3.8.
9+
* :c:func:`PyErr_Fetch`:
10+
Use :c:func:`PyErr_GetRaisedException` instead.
11+
* :c:func:`PyErr_NormalizeException`:
12+
Use :c:func:`PyErr_GetRaisedException` instead.
13+
* :c:func:`PyErr_Restore`:
14+
Use :c:func:`PyErr_SetRaisedException` instead.
15+
* :c:func:`PyModule_GetFilename`:
16+
Use :c:func:`PyModule_GetFilenameObject` instead.
17+
* :c:func:`PyOS_AfterFork`:
18+
Use :c:func:`PyOS_AfterFork_Child` instead.
19+
* :c:func:`PySlice_GetIndicesEx`:
20+
Use :c:func:`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices` instead.
21+
* :c:func:`!PyUnicode_AsDecodedObject`:
22+
Use :c:func:`PyCodec_Decode` instead.
23+
* :c:func:`!PyUnicode_AsDecodedUnicode`:
24+
Use :c:func:`PyCodec_Decode` instead.
25+
* :c:func:`!PyUnicode_AsEncodedObject`:
26+
Use :c:func:`PyCodec_Encode` instead.
27+
* :c:func:`!PyUnicode_AsEncodedUnicode`:
28+
Use :c:func:`PyCodec_Encode` instead.
29+
* :c:func:`PyUnicode_READY`:
30+
Unneeded since Python 3.12
31+
* :c:func:`!PyErr_Display`:
32+
Use :c:func:`PyErr_DisplayException` instead.
33+
* :c:func:`!_PyErr_ChainExceptions`:
34+
Use :c:func:`!_PyErr_ChainExceptions1` instead.
2135
* :c:member:`!PyBytesObject.ob_shash` member:
2236
call :c:func:`PyObject_Hash` instead.
2337
* :c:member:`!PyDictObject.ma_version_tag` member.
2438
* Thread Local Storage (TLS) API:
2539

26-
* :c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc` instead.
27-
* :c:func:`PyThread_delete_key`: use :c:func:`PyThread_tss_free` instead.
28-
* :c:func:`PyThread_set_key_value`: use :c:func:`PyThread_tss_set` instead.
29-
* :c:func:`PyThread_get_key_value`: use :c:func:`PyThread_tss_get` instead.
30-
* :c:func:`PyThread_delete_key_value`: use :c:func:`PyThread_tss_delete` instead.
31-
* :c:func:`PyThread_ReInitTLS`: unneeded since Python 3.7.
40+
* :c:func:`PyThread_create_key`:
41+
Use :c:func:`PyThread_tss_alloc` instead.
42+
* :c:func:`PyThread_delete_key`:
43+
Use :c:func:`PyThread_tss_free` instead.
44+
* :c:func:`PyThread_set_key_value`:
45+
Use :c:func:`PyThread_tss_set` instead.
46+
* :c:func:`PyThread_get_key_value`:
47+
Use :c:func:`PyThread_tss_get` instead.
48+
* :c:func:`PyThread_delete_key_value`:
49+
Use :c:func:`PyThread_tss_delete` instead.
50+
* :c:func:`PyThread_ReInitTLS`:
51+
Unneeded since Python 3.7.

Doc/whatsnew/3.13.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2489,7 +2489,8 @@ Deprecated C APIs
24892489
or :c:func:`PyModule_AddObjectRef`.
24902490
(Contributed by Serhiy Storchaka in :gh:`86493`.)
24912491

2492-
* Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types.
2492+
* Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types
2493+
and the :c:macro:`!Py_UNICODE_WIDE` define.
24932494
Use the :c:type:`wchar_t` type directly instead.
24942495
Since Python 3.3, ``Py_UNICODE`` and ``PY_UNICODE_TYPE``
24952496
are just aliases to :c:type:`!wchar_t`.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy