gh-93103: Doc uses PyConfig rather than deprecated vars (#96070)

The C API documentation now uses the new PyConfig API, rather than
deprecated global configuration variables.
This commit is contained in:
Victor Stinner 2022-08-18 16:58:38 +02:00 committed by GitHub
parent 157aef79b0
commit cfaa79aac0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 12 deletions

View file

@ -153,7 +153,7 @@ complete listing.
.. c:macro:: Py_GETENV(s) .. c:macro:: Py_GETENV(s)
Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the
command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). command line (see :c:member:`PyConfig.use_environment`).
.. c:macro:: Py_MAX(x, y) .. c:macro:: Py_MAX(x, y)

View file

@ -167,7 +167,7 @@ Operating System Utilities
.. versionchanged:: 3.8 .. versionchanged:: 3.8
The function now uses the UTF-8 encoding on Windows if The function now uses the UTF-8 encoding on Windows if
:c:data:`Py_LegacyWindowsFSEncodingFlag` is zero; :c:member:`PyConfig.legacy_windows_fs_encoding` is zero;
.. c:function:: char* Py_EncodeLocale(const wchar_t *text, size_t *error_pos) .. c:function:: char* Py_EncodeLocale(const wchar_t *text, size_t *error_pos)
@ -209,7 +209,7 @@ Operating System Utilities
.. versionchanged:: 3.8 .. versionchanged:: 3.8
The function now uses the UTF-8 encoding on Windows if The function now uses the UTF-8 encoding on Windows if
:c:data:`Py_LegacyWindowsFSEncodingFlag` is zero. :c:member:`PyConfig.legacy_windows_fs_encoding` is zero.
.. _systemfunctions: .. _systemfunctions:

View file

@ -39,7 +39,7 @@ the same library that the Python runtime is using.
Note that if an otherwise unhandled :exc:`SystemExit` is raised, this Note that if an otherwise unhandled :exc:`SystemExit` is raised, this
function will not return ``1``, but exit the process, as long as function will not return ``1``, but exit the process, as long as
``Py_InspectFlag`` is not set. :c:member:`PyConfig.inspect` is zero.
.. c:function:: int Py_BytesMain(int argc, char **argv) .. c:function:: int Py_BytesMain(int argc, char **argv)
@ -95,7 +95,7 @@ the same library that the Python runtime is using.
Note that if an otherwise unhandled :exc:`SystemExit` is raised, this Note that if an otherwise unhandled :exc:`SystemExit` is raised, this
function will not return ``-1``, but exit the process, as long as function will not return ``-1``, but exit the process, as long as
``Py_InspectFlag`` is not set. :c:member:`PyConfig.inspect` is zero.
.. c:function:: int PyRun_SimpleFile(FILE *fp, const char *filename) .. c:function:: int PyRun_SimpleFile(FILE *fp, const char *filename)

View file

@ -1068,18 +1068,16 @@ Accessing values exported from dlls
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some shared libraries not only export functions, they also export variables. An Some shared libraries not only export functions, they also export variables. An
example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an integer example in the Python library itself is the :c:data:`Py_Version`, Python
set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` flag given on runtime version number encoded in a single constant integer.
startup.
:mod:`ctypes` can access values like this with the :meth:`in_dll` class methods of :mod:`ctypes` can access values like this with the :meth:`in_dll` class methods of
the type. *pythonapi* is a predefined symbol giving access to the Python C the type. *pythonapi* is a predefined symbol giving access to the Python C
api:: api::
>>> opt_flag = c_int.in_dll(pythonapi, "Py_OptimizeFlag") >>> version = ctypes.c_int.in_dll(ctypes.pythonapi, "Py_Version")
>>> print(opt_flag) >>> print(hex(version.value))
c_long(0) 0x30c00a0
>>>
If the interpreter would have been started with :option:`-O`, the sample would If the interpreter would have been started with :option:`-O`, the sample would
have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would have been have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would have been