summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2021-03-23 23:57:03 (GMT)
committerGitHub <noreply@github.com>2021-03-23 23:57:03 (GMT)
commitd9692027f41ee7600fe401c066617ebfc8bac930 (patch)
treec4e711c343099c3a695701fede2d5147a168c021
parenta81fca6ec8e0f748f8eafa12fb12cf9e12df465c (diff)
downloadcpython-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.rst6
-rw-r--r--Doc/c-api/object.rst11
-rw-r--r--Doc/data/refcounts.dat6
-rw-r--r--Doc/data/stable_abi.dat2
-rw-r--r--Doc/library/functions.rst2
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)