gh-79940: add introspection API for asynchronous generators#11590
gh-79940: add introspection API for asynchronous generators#11590kumaraditya303 merged 6 commits into
Conversation
|
@1st1 This PR is open for some time now, is it still considered? Also, it appears that the CI/CD pipeline got stuck, the Ubuntu & Windows status is in limbo |
Sorry, something went wrong.
|
Rebased this branch onto main and adapted docs and unit tests for Python 3.11 |
Sorry, something went wrong.
37a7c35 to
cdedc91
Compare
February 26, 2023 22:24
The functions inspect.getasyncgenstate and inspect.getasyncgenlocals allow to determine the current state of asynchronous generators and mirror the introspection API for generators and coroutines.
cdedc91 to
bca9939
Compare
February 26, 2023 22:32
|
Rebased this branch onto main and adapted docs and unit tests for Python 3.12 Following additional changes:
|
Sorry, something went wrong.
|
Adapting |
Sorry, something went wrong.
kumaraditya303
left a comment
There was a problem hiding this comment.
LGTM, thanks for working on this!
Sorry, something went wrong.
⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️Hi! The buildbot wasm32-emscripten node (dynamic linking) 3.x has failed when building commit ced13c9. What do you need to do:
You can take a look at the buildbot page here: https://buildbot.python.org/all/#builders/1056/builds/1507 Failed tests:
Summary of the results of the build (if available): == Tests result: FAILURE == 334 tests OK. 10 slowest tests:
1 test failed: 99 tests skipped: Total duration: 26 min 38 sec Click to see traceback logsremote: Enumerating objects: 18, done.
remote: Counting objects: 5% (1/17)
remote: Counting objects: 11% (2/17)
remote: Counting objects: 17% (3/17)
remote: Counting objects: 23% (4/17)
remote: Counting objects: 29% (5/17)
remote: Counting objects: 35% (6/17)
remote: Counting objects: 41% (7/17)
remote: Counting objects: 47% (8/17)
remote: Counting objects: 52% (9/17)
remote: Counting objects: 58% (10/17)
remote: Counting objects: 64% (11/17)
remote: Counting objects: 70% (12/17)
remote: Counting objects: 76% (13/17)
remote: Counting objects: 82% (14/17)
remote: Counting objects: 88% (15/17)
remote: Counting objects: 94% (16/17)
remote: Counting objects: 100% (17/17)
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 7% (1/14)
remote: Compressing objects: 14% (2/14)
remote: Compressing objects: 21% (3/14)
remote: Compressing objects: 28% (4/14)
remote: Compressing objects: 35% (5/14)
remote: Compressing objects: 42% (6/14)
remote: Compressing objects: 50% (7/14)
remote: Compressing objects: 57% (8/14)
remote: Compressing objects: 64% (9/14)
remote: Compressing objects: 71% (10/14)
remote: Compressing objects: 78% (11/14)
remote: Compressing objects: 85% (12/14)
remote: Compressing objects: 92% (13/14)
remote: Compressing objects: 100% (14/14)
remote: Compressing objects: 100% (14/14), done.
remote: Total 18 (delta 3), reused 5 (delta 3), pack-reused 1
From https://github.com/python/cpython
* branch main -> FETCH_HEAD
Note: switching to 'ced13c96a4eb9391a9d27e3e13218f70c579670f'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at ced13c96a4 gh-79940: add introspection API for asynchronous generators to `inspect` module (#11590)
Switched to and reset branch 'main'
../../Objects/obmalloc.c:775:1: warning: always_inline function might not be inlinable [-Wattributes]
775 | arena_map_get(pymem_block *p, int create)
| ^~~~~~~~~~~~~
configure: ../../configure --prefix $(PWD)/target/host --with-pydebug --without-pydebug --with-emscripten-target=node --enable-wasm-dynamic-linking --disable-wasm-pthreads --build=x86_64-pc-linux-gnu --host=wasm32-unknown-emscripten --with-build-python=../build/python
configure: WARNING: using cross tools not prefixed with host triplet
mcc: error: no input files
make: make -j2 all
../../Python/initconfig.c:2360:27: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
~~~~~~~~~~~~~ ^~~~~~~~~~~~~
../../Python/initconfig.c:145:18: note: format string is defined here
"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n"
^~~
%c
../../Python/initconfig.c:2360:42: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
~~~~~~~~~~~~~ ^~~~~~~~~~~~~
../../Python/initconfig.c:148:58: note: format string is defined here
"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
^~~
%c
2 warnings generated.
../../Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
^~~~~~
../../Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
else if (0 && parser->m_characterDataHandler)
^
/* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
^~~~~~
../../Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
else if (0 && parser->m_characterDataHandler)
^
/* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:7703:11: warning: format specifies type 'int' but the argument has type 'ptrdiff_t' (aka 'long') [-Wformat]
bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP",
^~~~~~~~~
3 warnings generated.
../../Modules/socketmodule.c:4047:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
__CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4100:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
__CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4724:54: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
cmsgh = (i == 0) ? CMSG_FIRSTHDR(&msg) : CMSG_NXTHDR(&msg, cmsgh);
^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
__CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
../../Modules/_sqlite/connection.c:2197:19: warning: result of comparison of constant 9223372036854775807 with expression of type 'Py_ssize_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare]
if (data->len > 9223372036854775807) { // (1 << 63) - 1
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
1 warning generated.
make: *** [Makefile:1913: buildbottest] Error 2
Cannot open file '/opt/buildbot/bcannon-wasm/3.x.bcannon-wasm.emscripten-node-dl/build/build/build_oot/host/test-results.xml' for upload |
Sorry, something went wrong.
⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️Hi! The buildbot wasm32-emscripten node (pthreads) 3.x has failed when building commit ced13c9. What do you need to do:
You can take a look at the buildbot page here: https://buildbot.python.org/all/#builders/1050/builds/1504 Failed tests:
Summary of the results of the build (if available): == Tests result: FAILURE == 338 tests OK. 10 slowest tests:
1 test failed: 95 tests skipped: Total duration: 25 min 52 sec Click to see traceback logsremote: Enumerating objects: 18, done.
remote: Counting objects: 5% (1/17)
remote: Counting objects: 11% (2/17)
remote: Counting objects: 17% (3/17)
remote: Counting objects: 23% (4/17)
remote: Counting objects: 29% (5/17)
remote: Counting objects: 35% (6/17)
remote: Counting objects: 41% (7/17)
remote: Counting objects: 47% (8/17)
remote: Counting objects: 52% (9/17)
remote: Counting objects: 58% (10/17)
remote: Counting objects: 64% (11/17)
remote: Counting objects: 70% (12/17)
remote: Counting objects: 76% (13/17)
remote: Counting objects: 82% (14/17)
remote: Counting objects: 88% (15/17)
remote: Counting objects: 94% (16/17)
remote: Counting objects: 100% (17/17)
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 6% (1/15)
remote: Compressing objects: 13% (2/15)
remote: Compressing objects: 20% (3/15)
remote: Compressing objects: 26% (4/15)
remote: Compressing objects: 33% (5/15)
remote: Compressing objects: 40% (6/15)
remote: Compressing objects: 46% (7/15)
remote: Compressing objects: 53% (8/15)
remote: Compressing objects: 60% (9/15)
remote: Compressing objects: 66% (10/15)
remote: Compressing objects: 73% (11/15)
remote: Compressing objects: 80% (12/15)
remote: Compressing objects: 86% (13/15)
remote: Compressing objects: 93% (14/15)
remote: Compressing objects: 100% (15/15)
remote: Compressing objects: 100% (15/15), done.
remote: Total 18 (delta 2), reused 3 (delta 2), pack-reused 1
From https://github.com/python/cpython
* branch main -> FETCH_HEAD
Note: switching to 'ced13c96a4eb9391a9d27e3e13218f70c579670f'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at ced13c96a4 gh-79940: add introspection API for asynchronous generators to `inspect` module (#11590)
Switched to and reset branch 'main'
../../Objects/obmalloc.c:775:1: warning: always_inline function might not be inlinable [-Wattributes]
775 | arena_map_get(pymem_block *p, int create)
| ^~~~~~~~~~~~~
configure: ../../configure --prefix $(PWD)/target/host --with-pydebug --without-pydebug --with-emscripten-target=node --disable-wasm-dynamic-linking --enable-wasm-pthreads --build=x86_64-pc-linux-gnu --host=wasm32-unknown-emscripten --with-build-python=../build/python
configure: WARNING: using cross tools not prefixed with host triplet
mcc: error: no input files
make: make -j2 all
../../Python/initconfig.c:2360:27: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
~~~~~~~~~~~~~ ^~~~~~~~~~~~~
../../Python/initconfig.c:145:18: note: format string is defined here
"PYTHONPATH : '%lc'-separated list of directories prefixed to the\n"
^~~
%c
../../Python/initconfig.c:2360:42: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
~~~~~~~~~~~~~ ^~~~~~~~~~~~~
../../Python/initconfig.c:148:58: note: format string is defined here
"PYTHONHOME : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
^~~
%c
2 warnings generated.
../../Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
^~~~~~
../../Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
else if (0 && parser->m_characterDataHandler)
^
/* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
^~~~~~
../../Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
else if (0 && parser->m_characterDataHandler)
^
/* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:7703:11: warning: format specifies type 'int' but the argument has type 'ptrdiff_t' (aka 'long') [-Wformat]
bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP",
^~~~~~~~~
3 warnings generated.
../../Modules/socketmodule.c:4047:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
__CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4100:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
__CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4724:54: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
cmsgh = (i == 0) ? CMSG_FIRSTHDR(&msg) : CMSG_NXTHDR(&msg, cmsgh);
^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
__CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
../../Modules/_sqlite/connection.c:2197:19: warning: result of comparison of constant 9223372036854775807 with expression of type 'Py_ssize_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare]
if (data->len > 9223372036854775807) { // (1 << 63) - 1
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
1 warning generated.
mcc: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]
make: *** [Makefile:1912: buildbottest] Error 2
Cannot open file '/opt/buildbot/bcannon-wasm/3.x.bcannon-wasm.emscripten-node-pthreads/build/build/build_oot/host/test-results.xml' for upload |
Sorry, something went wrong.
⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️Hi! The buildbot wasm32-wasi 3.x has failed when building commit ced13c9. What do you need to do:
You can take a look at the buildbot page here: https://buildbot.python.org/all/#builders/1046/builds/1540 Failed tests:
Failed subtests:
Summary of the results of the build (if available): == Tests result: FAILURE == 325 tests OK. 10 slowest tests:
1 test failed: 108 tests skipped: Total duration: 8 min 19 sec Click to see traceback logsTraceback (most recent call last):
File "/Lib/unittest/async_case.py", line 85, in _callSetUp
self._asyncioRunner.get_loop()
File "/Lib/asyncio/runners.py", line 83, in get_loop
self._lazy_init()
File "/Lib/asyncio/runners.py", line 137, in _lazy_init
self._loop = events.new_event_loop()
^^^^^^^^^^^^^^^^^^^^^^^
File "/Lib/asyncio/events.py", line 819, in new_event_loop
return get_event_loop_policy().new_event_loop()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Lib/asyncio/events.py", line 716, in new_event_loop
return self._loop_factory()
^^^^^^^^^^^^^^^^^^^^
File "/Lib/asyncio/unix_events.py", line 64, in __init__
super().__init__(selector)
File "/Lib/asyncio/selector_events.py", line 66, in __init__
self._make_self_pipe()
File "/Lib/asyncio/selector_events.py", line 120, in _make_self_pipe
self._ssock, self._csock = socket.socketpair()
^^^^^^^^^^^^^^^^^^^
File "/Lib/socket.py", line 632, in socketpair
lsock = socket(family, type, proto)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Lib/socket.py", line 233, in __init__
_socket.socket.__init__(self, family, type, proto, fileno)
OSError: [Errno 58] Not supported
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
Warning -- Unraisable exception
Exception ignored in: <function BaseEventLoop.__del__ at 0xf59e08>
Traceback (most recent call last):
File "/Lib/asyncio/base_events.py", line 705, in __del__
self.close()
File "/Lib/asyncio/unix_events.py", line 68, in close
super().close()
File "/Lib/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/Lib/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
^^^^^^^^^^^
AttributeError: '_UnixSelectorEventLoop' object has no attribute '_ssock'
k
|
Sorry, something went wrong.
|
Buildbot wasm32 worker seem to be unhappy, asyncio loop initialization fails now in |
Sorry, something went wrong.
Skip `TestGetAsyncGenState` and restoring of the default event loop policy in `test_inspect` if platform lacks working socket support. Fixes python#11590
Skip `TestGetAsyncGenState` and restoring of the default event loop policy in `test_inspect` if platform lacks working socket support. Fixes python#11590
Skip `TestGetAsyncGenState` and restoring of the default event loop policy in `test_inspect` if platform lacks working socket support. Fixes python#11590
…rking sockets (pythonGH-102605) Skip `TestGetAsyncGenState` and restoring of the default event loop policy in `test_inspect` if platform lacks working socket support. Fixes python#11590 Automerge-Triggered-By: GH:kumaraditya303
The
inspectmodule does not contain functions for determining the current state of asynchronous generators. That is, there is no introspection API for asynchronous generators that match the API for generators and coroutines: https://docs.python.org/3.8/library/inspect.html#current-state-of-generators-and-coroutines.The functions
inspect.getasyncgenstateandinspect.getasyncgenlocalsallow to determine the current state of asynchronous generators and mirror the introspection API for generators and coroutines.https://bugs.python.org/issue35759
https://bugs.python.org/issue35759