This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: inspect - getasyncgeneratorstate, getasyncgeneratorlocals
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 3.11, Python 3.10
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: animatea.programming, xtreak
Priority: normal Keywords:

Created on 2022-04-01 18:40 by animatea.programming, last changed 2022-04-11 14:59 by admin.

Messages (2)
msg416505 - (view) Author: Animatea Animatea (animatea.programming) Date: 2022-04-01 18:40
Create inspect introspection functions for asyncgen.

```py
ASYNCGEN_CREATED = 'ASYNCGEN_CREATED'
ASYNCGEN_RUNNING = 'ASYNCGEN_RUNNING'
ASYNCGEN_SUSPENDED = 'ASYNCGEN_SUSPENDED'
ASYNCGEN_CLOSED = 'ASYNCGEN_CLOSED'

def getasyncgeneratorstate(asyncgenerator):
    """Get current state of a async generator-iterator.

    Possible states are:
      ASYNCGEN_CREATED: Waiting to start execution.
      ASYNCGEN_RUNNING: Currently being executed by the interpreter.
      ASYNCGEN_SUSPENDED: Currently suspended at a yield expression.
      ASYNCGEN_CLOSED: Execution has completed.
    """
    if asyncgenerator.ag_running:
        return ASYNCGEN_RUNNING
    if asyncgenerator.ag_frame is None:
        return ASYNCGEN_CLOSED
    if asyncgenerator.ag_frame.f_lasti == -1:
        return ASYNCGEN_CREATED
    return ASYNCGEN_SUSPENDED


def getasyncgeneratorlocals(asyncgenerator):
    """
    Get the mapping of async generator local variables to their current values.

    A dict is returned, with the keys the local variable names and values the
    bound values."""

    if not isasyncgen(asyncgenerator):
        raise TypeError("{!r} is not a Python generator".format(asyncgenerator))

    frame = getattr(asyncgenerator, "ag_frame", None)
    if frame is not None:
        return asyncgenerator.ag_frame.f_locals
    else:
        return {}
```
msg416516 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2022-04-01 20:20
Seems to be duplicate of https://bugs.python.org/issue35759
History
Date User Action Args
2022-04-11 14:59:58adminsetgithub: 91347
2022-04-01 20:20:37xtreaksetnosy: + xtreak
messages: + msg416516
2022-04-01 18:40:34animatea.programmingcreate