Skip to content

Commit d57b2d8

Browse files
authored
gh-77782: Postpone Py_VerboseFlag removal to Python 3.15 (#129024)
Postpone the global configuration variables removal to Python 3.15. Do the same for PySys_SetArgvEx(), PySys_SetArgv(), Py_SetProgramName() and Py_SetPythonHome().
1 parent 6c52ada commit d57b2d8

File tree

2 files changed

+83
-64
lines changed

2 files changed

+83
-64
lines changed

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

-64
Original file line numberDiff line numberDiff line change
@@ -6,67 +6,3 @@ Pending removal in Python 3.14
66

77
* Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable
88
bases (:gh:`95388`).
9-
10-
* Functions to configure Python's initialization, deprecated in Python 3.11:
11-
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.
20-
21-
The :c:func:`Py_InitializeFromConfig` API should be used with
22-
:c:type:`PyConfig` instead.
23-
24-
* Global configuration variables:
25-
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`
54-
and :c:member:`PyConfig.hash_seed` instead.
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`)
70-
71-
The :c:func:`Py_InitializeFromConfig` API should be used with
72-
:c:type:`PyConfig` instead.

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

+83
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,86 @@ Pending removal in Python 3.15
2525
* :c:func:`Py_GetPythonHome`:
2626
Get :c:member:`PyConfig.home`
2727
or the :envvar:`PYTHONHOME` environment variable instead.
28+
29+
* Functions to configure Python's initialization, deprecated in Python 3.11:
30+
31+
* :c:func:`!PySys_SetArgvEx()`:
32+
Set :c:member:`PyConfig.argv` instead.
33+
* :c:func:`!PySys_SetArgv()`:
34+
Set :c:member:`PyConfig.argv` instead.
35+
* :c:func:`!Py_SetProgramName()`:
36+
Set :c:member:`PyConfig.program_name` instead.
37+
* :c:func:`!Py_SetPythonHome()`:
38+
Set :c:member:`PyConfig.home` instead.
39+
40+
The :c:func:`Py_InitializeFromConfig` API should be used with
41+
:c:type:`PyConfig` instead.
42+
43+
* Global configuration variables:
44+
45+
* :c:var:`Py_DebugFlag`:
46+
Use :c:member:`PyConfig.parser_debug` or
47+
:c:func:`PyConfig_Get("parser_debug") <PyConfig_Get>` instead.
48+
* :c:var:`Py_VerboseFlag`:
49+
Use :c:member:`PyConfig.verbose` or
50+
:c:func:`PyConfig_Get("verbose") <PyConfig_Get>` instead.
51+
* :c:var:`Py_QuietFlag`:
52+
Use :c:member:`PyConfig.quiet` or
53+
:c:func:`PyConfig_Get("quiet") <PyConfig_Get>` instead.
54+
* :c:var:`Py_InteractiveFlag`:
55+
Use :c:member:`PyConfig.interactive` or
56+
:c:func:`PyConfig_Get("interactive") <PyConfig_Get>` instead.
57+
* :c:var:`Py_InspectFlag`:
58+
Use :c:member:`PyConfig.inspect` or
59+
:c:func:`PyConfig_Get("inspect") <PyConfig_Get>` instead.
60+
* :c:var:`Py_OptimizeFlag`:
61+
Use :c:member:`PyConfig.optimization_level` or
62+
:c:func:`PyConfig_Get("optimization_level") <PyConfig_Get>` instead.
63+
* :c:var:`Py_NoSiteFlag`:
64+
Use :c:member:`PyConfig.site_import` or
65+
:c:func:`PyConfig_Get("site_import") <PyConfig_Get>` instead.
66+
* :c:var:`Py_BytesWarningFlag`:
67+
Use :c:member:`PyConfig.bytes_warning` or
68+
:c:func:`PyConfig_Get("bytes_warning") <PyConfig_Get>` instead.
69+
* :c:var:`Py_FrozenFlag`:
70+
Use :c:member:`PyConfig.pathconfig_warnings` or
71+
:c:func:`PyConfig_Get("pathconfig_warnings") <PyConfig_Get>` instead.
72+
* :c:var:`Py_IgnoreEnvironmentFlag`:
73+
Use :c:member:`PyConfig.use_environment` or
74+
:c:func:`PyConfig_Get("use_environment") <PyConfig_Get>` instead.
75+
* :c:var:`Py_DontWriteBytecodeFlag`:
76+
Use :c:member:`PyConfig.write_bytecode` or
77+
:c:func:`PyConfig_Get("write_bytecode") <PyConfig_Get>` instead.
78+
* :c:var:`Py_NoUserSiteDirectory`:
79+
Use :c:member:`PyConfig.user_site_directory` or
80+
:c:func:`PyConfig_Get("user_site_directory") <PyConfig_Get>` instead.
81+
* :c:var:`Py_UnbufferedStdioFlag`:
82+
Use :c:member:`PyConfig.buffered_stdio` or
83+
:c:func:`PyConfig_Get("buffered_stdio") <PyConfig_Get>` instead.
84+
* :c:var:`Py_HashRandomizationFlag`:
85+
Use :c:member:`PyConfig.use_hash_seed`
86+
and :c:member:`PyConfig.hash_seed` or
87+
:c:func:`PyConfig_Get("hash_seed") <PyConfig_Get>` instead.
88+
* :c:var:`Py_IsolatedFlag`:
89+
Use :c:member:`PyConfig.isolated` or
90+
:c:func:`PyConfig_Get("isolated") <PyConfig_Get>` instead.
91+
* :c:var:`Py_LegacyWindowsFSEncodingFlag`:
92+
Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` or
93+
:c:func:`PyConfig_Get("legacy_windows_fs_encoding") <PyConfig_Get>` instead.
94+
* :c:var:`Py_LegacyWindowsStdioFlag`:
95+
Use :c:member:`PyConfig.legacy_windows_stdio` or
96+
:c:func:`PyConfig_Get("legacy_windows_stdio") <PyConfig_Get>` instead.
97+
* :c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!Py_HasFileSystemDefaultEncoding`:
98+
Use :c:member:`PyConfig.filesystem_encoding` or
99+
:c:func:`PyConfig_Get("filesystem_encoding") <PyConfig_Get>` instead.
100+
* :c:var:`!Py_FileSystemDefaultEncodeErrors`:
101+
Use :c:member:`PyConfig.filesystem_errors` or
102+
:c:func:`PyConfig_Get("filesystem_errors") <PyConfig_Get>` instead.
103+
* :c:var:`!Py_UTF8Mode`:
104+
Use :c:member:`PyPreConfig.utf8_mode` or
105+
:c:func:`PyConfig_Get("utf8_mode") <PyConfig_Get>` instead.
106+
(see :c:func:`Py_PreInitialize`)
107+
108+
The :c:func:`Py_InitializeFromConfig` API should be used with
109+
:c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can be
110+
used to get these options at runtime.

0 commit comments

Comments
 (0)