gh-106948: Add standard external names to nitpick_ignore (GH-106949)

It includes standard C types, macros and variables like "size_t",
"LONG_MAX" and "errno", and standard environment variables like "PATH".
This commit is contained in:
Serhiy Storchaka 2023-07-22 21:35:22 +03:00 committed by GitHub
parent 26e08dfdd7
commit f8b7fe2f26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 99 additions and 53 deletions

View File

@ -555,7 +555,7 @@ Building values
Same as ``s#``. Same as ``s#``.
``u`` (:class:`str`) [const wchar_t \*] ``u`` (:class:`str`) [const wchar_t \*]
Convert a null-terminated :c:expr:`wchar_t` buffer of Unicode (UTF-16 or UCS-4) Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or UCS-4)
data to a Python Unicode object. If the Unicode buffer pointer is ``NULL``, data to a Python Unicode object. If the Unicode buffer pointer is ``NULL``,
``None`` is returned. ``None`` is returned.

View File

@ -581,7 +581,7 @@ that the treatment of negative indices differs from a Python slice):
default). default).
A serial number, incremented by 1 on each call to a malloc-like or A serial number, incremented by 1 on each call to a malloc-like or
realloc-like function. Big-endian ``size_t``. If "bad memory" is detected realloc-like function. Big-endian :c:type:`size_t`. If "bad memory" is detected
later, the serial number gives an excellent way to set a breakpoint on the later, the serial number gives an excellent way to set a breakpoint on the
next run, to capture the instant at which this block was passed out. The next run, to capture the instant at which this block was passed out. The
static function bumpserialno() in obmalloc.c is the only place the serial static function bumpserialno() in obmalloc.c is the only place the serial

View File

@ -44,7 +44,7 @@ Python:
.. c:type:: Py_UNICODE .. c:type:: Py_UNICODE
This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit type This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit type
depending on the platform. depending on the platform.
.. versionchanged:: 3.3 .. versionchanged:: 3.3
@ -437,11 +437,11 @@ APIs:
+----------+-----------------------------------------------------+ +----------+-----------------------------------------------------+
| ``ll`` | :c:expr:`long long` or :c:expr:`unsigned long long` | | ``ll`` | :c:expr:`long long` or :c:expr:`unsigned long long` |
+----------+-----------------------------------------------------+ +----------+-----------------------------------------------------+
| ``j`` | :c:expr:`intmax_t` or :c:expr:`uintmax_t` | | ``j`` | :c:type:`intmax_t` or :c:type:`uintmax_t` |
+----------+-----------------------------------------------------+ +----------+-----------------------------------------------------+
| ``z`` | :c:expr:`size_t` or :c:expr:`ssize_t` | | ``z`` | :c:type:`size_t` or :c:type:`ssize_t` |
+----------+-----------------------------------------------------+ +----------+-----------------------------------------------------+
| ``t`` | :c:expr:`ptrdiff_t` | | ``t`` | :c:type:`ptrdiff_t` |
+----------+-----------------------------------------------------+ +----------+-----------------------------------------------------+
The length modifier ``l`` for following conversions ``s`` or ``V`` specify The length modifier ``l`` for following conversions ``s`` or ``V`` specify
@ -520,7 +520,7 @@ APIs:
.. note:: .. note::
The width formatter unit is number of characters rather than bytes. The width formatter unit is number of characters rather than bytes.
The precision formatter unit is number of bytes or :c:expr:`wchar_t` The precision formatter unit is number of bytes or :c:type:`wchar_t`
items (if the length modifier ``l`` is used) for ``"%s"`` and items (if the length modifier ``l`` is used) for ``"%s"`` and
``"%V"`` (if the ``PyObject*`` argument is ``NULL``), and a number of ``"%V"`` (if the ``PyObject*`` argument is ``NULL``), and a number of
characters for ``"%A"``, ``"%U"``, ``"%S"``, ``"%R"`` and ``"%V"`` characters for ``"%A"``, ``"%U"``, ``"%S"``, ``"%R"`` and ``"%V"``
@ -839,11 +839,11 @@ conversion function:
wchar_t Support wchar_t Support
""""""""""""""" """""""""""""""
:c:expr:`wchar_t` support for platforms which support it: :c:type:`wchar_t` support for platforms which support it:
.. c:function:: PyObject* PyUnicode_FromWideChar(const wchar_t *w, Py_ssize_t size) .. c:function:: PyObject* PyUnicode_FromWideChar(const wchar_t *w, Py_ssize_t size)
Create a Unicode object from the :c:expr:`wchar_t` buffer *w* of the given *size*. Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given *size*.
Passing ``-1`` as the *size* indicates that the function must itself compute the length, Passing ``-1`` as the *size* indicates that the function must itself compute the length,
using wcslen. using wcslen.
Return ``NULL`` on failure. Return ``NULL`` on failure.
@ -851,9 +851,9 @@ wchar_t Support
.. c:function:: Py_ssize_t PyUnicode_AsWideChar(PyObject *unicode, wchar_t *w, Py_ssize_t size) .. c:function:: Py_ssize_t PyUnicode_AsWideChar(PyObject *unicode, wchar_t *w, Py_ssize_t size)
Copy the Unicode object contents into the :c:expr:`wchar_t` buffer *w*. At most Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At most
*size* :c:expr:`wchar_t` characters are copied (excluding a possibly trailing *size* :c:type:`wchar_t` characters are copied (excluding a possibly trailing
null termination character). Return the number of :c:expr:`wchar_t` characters null termination character). Return the number of :c:type:`wchar_t` characters
copied or ``-1`` in case of an error. Note that the resulting :c:expr:`wchar_t*` copied or ``-1`` in case of an error. Note that the resulting :c:expr:`wchar_t*`
string may or may not be null-terminated. It is the responsibility of the caller string may or may not be null-terminated. It is the responsibility of the caller
to make sure that the :c:expr:`wchar_t*` string is null-terminated in case this is to make sure that the :c:expr:`wchar_t*` string is null-terminated in case this is
@ -867,7 +867,7 @@ wchar_t Support
Convert the Unicode object to a wide character string. The output string Convert the Unicode object to a wide character string. The output string
always ends with a null character. If *size* is not ``NULL``, write the number always ends with a null character. If *size* is not ``NULL``, write the number
of wide characters (excluding the trailing null termination character) into of wide characters (excluding the trailing null termination character) into
*\*size*. Note that the resulting :c:expr:`wchar_t` string might contain *\*size*. Note that the resulting :c:type:`wchar_t` string might contain
null characters, which would cause the string to be truncated when used with null characters, which would cause the string to be truncated when used with
most C functions. If *size* is ``NULL`` and the :c:expr:`wchar_t*` string most C functions. If *size* is ``NULL`` and the :c:expr:`wchar_t*` string
contains null characters a :exc:`ValueError` is raised. contains null characters a :exc:`ValueError` is raised.

View File

@ -17,7 +17,7 @@ parameter. The available start symbols are :c:data:`Py_eval_input`,
following the functions which accept them as parameters. following the functions which accept them as parameters.
Note also that several of these functions take :c:expr:`FILE*` parameters. One Note also that several of these functions take :c:expr:`FILE*` parameters. One
particular issue which needs to be handled carefully is that the :c:expr:`FILE` particular issue which needs to be handled carefully is that the :c:type:`FILE`
structure for different C libraries can be different and incompatible. Under structure for different C libraries can be different and incompatible. Under
Windows (at least), it is possible for dynamically linked extensions to actually Windows (at least), it is possible for dynamically linked extensions to actually
use different libraries, so care should be taken that :c:expr:`FILE*` parameters use different libraries, so care should be taken that :c:expr:`FILE*` parameters

View File

@ -77,6 +77,58 @@ if venvdir is not None:
exclude_patterns.append(venvdir + '/*') exclude_patterns.append(venvdir + '/*')
nitpick_ignore = [ nitpick_ignore = [
# Standard C types
('c:type', 'FILE'),
('c:type', '__int'),
('c:type', 'intmax_t'),
('c:type', 'off_t'),
('c:type', 'ptrdiff_t'),
('c:type', 'siginfo_t'),
('c:type', 'size_t'),
('c:type', 'ssize_t'),
('c:type', 'time_t'),
('c:type', 'uintmax_t'),
('c:type', 'va_list'),
('c:type', 'wchar_t'),
# Standard C macros
('c:macro', 'LLONG_MAX'),
('c:macro', 'LLONG_MIN'),
('c:macro', 'LONG_MAX'),
('c:macro', 'LONG_MIN'),
# Standard C variables
('c:data', 'errno'),
# Standard environment variables
('envvar', 'BROWSER'),
('envvar', 'COLUMNS'),
('envvar', 'COMSPEC'),
('envvar', 'DISPLAY'),
('envvar', 'HOME'),
('envvar', 'HOMEDRIVE'),
('envvar', 'HOMEPATH'),
('envvar', 'IDLESTARTUP'),
('envvar', 'LANG'),
('envvar', 'LANGUAGE'),
('envvar', 'LC_ALL'),
('envvar', 'LC_CTYPE'),
('envvar', 'LC_COLLATE'),
('envvar', 'LC_MESSAGES'),
('envvar', 'LC_MONETARY'),
('envvar', 'LC_NUMERIC'),
('envvar', 'LC_TIME'),
('envvar', 'LINES'),
('envvar', 'LOGNAME'),
('envvar', 'PAGER'),
('envvar', 'PATH'),
('envvar', 'PATHEXT'),
('envvar', 'SOURCE_DATE_EPOCH'),
('envvar', 'TEMP'),
('envvar', 'TERM'),
('envvar', 'TMP'),
('envvar', 'TMPDIR'),
('envvar', 'TZ'),
('envvar', 'USER'),
('envvar', 'USERNAME'),
('envvar', 'USERPROFILE'),
# Do not error nit-picky mode builds when _SubParsersAction.add_parser cannot # Do not error nit-picky mode builds when _SubParsersAction.add_parser cannot
# be resolved, as the method is currently undocumented. For context, see # be resolved, as the method is currently undocumented. For context, see
# https://github.com/python/cpython/pull/103289. # https://github.com/python/cpython/pull/103289.

View File

@ -53,9 +53,9 @@ Notes:
It can be 16 bits or 32 bits depending on the platform. It can be 16 bits or 32 bits depending on the platform.
.. versionchanged:: 3.9 .. versionchanged:: 3.9
``array('u')`` now uses ``wchar_t`` as C type instead of deprecated ``array('u')`` now uses :c:type:`wchar_t` as C type instead of deprecated
``Py_UNICODE``. This change doesn't affect its behavior because ``Py_UNICODE``. This change doesn't affect its behavior because
``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3. ``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3.
.. deprecated-removed:: 3.3 3.16 .. deprecated-removed:: 3.3 3.16
Please migrate to ``'w'`` typecode. Please migrate to ``'w'`` typecode.

View File

@ -220,7 +220,7 @@ Fundamental data types
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
| :class:`c_char` | :c:expr:`char` | 1-character bytes object | | :class:`c_char` | :c:expr:`char` | 1-character bytes object |
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
| :class:`c_wchar` | :c:expr:`wchar_t` | 1-character string | | :class:`c_wchar` | :c:type:`wchar_t` | 1-character string |
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
| :class:`c_byte` | :c:expr:`char` | int | | :class:`c_byte` | :c:expr:`char` | int |
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
@ -243,9 +243,9 @@ Fundamental data types
| :class:`c_ulonglong` | :c:expr:`unsigned __int64` or | int | | :class:`c_ulonglong` | :c:expr:`unsigned __int64` or | int |
| | :c:expr:`unsigned long long` | | | | :c:expr:`unsigned long long` | |
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
| :class:`c_size_t` | :c:expr:`size_t` | int | | :class:`c_size_t` | :c:type:`size_t` | int |
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
| :class:`c_ssize_t` | :c:expr:`ssize_t` or | int | | :class:`c_ssize_t` | :c:type:`ssize_t` or | int |
| | :c:expr:`Py_ssize_t` | | | | :c:expr:`Py_ssize_t` | |
+----------------------+------------------------------------------+----------------------------+ +----------------------+------------------------------------------+----------------------------+
| :class:`c_time_t` | :c:type:`time_t` | int | | :class:`c_time_t` | :c:type:`time_t` | int |
@ -335,7 +335,7 @@ property::
The :func:`create_string_buffer` function replaces the old :func:`c_buffer` The :func:`create_string_buffer` function replaces the old :func:`c_buffer`
function (which is still available as an alias). To create a mutable memory function (which is still available as an alias). To create a mutable memory
block containing unicode characters of the C type :c:expr:`wchar_t`, use the block containing unicode characters of the C type :c:type:`wchar_t`, use the
:func:`create_unicode_buffer` function. :func:`create_unicode_buffer` function.
@ -478,7 +478,7 @@ By default functions are assumed to return the C :c:expr:`int` type. Other
return types can be specified by setting the :attr:`restype` attribute of the return types can be specified by setting the :attr:`restype` attribute of the
function object. function object.
The C prototype of ``time()`` is ``time_t time(time_t *)``. Because ``time_t`` The C prototype of ``time()`` is ``time_t time(time_t *)``. Because :c:type:`time_t`
might be of a different type than the default return type ``int``, you should might be of a different type than the default return type ``int``, you should
specify the ``restype``:: specify the ``restype``::
@ -2407,7 +2407,7 @@ These are the fundamental ctypes data types:
.. class:: c_wchar .. class:: c_wchar
Represents the C :c:expr:`wchar_t` datatype, and interprets the value as a Represents the C :c:type:`wchar_t` datatype, and interprets the value as a
single character unicode string. The constructor accepts an optional string single character unicode string. The constructor accepts an optional string
initializer, the length of the string must be exactly one character. initializer, the length of the string must be exactly one character.

View File

@ -4650,7 +4650,7 @@ written in Python, such as a mail server's external command delivery program.
:data:`WNOHANG` and :data:`WNOWAIT` are additional optional flags. :data:`WNOHANG` and :data:`WNOWAIT` are additional optional flags.
The return value is an object representing the data contained in the The return value is an object representing the data contained in the
:c:type:`!siginfo_t` structure with the following attributes: :c:type:`siginfo_t` structure with the following attributes:
* :attr:`!si_pid` (process ID) * :attr:`!si_pid` (process ID)
* :attr:`!si_uid` (real user ID of the child) * :attr:`!si_uid` (real user ID of the child)

View File

@ -231,9 +231,9 @@ platform-dependent.
| ``Q`` | :c:expr:`unsigned long | integer | 8 | \(2) | | ``Q`` | :c:expr:`unsigned long | integer | 8 | \(2) |
| | long` | | | | | | long` | | | |
+--------+--------------------------+--------------------+----------------+------------+ +--------+--------------------------+--------------------+----------------+------------+
| ``n`` | :c:expr:`ssize_t` | integer | | \(3) | | ``n`` | :c:type:`ssize_t` | integer | | \(3) |
+--------+--------------------------+--------------------+----------------+------------+ +--------+--------------------------+--------------------+----------------+------------+
| ``N`` | :c:expr:`size_t` | integer | | \(3) | | ``N`` | :c:type:`size_t` | integer | | \(3) |
+--------+--------------------------+--------------------+----------------+------------+ +--------+--------------------------+--------------------+----------------+------------+
| ``e`` | \(6) | float | 2 | \(4) | | ``e`` | \(6) | float | 2 | \(4) |
+--------+--------------------------+--------------------+----------------+------------+ +--------+--------------------------+--------------------+----------------+------------+

View File

@ -60,7 +60,7 @@ running from a virtual environment.
A virtual environment may be "activated" using a script in its binary directory A virtual environment may be "activated" using a script in its binary directory
(``bin`` on POSIX; ``Scripts`` on Windows). (``bin`` on POSIX; ``Scripts`` on Windows).
This will prepend that directory to your :envvar:`!PATH`, so that running This will prepend that directory to your :envvar:`PATH`, so that running
:program:`python` will invoke the environment's Python interpreter :program:`python` will invoke the environment's Python interpreter
and you can run installed scripts without having to use their full path. and you can run installed scripts without having to use their full path.
The invocation of the activation script is platform-specific The invocation of the activation script is platform-specific
@ -100,10 +100,10 @@ In order to achieve this, scripts installed into virtual environments have
a "shebang" line which points to the environment's Python interpreter, a "shebang" line which points to the environment's Python interpreter,
i.e. :samp:`#!/{<path-to-venv>}/bin/python`. i.e. :samp:`#!/{<path-to-venv>}/bin/python`.
This means that the script will run with that interpreter regardless of the This means that the script will run with that interpreter regardless of the
value of :envvar:`!PATH`. On Windows, "shebang" line processing is supported if value of :envvar:`PATH`. On Windows, "shebang" line processing is supported if
you have the :ref:`launcher` installed. Thus, double-clicking an installed you have the :ref:`launcher` installed. Thus, double-clicking an installed
script in a Windows Explorer window should run it with the correct interpreter script in a Windows Explorer window should run it with the correct interpreter
without the environment needing to be activated or on the :envvar:`!PATH`. without the environment needing to be activated or on the :envvar:`PATH`.
When a virtual environment has been activated, the :envvar:`!VIRTUAL_ENV` When a virtual environment has been activated, the :envvar:`!VIRTUAL_ENV`
environment variable is set to the path of the environment. environment variable is set to the path of the environment.

View File

@ -20,7 +20,7 @@ will be used if graphical browsers are not available or an X11 display isn't
available. If text-mode browsers are used, the calling process will block until available. If text-mode browsers are used, the calling process will block until
the user exits the browser. the user exits the browser.
If the environment variable :envvar:`!BROWSER` exists, it is interpreted as the If the environment variable :envvar:`BROWSER` exists, it is interpreted as the
:data:`os.pathsep`-separated list of browsers to try ahead of the platform :data:`os.pathsep`-separated list of browsers to try ahead of the platform
defaults. When the value of a list part contains the string ``%s``, then it is defaults. When the value of a list part contains the string ``%s``, then it is
interpreted as a literal browser command line to be used with the argument URL interpreted as a literal browser command line to be used with the argument URL
@ -97,7 +97,7 @@ The following functions are defined:
Setting *preferred* to ``True`` makes this browser a preferred result for Setting *preferred* to ``True`` makes this browser a preferred result for
a :func:`get` call with no argument. Otherwise, this entry point is only a :func:`get` call with no argument. Otherwise, this entry point is only
useful if you plan to either set the :envvar:`!BROWSER` variable or call useful if you plan to either set the :envvar:`BROWSER` variable or call
:func:`get` with a nonempty argument matching the name of a handler you :func:`get` with a nonempty argument matching the name of a handler you
declare. declare.
@ -224,4 +224,4 @@ module-level convenience functions:
.. rubric:: Footnotes .. rubric:: Footnotes
.. [1] Executables named here without a full path will be searched in the .. [1] Executables named here without a full path will be searched in the
directories given in the :envvar:`!PATH` environment variable. directories given in the :envvar:`PATH` environment variable.

View File

@ -91,7 +91,6 @@ Doc/library/codecs.rst
Doc/library/codeop.rst Doc/library/codeop.rst
Doc/library/collections.abc.rst Doc/library/collections.abc.rst
Doc/library/collections.rst Doc/library/collections.rst
Doc/library/compileall.rst
Doc/library/concurrent.futures.rst Doc/library/concurrent.futures.rst
Doc/library/concurrent.rst Doc/library/concurrent.rst
Doc/library/configparser.rst Doc/library/configparser.rst
@ -100,7 +99,6 @@ Doc/library/contextlib.rst
Doc/library/copy.rst Doc/library/copy.rst
Doc/library/csv.rst Doc/library/csv.rst
Doc/library/ctypes.rst Doc/library/ctypes.rst
Doc/library/curses.rst
Doc/library/datetime.rst Doc/library/datetime.rst
Doc/library/dbm.rst Doc/library/dbm.rst
Doc/library/decimal.rst Doc/library/decimal.rst
@ -137,7 +135,6 @@ Doc/library/http.client.rst
Doc/library/http.cookiejar.rst Doc/library/http.cookiejar.rst
Doc/library/http.cookies.rst Doc/library/http.cookies.rst
Doc/library/http.server.rst Doc/library/http.server.rst
Doc/library/idle.rst
Doc/library/importlib.resources.abc.rst Doc/library/importlib.resources.abc.rst
Doc/library/importlib.resources.rst Doc/library/importlib.resources.rst
Doc/library/importlib.rst Doc/library/importlib.rst
@ -165,11 +162,9 @@ Doc/library/pickletools.rst
Doc/library/platform.rst Doc/library/platform.rst
Doc/library/plistlib.rst Doc/library/plistlib.rst
Doc/library/poplib.rst Doc/library/poplib.rst
Doc/library/posix.rst
Doc/library/pprint.rst Doc/library/pprint.rst
Doc/library/profile.rst Doc/library/profile.rst
Doc/library/pty.rst Doc/library/pty.rst
Doc/library/py_compile.rst
Doc/library/pyclbr.rst Doc/library/pyclbr.rst
Doc/library/pydoc.rst Doc/library/pydoc.rst
Doc/library/pyexpat.rst Doc/library/pyexpat.rst
@ -192,7 +187,6 @@ Doc/library/ssl.rst
Doc/library/stat.rst Doc/library/stat.rst
Doc/library/stdtypes.rst Doc/library/stdtypes.rst
Doc/library/string.rst Doc/library/string.rst
Doc/library/struct.rst
Doc/library/subprocess.rst Doc/library/subprocess.rst
Doc/library/sys.rst Doc/library/sys.rst
Doc/library/sys_path_init.rst Doc/library/sys_path_init.rst
@ -254,7 +248,6 @@ Doc/tutorial/modules.rst
Doc/tutorial/stdlib2.rst Doc/tutorial/stdlib2.rst
Doc/using/cmdline.rst Doc/using/cmdline.rst
Doc/using/configure.rst Doc/using/configure.rst
Doc/using/unix.rst
Doc/using/windows.rst Doc/using/windows.rst
Doc/whatsnew/2.0.rst Doc/whatsnew/2.0.rst
Doc/whatsnew/2.1.rst Doc/whatsnew/2.1.rst

View File

@ -1768,7 +1768,7 @@ Porting to Python 3.12
for example). for example).
* Add support of more formatting options (left aligning, octals, uppercase * Add support of more formatting options (left aligning, octals, uppercase
hexadecimals, ``intmax_t``, ``ptrdiff_t``, ``wchar_t`` C hexadecimals, :c:type:`intmax_t`, :c:type:`ptrdiff_t`, :c:type:`wchar_t` C
strings, variable width and precision) in :c:func:`PyUnicode_FromFormat` and strings, variable width and precision) in :c:func:`PyUnicode_FromFormat` and
:c:func:`PyUnicode_FromFormatV`. :c:func:`PyUnicode_FromFormatV`.
(Contributed by Serhiy Storchaka in :gh:`98836`.) (Contributed by Serhiy Storchaka in :gh:`98836`.)

View File

@ -329,7 +329,7 @@ Pending Removal in Python 3.15
Pending Removal in Python 3.16 Pending Removal in Python 3.16
------------------------------ ------------------------------
* :class:`array.array` ``'u'`` type (``wchar_t``): * :class:`array.array` ``'u'`` type (:c:type:`wchar_t`):
use the ``'w'`` type instead (``Py_UCS4``). use the ``'w'`` type instead (``Py_UCS4``).
Pending Removal in Future Versions Pending Removal in Future Versions
@ -802,8 +802,8 @@ Deprecated
---------- ----------
* Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types: use directly * Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types: use directly
the ``wchar_t`` type instead. Since Python 3.3, ``Py_UNICODE`` and the :c:type:`wchar_t` type instead. Since Python 3.3, ``Py_UNICODE`` and
``PY_UNICODE_TYPE`` are just aliases to ``wchar_t``. ``PY_UNICODE_TYPE`` are just aliases to :c:type:`wchar_t`.
(Contributed by Victor Stinner in :gh:`105156`.) (Contributed by Victor Stinner in :gh:`105156`.)
* Deprecate old Python initialization functions: * Deprecate old Python initialization functions:
@ -1013,8 +1013,8 @@ Pending Removal in Python 3.15
* :c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule`. * :c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule`.
* :c:func:`PyWeakref_GET_OBJECT`: use :c:func:`PyWeakref_GetRef` instead. * :c:func:`PyWeakref_GET_OBJECT`: use :c:func:`PyWeakref_GetRef` instead.
* :c:func:`PyWeakref_GetObject`: use :c:func:`PyWeakref_GetRef` instead. * :c:func:`PyWeakref_GetObject`: use :c:func:`PyWeakref_GetRef` instead.
* :c:type:`!Py_UNICODE_WIDE` type: use ``wchar_t`` instead. * :c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t` instead.
* :c:type:`Py_UNICODE` type: use ``wchar_t`` instead. * :c:type:`Py_UNICODE` type: use :c:type:`wchar_t` instead.
* Python initialization functions: * Python initialization functions:
* :c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and * :c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and

View File

@ -1984,7 +1984,7 @@ the form '-rwxrwxrwx'.
struct struct
------ ------
The :mod:`struct` module now supports ``ssize_t`` and ``size_t`` via the The :mod:`struct` module now supports :c:type:`ssize_t` and :c:type:`size_t` via the
new codes ``n`` and ``N``, respectively. (Contributed by Antoine Pitrou new codes ``n`` and ``N``, respectively. (Contributed by Antoine Pitrou
in :issue:`3163`.) in :issue:`3163`.)

View File

@ -2192,7 +2192,7 @@ encode error with ``\N{...}`` escapes.
(Contributed by Serhiy Storchaka in :issue:`19676`.) (Contributed by Serhiy Storchaka in :issue:`19676`.)
A new :c:func:`PyErr_FormatV` function similar to :c:func:`PyErr_Format`, A new :c:func:`PyErr_FormatV` function similar to :c:func:`PyErr_Format`,
but accepts a ``va_list`` argument. but accepts a :c:type:`va_list` argument.
(Contributed by Antoine Pitrou in :issue:`18711`.) (Contributed by Antoine Pitrou in :issue:`18711`.)
A new :c:data:`PyExc_RecursionError` exception. A new :c:data:`PyExc_RecursionError` exception.

View File

@ -1115,9 +1115,9 @@ Changes in the Python API
``PyCF_ALLOW_TOP_LEVEL_AWAIT`` was clashing with ``CO_FUTURE_DIVISION``. ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` was clashing with ``CO_FUTURE_DIVISION``.
(Contributed by Batuhan Taskaya in :issue:`39562`) (Contributed by Batuhan Taskaya in :issue:`39562`)
* ``array('u')`` now uses ``wchar_t`` as C type instead of ``Py_UNICODE``. * ``array('u')`` now uses :c:type:`wchar_t` as C type instead of ``Py_UNICODE``.
This change doesn't affect to its behavior because ``Py_UNICODE`` is alias This change doesn't affect to its behavior because ``Py_UNICODE`` is alias
of ``wchar_t`` since Python 3.3. of :c:type:`wchar_t` since Python 3.3.
(Contributed by Inada Naoki in :issue:`34538`.) (Contributed by Inada Naoki in :issue:`34538`.)
* The :func:`logging.getLogger` API now returns the root logger when passed * The :func:`logging.getLogger` API now returns the root logger when passed

View File

@ -667,4 +667,4 @@ exception (if an exception is set). Patch by Victor Stinner.
.. section: C API .. section: C API
Fixed a compiler warning in :c:func:`Py_UNICODE_ISSPACE()` on platforms with Fixed a compiler warning in :c:func:`Py_UNICODE_ISSPACE()` on platforms with
signed ``wchar_t``. signed :c:type:`wchar_t`.

View File

@ -5308,7 +5308,7 @@ parameter. Patch by Kumar Aditya.
.. section: Build .. section: Build
Python now always use the ``%zu`` and ``%zd`` printf formats to format a Python now always use the ``%zu`` and ``%zd`` printf formats to format a
``size_t`` or ``Py_ssize_t`` number. Building Python 3.12 requires a C11 :c:type:`size_t` or ``Py_ssize_t`` number. Building Python 3.12 requires a C11
compiler, so these printf formats are now always supported. Patch by Victor compiler, so these printf formats are now always supported. Patch by Victor
Stinner. Stinner.

View File

@ -2382,7 +2382,7 @@ Patch by Dong-hee Na.
.. section: C API .. section: C API
Add support of more formatting options (left aligning, octals, uppercase Add support of more formatting options (left aligning, octals, uppercase
hexadecimals, :c:expr:`intmax_t`, :c:expr:`ptrdiff_t`, :c:expr:`wchar_t` C hexadecimals, :c:type:`intmax_t`, :c:type:`ptrdiff_t`, :c:type:`wchar_t` C
strings, variable width and precision) in :c:func:`PyUnicode_FromFormat` and strings, variable width and precision) in :c:func:`PyUnicode_FromFormat` and
:c:func:`PyUnicode_FromFormatV`. :c:func:`PyUnicode_FromFormatV`.

View File

@ -1,4 +1,4 @@
Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types: use directly Deprecate the old ``Py_UNICODE`` and ``PY_UNICODE_TYPE`` types: use directly
the ``wchar_t`` type instead. Since Python 3.3, ``Py_UNICODE`` and the :c:type:`wchar_t` type instead. Since Python 3.3, ``Py_UNICODE`` and
``PY_UNICODE_TYPE`` are just aliases to ``wchar_t``. Patch by Victor ``PY_UNICODE_TYPE`` are just aliases to :c:type:`wchar_t`. Patch by Victor
Stinner. Stinner.

View File

@ -0,0 +1 @@
Add a number of standard external names to ``nitpick_ignore``.