Skip to content

Commit ffe70c4

Browse files
authored
gh-105373: Remove C API global config vars in Python 3.14 (#106538)
Schedule the removal of C API global configuration variables in Python 3.14. Announce the removal to help C extension maintainers to upgrade their code.
1 parent 1b29381 commit ffe70c4

File tree

2 files changed

+47
-44
lines changed

2 files changed

+47
-44
lines changed

Doc/c-api/init.rst

+16-16
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
8787

8888
Set by the :option:`-b` option.
8989

90-
.. deprecated:: 3.12
90+
.. deprecated-removed:: 3.12 3.14
9191

9292
.. c:var:: int Py_DebugFlag
9393
@@ -101,7 +101,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
101101
Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment
102102
variable.
103103

104-
.. deprecated:: 3.12
104+
.. deprecated-removed:: 3.12 3.14
105105

106106
.. c:var:: int Py_DontWriteBytecodeFlag
107107
@@ -115,7 +115,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
115115
Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE`
116116
environment variable.
117117

118-
.. deprecated:: 3.12
118+
.. deprecated-removed:: 3.12 3.14
119119

120120
.. c:var:: int Py_FrozenFlag
121121
@@ -128,7 +128,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
128128

129129
Private flag used by ``_freeze_module`` and ``frozenmain`` programs.
130130

131-
.. deprecated:: 3.12
131+
.. deprecated-removed:: 3.12 3.14
132132

133133
.. c:var:: int Py_HashRandomizationFlag
134134
@@ -143,7 +143,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
143143
If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment
144144
variable to initialize the secret hash seed.
145145

146-
.. deprecated:: 3.12
146+
.. deprecated-removed:: 3.12 3.14
147147

148148
.. c:var:: int Py_IgnoreEnvironmentFlag
149149
@@ -156,7 +156,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
156156

157157
Set by the :option:`-E` and :option:`-I` options.
158158

159-
.. deprecated:: 3.12
159+
.. deprecated-removed:: 3.12 3.14
160160

161161
.. c:var:: int Py_InspectFlag
162162
@@ -171,7 +171,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
171171
Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment
172172
variable.
173173

174-
.. deprecated:: 3.12
174+
.. deprecated-removed:: 3.12 3.14
175175

176176
.. c:var:: int Py_InteractiveFlag
177177
@@ -196,7 +196,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
196196

197197
.. versionadded:: 3.4
198198

199-
.. deprecated:: 3.12
199+
.. deprecated-removed:: 3.12 3.14
200200

201201
.. c:var:: int Py_LegacyWindowsFSEncodingFlag
202202
@@ -215,7 +215,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
215215

216216
.. availability:: Windows.
217217

218-
.. deprecated:: 3.12
218+
.. deprecated-removed:: 3.12 3.14
219219

220220
.. c:var:: int Py_LegacyWindowsStdioFlag
221221
@@ -233,7 +233,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
233233

234234
.. availability:: Windows.
235235

236-
.. deprecated:: 3.12
236+
.. deprecated-removed:: 3.12 3.14
237237

238238
.. c:var:: int Py_NoSiteFlag
239239
@@ -248,7 +248,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
248248

249249
Set by the :option:`-S` option.
250250

251-
.. deprecated:: 3.12
251+
.. deprecated-removed:: 3.12 3.14
252252

253253
.. c:var:: int Py_NoUserSiteDirectory
254254
@@ -262,7 +262,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
262262
Set by the :option:`-s` and :option:`-I` options, and the
263263
:envvar:`PYTHONNOUSERSITE` environment variable.
264264

265-
.. deprecated:: 3.12
265+
.. deprecated-removed:: 3.12 3.14
266266

267267
.. c:var:: int Py_OptimizeFlag
268268
@@ -273,7 +273,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
273273
Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment
274274
variable.
275275

276-
.. deprecated:: 3.12
276+
.. deprecated-removed:: 3.12 3.14
277277

278278
.. c:var:: int Py_QuietFlag
279279
@@ -287,7 +287,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
287287

288288
.. versionadded:: 3.2
289289

290-
.. deprecated:: 3.12
290+
.. deprecated-removed:: 3.12 3.14
291291

292292
.. c:var:: int Py_UnbufferedStdioFlag
293293
@@ -300,7 +300,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
300300
Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED`
301301
environment variable.
302302

303-
.. deprecated:: 3.12
303+
.. deprecated-removed:: 3.12 3.14
304304

305305
.. c:var:: int Py_VerboseFlag
306306
@@ -316,7 +316,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
316316
Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment
317317
variable.
318318

319-
.. deprecated:: 3.12
319+
.. deprecated-removed:: 3.12 3.14
320320

321321

322322
Initializing and finalizing the interpreter

Doc/whatsnew/3.13.rst

+31-28
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,37 @@ Removed
614614
:c:func:`PyInterpreterState_Get()` on Python 3.8 and older.
615615
(Contributed by Victor Stinner in :gh:`106320`.)
616616

617+
Pending Removal in Python 3.14
618+
------------------------------
619+
620+
* Global configuration variables:
621+
622+
* :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`
623+
* :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`
624+
* :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`
625+
* :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`
626+
* :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`
627+
* :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`
628+
* :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`
629+
* :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`
630+
* :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`
631+
* :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`
632+
* :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`
633+
* :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`
634+
* :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`
635+
* :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed`
636+
and :c:member:`PyConfig.hash_seed`
637+
* :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`
638+
* :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig.legacy_windows_fs_encoding`
639+
* :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio`
640+
* :c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
641+
* :c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
642+
* :c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors`
643+
* :c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:`Py_PreInitialize`)
644+
645+
The :c:func:`Py_InitializeFromConfig` API should be used with
646+
:c:type:`PyConfig` instead.
647+
617648
Pending Removal in Python 3.15
618649
------------------------------
619650

@@ -656,34 +687,6 @@ removed, although there is currently no date scheduled for their removal.
656687
* :c:member:`!PyBytesObject.ob_shash` member:
657688
call :c:func:`PyObject_Hash` instead.
658689
* :c:member:`!PyDictObject.ma_version_tag` member.
659-
* Global configuration variables:
660-
661-
* :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`
662-
* :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`
663-
* :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`
664-
* :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`
665-
* :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`
666-
* :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`
667-
* :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`
668-
* :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`
669-
* :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`
670-
* :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`
671-
* :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`
672-
* :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`
673-
* :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`
674-
* :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed`
675-
and :c:member:`PyConfig.hash_seed`
676-
* :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`
677-
* :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig.legacy_windows_fs_encoding`
678-
* :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio`
679-
* :c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
680-
* :c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
681-
* :c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors`
682-
* :c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:`Py_PreInitialize`)
683-
684-
The :c:func:`Py_InitializeFromConfig` API should be used with
685-
:c:type:`PyConfig` instead.
686-
687690
* TLS API:
688691

689692
* :c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc`.

0 commit comments

Comments
 (0)