Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

gh-122085: Use include files for C API deprecations #109843

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jul 29, 2024
Prev Previous commit
Next Next commit
Suffix list items with 'instead.'
  • Loading branch information
AA-Turner committed Jul 27, 2024
commit c106726ee656989d35d0f75f9d0ec7317eeb87e6
50 changes: 25 additions & 25 deletions 50 Doc/deprecations/c-api-pending-removal-in-3.14.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,38 @@ Pending Removal in Python 3.14

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

* ``PySys_SetArgvEx()``: set :c:member:`PyConfig.argv`
* ``PySys_SetArgv()``: set :c:member:`PyConfig.argv`
* ``Py_SetProgramName()``: set :c:member:`PyConfig.program_name`
* ``Py_SetPythonHome()``: set :c:member:`PyConfig.home`
* ``PySys_SetArgvEx()``: set :c:member:`PyConfig.argv` instead.
* ``PySys_SetArgv()``: set :c:member:`PyConfig.argv` instead.
* ``Py_SetProgramName()``: set :c:member:`PyConfig.program_name` instead.
* ``Py_SetPythonHome()``: set :c:member:`PyConfig.home` instead.

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

* 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_DebugFlag`: use :c:member:`PyConfig.parser_debug` instead.
* :c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose` instead.
* :c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet` instead.
* :c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive` instead.
* :c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect` instead.
* :c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level` instead.
* :c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import` instead.
* :c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning` instead.
* :c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings` instead.
* :c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment` instead.
* :c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode` instead.
* :c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory` instead.
* :c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio` instead.
* :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`)
and :c:member:`PyConfig.hash_seed` instead.
* :c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated` instead.
* :c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig.legacy_windows_fs_encoding` instead.
* :c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig.legacy_windows_stdio` instead.
* :c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding` instead.
* :c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig.filesystem_encoding` instead.
* :c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig.filesystem_errors` instead.
* :c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` instead. (see :c:func:`Py_PreInitialize`)

The :c:func:`Py_InitializeFromConfig` API should be used with
:c:type:`PyConfig` instead.
24 changes: 12 additions & 12 deletions 24 Doc/deprecations/c-api-pending-removal-in-3.15.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ Pending Removal in Python 3.15
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* The bundled copy of ``libmpdecimal``.
* :c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule`
* :c:func:`PyWeakref_GET_OBJECT`: use :c:func:`PyWeakref_GetRef`
* :c:func:`PyWeakref_GetObject`: use :c:func:`PyWeakref_GetRef`
* :c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t`
* :c:type:`Py_UNICODE` type: use :c:type:`wchar_t`
* :c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule` instead.
* :c:func:`PyWeakref_GET_OBJECT`: use :c:func:`PyWeakref_GetRef` instead.
* :c:func:`PyWeakref_GetObject`: use :c:func:`PyWeakref_GetRef` instead.
* :c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t` instead.
* :c:type:`Py_UNICODE` type: use :c:type:`wchar_t` instead.
* Python initialization functions:

* :c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and
:data:`!warnings.filters`
* :c:func:`Py_GetExecPrefix`: get :data:`sys.exec_prefix`
* :c:func:`Py_GetPath`: get :data:`sys.path`
* :c:func:`Py_GetPrefix`: get :data:`sys.prefix`
* :c:func:`Py_GetProgramFullPath`: get :data:`sys.executable`
* :c:func:`Py_GetProgramName`: get :data:`sys.executable`
:data:`!warnings.filters` instead.
* :c:func:`Py_GetExecPrefix`: get :data:`sys.exec_prefix` instead.
* :c:func:`Py_GetPath`: get :data:`sys.path` instead.
* :c:func:`Py_GetPrefix`: get :data:`sys.prefix` instead.
* :c:func:`Py_GetProgramFullPath`: get :data:`sys.executable` instead.
* :c:func:`Py_GetProgramName`: get :data:`sys.executable` instead.
* :c:func:`Py_GetPythonHome`: get :c:member:`PyConfig.home` or
the :envvar:`PYTHONHOME` environment variable
the :envvar:`PYTHONHOME` environment variable instead.
42 changes: 21 additions & 21 deletions 42 Doc/deprecations/c-api-pending-removal-in-future.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,31 @@ Pending Removal in Future Versions
The following APIs are deprecated and will be removed,
although there is currently no date scheduled for their removal.

* :c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: unneeded since Python 3.8
* :c:func:`PyErr_Fetch`: use :c:func:`PyErr_GetRaisedException`
* :c:func:`PyErr_NormalizeException`: use :c:func:`PyErr_GetRaisedException`
* :c:func:`PyErr_Restore`: use :c:func:`PyErr_SetRaisedException`
* :c:func:`PyModule_GetFilename`: use :c:func:`PyModule_GetFilenameObject`
* :c:func:`PyOS_AfterFork`: use :c:func:`PyOS_AfterFork_Child`
* :c:func:`PySlice_GetIndicesEx`: use :c:func:`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices`
* :c:func:`!PyUnicode_AsDecodedObject`: use :c:func:`PyCodec_Decode`
* :c:func:`!PyUnicode_AsDecodedUnicode`: use :c:func:`PyCodec_Decode`
* :c:func:`!PyUnicode_AsEncodedObject`: use :c:func:`PyCodec_Encode`
* :c:func:`!PyUnicode_AsEncodedUnicode`: use :c:func:`PyCodec_Encode`
* :c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: unneeded since Python 3.8.
* :c:func:`PyErr_Fetch`: use :c:func:`PyErr_GetRaisedException` instead.
* :c:func:`PyErr_NormalizeException`: use :c:func:`PyErr_GetRaisedException` instead.
* :c:func:`PyErr_Restore`: use :c:func:`PyErr_SetRaisedException` instead.
* :c:func:`PyModule_GetFilename`: use :c:func:`PyModule_GetFilenameObject` instead.
* :c:func:`PyOS_AfterFork`: use :c:func:`PyOS_AfterFork_Child` instead.
* :c:func:`PySlice_GetIndicesEx`: use :c:func:`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices` instead.
* :c:func:`!PyUnicode_AsDecodedObject`: use :c:func:`PyCodec_Decode` instead.
* :c:func:`!PyUnicode_AsDecodedUnicode`: use :c:func:`PyCodec_Decode` instead.
* :c:func:`!PyUnicode_AsEncodedObject`: use :c:func:`PyCodec_Encode` instead.
* :c:func:`!PyUnicode_AsEncodedUnicode`: use :c:func:`PyCodec_Encode` instead.
* :c:func:`PyUnicode_READY`: unneeded since Python 3.12
* :c:func:`!PyErr_Display`: use :c:func:`PyErr_DisplayException`
* :c:func:`!_PyErr_ChainExceptions`: use ``_PyErr_ChainExceptions1``
* :c:func:`!PyErr_Display`: use :c:func:`PyErr_DisplayException` instead.
* :c:func:`!_PyErr_ChainExceptions`: use ``_PyErr_ChainExceptions1`` instead.
* :c:member:`!PyBytesObject.ob_shash` member:
call :c:func:`PyObject_Hash` instead
* :c:member:`!PyDictObject.ma_version_tag` member
call :c:func:`PyObject_Hash` instead.
* :c:member:`!PyDictObject.ma_version_tag` member.
* Thread Local Storage (TLS) API:

* :c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc`
* :c:func:`PyThread_delete_key`: use :c:func:`PyThread_tss_free`
* :c:func:`PyThread_set_key_value`: use :c:func:`PyThread_tss_set`
* :c:func:`PyThread_get_key_value`: use :c:func:`PyThread_tss_get`
* :c:func:`PyThread_delete_key_value`: use :c:func:`PyThread_tss_delete`
* :c:func:`PyThread_ReInitTLS`: unneeded since Python 3.7
* :c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc` instead.
* :c:func:`PyThread_delete_key`: use :c:func:`PyThread_tss_free` instead.
* :c:func:`PyThread_set_key_value`: use :c:func:`PyThread_tss_set` instead.
* :c:func:`PyThread_get_key_value`: use :c:func:`PyThread_tss_get` instead.
* :c:func:`PyThread_delete_key_value`: use :c:func:`PyThread_tss_delete` instead.
* :c:func:`PyThread_ReInitTLS`: unneeded since Python 3.7.

* Remove undocumented ``PY_TIMEOUT_MAX`` constant from the limited C API.
(Contributed by Victor Stinner in :gh:`110014`.)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.