bpo-31861: Complete the C-API docs for PyObject_GetAiter and PyAiter_Check (GH-25004)

This commit is contained in:
Pablo Galindo 2021-03-23 23:57:03 +00:00 committed by GitHub
parent a81fca6ec8
commit d9692027f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 0 deletions

View File

@ -12,6 +12,12 @@ There are two functions specifically for working with iterators.
Return non-zero if the object *o* supports the iterator protocol, and ``0``
otherwise. This function always succeeds.
.. c:function:: int PyAiter_Check(PyObject *o)
Returns non-zero if the object 'obj' provides :class:`AsyncIterator`
protocols, and ``0`` otherwise. This function always succeeds.
.. versionadded:: 3.10
.. c:function:: PyObject* PyIter_Next(PyObject *o)

View File

@ -356,3 +356,14 @@ Object Protocol
iterator for the object argument, or the object itself if the object is already
an iterator. Raises :exc:`TypeError` and returns ``NULL`` if the object cannot be
iterated.
.. c:function:: PyObject* PyObject_GetAiter(PyObject *o)
This is the equivalent to the Python expression ``aiter(o)``. Takes an
:class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it.
This is typically a new iterator but if the argument is an
:class:`AsyncIterator`, this returns itself. Raises :exc:`TypeError` and
returns ``NULL`` if the object cannot be iterated.
.. versionadded:: 3.10

View File

@ -1073,6 +1073,9 @@ PyInterpreterState_New:PyInterpreterState*:::
PyIter_Check:int:::
PyIter_Check:PyObject*:o:0:
PyAiter_Check:int:::
PyAiter_Check:PyObject*:o:0:
PyIter_Next:PyObject*::+1:
PyIter_Next:PyObject*:o:0:
@ -1679,6 +1682,9 @@ PyObject_GetItem:PyObject*:key:0:
PyObject_GetIter:PyObject*::+1:
PyObject_GetIter:PyObject*:o:0:
PyObject_GetAiter:PyObject*::+1:
PyObject_GetAiter:PyObject*:o:0:
PyObject_HasAttr:int:::
PyObject_HasAttr:PyObject*:o:0:
PyObject_HasAttr:PyObject*:attr_name:0:

View File

@ -1,5 +1,6 @@
# File generated by 'make regen-limited-abi'
# This is NOT an authoritative list of stable ABI symbols
PyAiter_Check
PyArg_Parse
PyArg_ParseTuple
PyArg_ParseTupleAndKeywords
@ -465,6 +466,7 @@ PyObject_GenericGetAttr
PyObject_GenericGetDict
PyObject_GenericSetAttr
PyObject_GenericSetDict
PyObject_GetAiter
PyObject_GetAttr
PyObject_GetAttrString
PyObject_GetItem

View File

@ -71,6 +71,7 @@ are always available. They are listed here in alphabetical order.
Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant.
.. versionadded:: 3.10
.. function:: all(iterable)
@ -97,6 +98,7 @@ are always available. They are listed here in alphabetical order.
iterator. If *default* is given, it is returned if the iterator is exhausted,
otherwise :exc:`StopAsyncIteration` is raised.
.. versionadded:: 3.10
.. function:: any(iterable)