diff options
author | Pablo Galindo <Pablogsal@gmail.com> | 2021-03-23 23:57:03 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-23 23:57:03 (GMT) |
commit | d9692027f41ee7600fe401c066617ebfc8bac930 (patch) | |
tree | c4e711c343099c3a695701fede2d5147a168c021 | |
parent | a81fca6ec8e0f748f8eafa12fb12cf9e12df465c (diff) | |
download | cpython-d9692027f41ee7600fe401c066617ebfc8bac930.zip cpython-d9692027f41ee7600fe401c066617ebfc8bac930.tar.gz cpython-d9692027f41ee7600fe401c066617ebfc8bac930.tar.bz2 |
bpo-31861: Complete the C-API docs for PyObject_GetAiter and PyAiter_Check (GH-25004)
-rw-r--r-- | Doc/c-api/iter.rst | 6 | ||||
-rw-r--r-- | Doc/c-api/object.rst | 11 | ||||
-rw-r--r-- | Doc/data/refcounts.dat | 6 | ||||
-rw-r--r-- | Doc/data/stable_abi.dat | 2 | ||||
-rw-r--r-- | Doc/library/functions.rst | 2 |
5 files changed, 27 insertions, 0 deletions
diff --git a/Doc/c-api/iter.rst b/Doc/c-api/iter.rst index 5706777..63290e0 100644 --- a/Doc/c-api/iter.rst +++ b/Doc/c-api/iter.rst @@ -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) diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst index 1100af1..42e3340 100644 --- a/Doc/c-api/object.rst +++ b/Doc/c-api/object.rst @@ -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 diff --git a/Doc/data/refcounts.dat b/Doc/data/refcounts.dat index 8a6ee71..505f120 100644 --- a/Doc/data/refcounts.dat +++ b/Doc/data/refcounts.dat @@ -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: diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat index 67d01da..3adee10 100644 --- a/Doc/data/stable_abi.dat +++ b/Doc/data/stable_abi.dat @@ -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 diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 4e2e58e..5cb1df9 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -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) |