New submission from Animatea Animatea <animatea.programm...@gmail.com>:
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 {} ``` ---------- components: Library (Lib) messages: 416505 nosy: animatea.programming priority: normal severity: normal status: open title: inspect - getasyncgeneratorstate, getasyncgeneratorlocals type: enhancement versions: Python 3.10, Python 3.11 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue47191> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com