[tor-commits] [stem/master] Revert "Minor simplification for cache fetches"

atagar at torproject.org atagar at torproject.org
Sun Oct 29 01:08:56 UTC 2017


commit 678c3b4d3235d063ee129c8cba067c15c9808762
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Oct 28 18:07:56 2017 -0700

    Revert "Minor simplification for cache fetches"
    
    This change broke the ability for get_info() to accept unicode inputs (or bytes
    under python3)...
    
      >>> controller.get_network_status(u'0881E47137764C907E729C9303C094BD270CC27F')
      Traceback (most recent call last):
        File "<console>", line 1, in <module>
        File "/home/ubuntu/stem/stem/control.py", line 482, in wrapped
          return func(self, *args, **kwargs)
        File "/home/ubuntu/stem/stem/control.py", line 1928, in get_network_status
          desc_content = self.get_info(query, get_bytes = True)
        File "/home/ubuntu/stem/stem/control.py", line 482, in wrapped
          return func(self, *args, **kwargs)
        File "/home/ubuntu/stem/stem/control.py", line 1165, in get_info
          cached_results = self._get_cache_map(map(str.lower, params), 'getinfo')
      TypeError: descriptor 'lower' requires a 'str' object but received a 'unicode'
    
    This reverts commit e134dc59de93de3aef2ae1ec6e9b7a2f194c8eff.
---
 stem/control.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/stem/control.py b/stem/control.py
index eebc24b6..763c6dab 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -1162,7 +1162,8 @@ class Controller(BaseController):
 
     # check for cached results
 
-    cached_results = self._get_cache_map(map(str.lower, params), 'getinfo')
+    from_cache = [param.lower() for param in params]
+    cached_results = self._get_cache_map(from_cache, 'getinfo')
 
     for key in cached_results:
       if key == 'address' and (time.time() - self._address_cached_at) > CACHE_ADDRESS_FOR:
@@ -2194,10 +2195,13 @@ class Controller(BaseController):
     if params == []:
       return {}
 
-    # check for cached results, translating context sensitive options
-
+    # translate context sensitive options
     lookup_params = set([MAPPED_CONFIG_KEYS.get(entry, entry) for entry in params])
-    cached_results = self._get_cache_map(map(str.lower, lookup_params), 'getconf')
+
+    # check for cached results
+
+    from_cache = [param.lower() for param in lookup_params]
+    cached_results = self._get_cache_map(from_cache, 'getconf')
 
     for key in cached_results:
       user_expected_key = _case_insensitive_lookup(lookup_params, key)



More information about the tor-commits mailing list