[tor-commits] [stem/master] connect() broke Controller's iterator methods
atagar at torproject.org
atagar at torproject.org
Fri Oct 2 23:16:05 UTC 2020
commit e1137067509f005504731157297096f9890b5f7d
Author: Damian Johnson <atagar at torproject.org>
Date: Fri Oct 2 15:52:48 2020 -0700
connect() broke Controller's iterator methods
Damn I need to rewrite our connection module. As indicated by the TODO comment,
this method copies some of Synchronous' init. No surprise then that when I
fixed Synchronous' iterators the fix didn't get propagated here.
Caught thanks to toralf noticing that our relay_connections.py example didn't
work...
% python3.7 relay_connections.py
0.4.5.0-alpha-dev uptime: 14:27 flags: none
Traceback (most recent call last):
File "relay_connections.py", line 130, in <module>
main()
File "relay_connections.py", line 50, in main
for desc in controller.get_network_statuses():
TypeError: 'async_generator' object is not iterable
---
stem/connection.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/stem/connection.py b/stem/connection.py
index 68cfda45..005949ef 100644
--- a/stem/connection.py
+++ b/stem/connection.py
@@ -305,7 +305,7 @@ def connect(control_port: Tuple[str, Union[str, int]] = ('127.0.0.1', 'default')
pass
elif isinstance(func, unittest.mock.Mock) and inspect.iscoroutinefunction(func.side_effect):
setattr(connection, name, functools.partial(connection._run_async_method, name))
- elif inspect.ismethod(func) and inspect.iscoroutinefunction(func):
+ elif inspect.ismethod(func) and (inspect.iscoroutinefunction(func) or inspect.isasyncgenfunction(func)):
setattr(connection, name, functools.partial(connection._run_async_method, name))
return connection
More information about the tor-commits
mailing list