[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [stem/master] Fixup for Python 3.10



commit 36bcb170ba9097885902513640075eac2e6ce384
Author: Calin Culianu <calin.culianu@xxxxxxxxx>
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 mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits