* ``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`
* ``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`
- The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:`PyType_Slot`:
+ The following fields cannot be set at all using :c:type:`PyType_Spec` and
+ :c:type:`PyType_Slot`:
* :c:member:`~PyTypeObject.tp_dict`
* :c:member:`~PyTypeObject.tp_mro`
(see :ref:`PyMemberDef <pymemberdef-offsets>`)
* :c:member:`~PyTypeObject.tp_vectorcall_offset`
(see :ref:`PyMemberDef <pymemberdef-offsets>`)
+
+ The following fields cannot be set using :c:type:`PyType_Spec` and
+ :c:type:`PyType_Slot` under the limited API:
+
* :c:member:`~PyBufferProcs.bf_getbuffer`
* :c:member:`~PyBufferProcs.bf_releasebuffer`
To avoid issues, use the *bases* argument of
:py:func:`PyType_FromSpecWithBases` instead.
+ .. versionchanged:: 3.9
+
+ Slots in :c:type:`PyBufferProcs` in may be set in the unlimited API.
+
.. c:member:: void *PyType_Slot.pfunc
The desired value of the slot. In most cases, this is a pointer