commit 36bcb170ba9097885902513640075eac2e6ce384 Author: Calin Culianu calin.culianu@gmail.com Date: Mon Nov 8 18:15:59 2021 -0600
Fixup for Python 3.10
Closes issue #109. Long story short: a few names from collection are now moved to collection.abc exclusively starting in Python 3.10. The only name this app uses from there that was moved is `collections.Iterable`. Python versions starting from 3.3 support both `collections.Iterable` and `collections.abc.Iterable` as the way to refer to this class, which Python 3.10 being the first one to drop `collections.Iterable`. So.. we just work around this API quirk and always refer ot it as `collections.abc.Iterable`. --- stem/control.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/stem/control.py b/stem/control.py index 40ca6bed..159b2046 100644 --- a/stem/control.py +++ b/stem/control.py @@ -247,6 +247,7 @@ If you're fine with allowing your script to raise exceptions then this can be mo import asyncio import calendar import collections +import collections.abc import datetime import functools import inspect @@ -2496,7 +2497,7 @@ class Controller(BaseController): for param, value in params_list: if isinstance(value, str): query_comp.append('%s="%s"' % (param, value.strip())) - elif isinstance(value, collections.Iterable): + elif isinstance(value, collections.abc.Iterable): query_comp.extend(['%s="%s"' % (param, val.strip()) for val in value]) elif not value: query_comp.append(param)
tor-commits@lists.torproject.org