]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-93738: Disallow pre-v3 syntax in the C domain (GH-97962) (#97976)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 6 Oct 2022 17:49:29 +0000 (10:49 -0700)
committerPablo Galindo <pablogsal@gmail.com>
Sat, 22 Oct 2022 19:05:05 +0000 (20:05 +0100)
Also, disable using invalid sphinx-lint 0.6.2.
(cherry picked from commit f612565bd32d4ab0945798da775eea070f08b6fe)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
Doc/c-api/unicode.rst
Doc/conf.py
Doc/extending/newtypes.rst
Doc/extending/newtypes_tutorial.rst
Doc/howto/isolating-extensions.rst
Doc/requirements.txt
Doc/whatsnew/2.2.rst
Doc/whatsnew/2.5.rst

index eb99013395360ad241ca75b53482f5915759c373..eda0132b14a86f9828bf316499ac5318b42842cb 100644 (file)
@@ -17,8 +17,8 @@ of Unicode characters while staying memory efficient.  There are special cases
 for strings where all code points are below 128, 256, or 65536; otherwise, code
 points must be below 1114112 (which is the full Unicode range).
 
-:c:type:`Py_UNICODE*` and UTF-8 representations are created on demand and cached
-in the Unicode object.  The :c:type:`Py_UNICODE*` representation is deprecated
+:c:expr:`Py_UNICODE*` and UTF-8 representations are created on demand and cached
+in the Unicode object.  The :c:expr:`Py_UNICODE*` representation is deprecated
 and inefficient.
 
 Due to the transition between the old APIs and the new APIs, Unicode objects
@@ -30,7 +30,7 @@ can internally be in two states depending on how they were created:
 
 * "legacy" Unicode objects have been created through one of the deprecated
   APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the
-  :c:type:`Py_UNICODE*` representation; you will have to call
+  :c:expr:`Py_UNICODE*` representation; you will have to call
   :c:func:`PyUnicode_READY` on them before calling any other API.
 
 .. note::
@@ -236,7 +236,7 @@ access to internal read-only data of Unicode objects:
    returned buffer is always terminated with an extra null code point.  It
    may also contain embedded null code points, which would cause the string
    to be truncated when used in most C functions.  The ``AS_DATA`` form
-   casts the pointer to :c:type:`const char *`.  The *o* argument has to be
+   casts the pointer to :c:expr:`const char *`.  The *o* argument has to be
    a Unicode object (not checked).
 
    .. versionchanged:: 3.3
@@ -714,7 +714,7 @@ Extension modules can continue using them, as they will not be removed in Python
 
    Return a read-only pointer to the Unicode object's internal
    :c:type:`Py_UNICODE` buffer, or ``NULL`` on error. This will create the
-   :c:type:`Py_UNICODE*` representation of the object if it is not yet
+   :c:expr:`Py_UNICODE*` representation of the object if it is not yet
    available. The buffer is always terminated with an extra null code point.
    Note that the resulting :c:type:`Py_UNICODE` string may also contain
    embedded null code points, which would cause the string to be truncated when
@@ -730,7 +730,7 @@ Extension modules can continue using them, as they will not be removed in Python
 
    Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:`Py_UNICODE`
    array length (excluding the extra null terminator) in *size*.
-   Note that the resulting :c:type:`Py_UNICODE*` string
+   Note that the resulting :c:expr:`Py_UNICODE*` string
    may contain embedded null code points, which would cause the string to be
    truncated when used in most C functions.
 
index 2e670e5a8569df799b81956a6e7c1486766ca3ef..fd4ee2d5eee8114d4e0a82036afd79576562b131 100644 (file)
@@ -234,13 +234,3 @@ linkcheck_ignore = [r'https://bugs.python.org/(issue)?\d+']
 # Relative filename of the data files
 refcount_file = 'data/refcounts.dat'
 stable_abi_file = 'data/stable_abi.dat'
-
-# Sphinx 2 and Sphinx 3 compatibility
-# -----------------------------------
-
-# bpo-40204: Allow Sphinx 2 syntax in the C domain
-c_allow_pre_v3 = True
-
-# bpo-40204: Disable warnings on Sphinx 2 syntax of the C domain since the
-# documentation is built with -W (warnings treated as errors).
-c_warn_on_allowed_pre_v3 = False
index c7c434e58bf04bcd6425375beffb25032c14923e..5ba6383640cc730a416f22239733fbad257288da 100644 (file)
@@ -207,8 +207,8 @@ a special case, for which the new value passed to the handler is ``NULL``.
 
 Python supports two pairs of attribute handlers; a type that supports attributes
 only needs to implement the functions for one pair.  The difference is that one
-pair takes the name of the attribute as a :c:type:`char\*`, while the other
-accepts a :c:type:`PyObject\*`.  Each type can use whichever pair makes more
+pair takes the name of the attribute as a :c:expr:`char\*`, while the other
+accepts a :c:expr:`PyObject*`.  Each type can use whichever pair makes more
 sense for the implementation's convenience. ::
 
    getattrfunc  tp_getattr;        /* char * version */
@@ -219,7 +219,7 @@ sense for the implementation's convenience. ::
 
 If accessing attributes of an object is always a simple operation (this will be
 explained shortly), there are generic implementations which can be used to
-provide the :c:type:`PyObject\*` version of the attribute management functions.
+provide the :c:expr:`PyObject*` version of the attribute management functions.
 The actual need for type-specific attribute handlers almost completely
 disappeared starting with Python 2.2, though there are many examples which have
 not been updated to use some of the new generic mechanism that is available.
@@ -339,9 +339,9 @@ of ``NULL`` is required.
 Type-specific Attribute Management
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-For simplicity, only the :c:type:`char\*` version will be demonstrated here; the
-type of the name parameter is the only difference between the :c:type:`char\*`
-and :c:type:`PyObject\*` flavors of the interface. This example effectively does
+For simplicity, only the :c:expr:`char\*` version will be demonstrated here; the
+type of the name parameter is the only difference between the :c:expr:`char\*`
+and :c:expr:`PyObject*` flavors of the interface. This example effectively does
 the same thing as the generic example above, but does not use the generic
 support added in Python 2.2.  It explains how the handler functions are
 called, so that if you do need to extend their functionality, you'll understand
@@ -572,7 +572,7 @@ performance-critical objects (such as numbers).
 
 For an object to be weakly referencable, the extension type must do two things:
 
-#. Include a :c:type:`PyObject\*` field in the C object structure dedicated to
+#. Include a :c:expr:`PyObject*` field in the C object structure dedicated to
    the weak reference mechanism.  The object's constructor should leave it
    ``NULL`` (which is automatic when using the default
    :c:member:`~PyTypeObject.tp_alloc`).
index 34c25d1f6f199c3da791536322dfa528833a311e..5d4a3f06dd54026fc28eab5ef87d960e39557f70 100644 (file)
@@ -24,7 +24,7 @@ The Basics
 ==========
 
 The :term:`CPython` runtime sees all Python objects as variables of type
-:c:type:`PyObject\*`, which serves as a "base type" for all Python objects.
+:c:expr:`PyObject*`, which serves as a "base type" for all Python objects.
 The :c:type:`PyObject` structure itself only contains the object's
 :term:`reference count` and a pointer to the object's "type object".
 This is where the action is; the type object determines which (C) functions
index 8ee7e5e28479a54f7d680cc35d5f78ceeaeb359c..2657b4ec6aaf9fa4c6ad51ae60bf3e7c8ee1c184 100644 (file)
@@ -411,7 +411,7 @@ that subclass, which may be defined in different module than yours.
           pass
 
 For a method to get its "defining class", it must use the
-:c:data:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`
+:data:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`
 :c:type:`calling convention <PyMethodDef>`
 and the corresponding :c:type:`PyCMethod` signature::
 
index 960ac54d7b91ef3d63fe22ccd759c67bc6c1ddc0..be058733fcf4d71cbac7d4b672248e2a4009e29d 100644 (file)
@@ -10,7 +10,7 @@ blurb
 # sphinx-lint 0.6.2 yields many default role errors due to the new regular
 # expression used for default role detection, so we don't use the version
 # until the errors are fixed.
-sphinx-lint==0.6.1
+sphinx-lint<1,!=0.6.2
 
 # The theme used by the documentation is stored separately, so we need
 # to install that as well.
index 9355c1badaa215fbe250b61054fedbe166778d7b..b3d6ff63c4e15fb228b21c2d5a6b8b136441215d 100644 (file)
@@ -1102,7 +1102,7 @@ code, none of the changes described here will affect you very much.
 * A different argument parsing function, :c:func:`PyArg_UnpackTuple`, has been
   added that's simpler and presumably faster.  Instead of specifying a format
   string, the caller simply gives the minimum and maximum number of arguments
-  expected, and a set of pointers to :c:type:`PyObject\*` variables that will be
+  expected, and a set of pointers to :c:expr:`PyObject*` variables that will be
   filled in with argument values.
 
 * Two new flags :const:`METH_NOARGS` and :const:`METH_O` are available in method
index 6c216826fee047550e44cf29064bea2fff9f22ba..880fbaaac8bebfac55bce3a8634af6b5c5b55e04 100644 (file)
@@ -1725,7 +1725,7 @@ attribute of the function object to  change this::
 ``ctypes.pythonapi`` object.  This object does *not*  release the global
 interpreter lock before calling a function, because the lock must be held when
 calling into the interpreter's code.   There's a :class:`py_object()` type
-constructor that will create a  :c:type:`PyObject \*` pointer.  A simple usage::
+constructor that will create a  :c:expr:`PyObject *` pointer.  A simple usage::
 
    import ctypes