[Python-checkins] gh-105373: Remove C API global config vars in Python 3.14 (#106538)
vstinner
webhook-mailer at python.org
Fri Jul 7 19:49:23 EDT 2023
https://github.com/python/cpython/commit/ffe70c4d1c85f07d9b92bf0673e715fdaa2526ed
commit: ffe70c4d1c85f07d9b92bf0673e715fdaa2526ed
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2023年07月08日T01:49:20+02:00
summary:
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.
files:
M Doc/c-api/init.rst
M Doc/whatsnew/3.13.rst
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 1dab0af2659b4..e7b2937d38dcf 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -87,7 +87,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-b` option.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_DebugFlag
@@ -101,7 +101,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment
variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_DontWriteBytecodeFlag
@@ -115,7 +115,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE`
environment variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_FrozenFlag
@@ -128,7 +128,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Private flag used by ``_freeze_module`` and ``frozenmain`` programs.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_HashRandomizationFlag
@@ -143,7 +143,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment
variable to initialize the secret hash seed.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_IgnoreEnvironmentFlag
@@ -156,7 +156,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-E` and :option:`-I` options.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_InspectFlag
@@ -171,7 +171,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment
variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_InteractiveFlag
@@ -196,7 +196,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
.. versionadded:: 3.4
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_LegacyWindowsFSEncodingFlag
@@ -215,7 +215,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
.. availability:: Windows.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_LegacyWindowsStdioFlag
@@ -233,7 +233,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
.. availability:: Windows.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_NoSiteFlag
@@ -248,7 +248,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-S` option.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_NoUserSiteDirectory
@@ -262,7 +262,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-s` and :option:`-I` options, and the
:envvar:`PYTHONNOUSERSITE` environment variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_OptimizeFlag
@@ -273,7 +273,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment
variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_QuietFlag
@@ -287,7 +287,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
.. versionadded:: 3.2
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_UnbufferedStdioFlag
@@ -300,7 +300,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED`
environment variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
.. c:var:: int Py_VerboseFlag
@@ -316,7 +316,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment
variable.
- .. deprecated:: 3.12
+ .. deprecated-removed:: 3.12 3.14
Initializing and finalizing the interpreter
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index fbd34122ac572..b376f846b725e 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -614,6 +614,37 @@ Removed
:c:func:`PyInterpreterState_Get()` on Python 3.8 and older.
(Contributed by Victor Stinner in :gh:`106320`.)
+Pending Removal in Python 3.14
+------------------------------
+
+* Global configuration variables:
+
+ * :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`
+ * :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`
+ * :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`
+ * :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`
+ * :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`
+ * :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`
+ * :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`
+ * :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`
+ * :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`
+ * :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`
+ * :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`
+ * :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`
+ * :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`
+ * :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed`
+ and :c:member:`PyConfig.hash_seed`
+ * :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`
+ * :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig.legacy_windows_fs_encoding`
+ * :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio`
+ * :c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
+ * :c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
+ * :c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors`
+ * :c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:`Py_PreInitialize`)
+
+ The :c:func:`Py_InitializeFromConfig` API should be used with
+ :c:type:`PyConfig` instead.
+
Pending Removal in Python 3.15
------------------------------
@@ -656,34 +687,6 @@ removed, although there is currently no date scheduled for their removal.
* :c:member:`!PyBytesObject.ob_shash` member:
call :c:func:`PyObject_Hash` instead.
* :c:member:`!PyDictObject.ma_version_tag` member.
-* Global configuration variables:
-
- * :c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`
- * :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`
- * :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`
- * :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`
- * :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`
- * :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`
- * :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`
- * :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`
- * :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`
- * :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`
- * :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`
- * :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`
- * :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`
- * :c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed`
- and :c:member:`PyConfig.hash_seed`
- * :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`
- * :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig.legacy_windows_fs_encoding`
- * :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio`
- * :c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
- * :c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding`
- * :c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors`
- * :c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:`Py_PreInitialize`)
-
- The :c:func:`Py_InitializeFromConfig` API should be used with
- :c:type:`PyConfig` instead.
-
* TLS API:
* :c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc`.
More information about the Python-checkins
mailing list