commit 06f14a56002e365cfab594f1bb065af4e92699b7
Author: Damian Johnson <ata...@torproject.org>
Date:   Sat Aug 29 14:29:28 2015 -0700

    Cache Entry parameters
    
    The Entry class is immutable so we can safely cache the hell out of 
everything.
    No reason to do any work twice.
---
 nyx/connections/entries.py |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/nyx/connections/entries.py b/nyx/connections/entries.py
index 78945f0..579dd5c 100644
--- a/nyx/connections/entries.py
+++ b/nyx/connections/entries.py
@@ -11,6 +11,12 @@ from nyx.util import tor_controller
 from stem.control import Listener
 from stem.util import conf, enum
 
+try:
+  # added in python 3.2
+  from functools import lru_cache
+except ImportError:
+  from stem.util.lru_cache import lru_cache
+
 # attributes we can list entries by
 
 ListingType = enum.Enum(('IP_ADDRESS', 'IP Address'), 'FINGERPRINT', 
'NICKNAME')
@@ -37,7 +43,7 @@ def to_unix_time(dt):
   return (dt - datetime.datetime(1970, 1, 1)).total_seconds()
 
 
-class ConnectionPanelEntry:
+class ConnectionPanelEntry(object):
   def __init__(self, connection_type, start_time):
     self.lines = []
     self._connection_type = connection_type
@@ -72,6 +78,7 @@ class ConnectionPanelEntry:
 
     return self._connection_type
 
+  @lru_cache()
   def is_private(self):
     """
     Returns true if the endpoint is private, possibly belonging to a client
@@ -110,6 +117,7 @@ class ConnectionPanelEntry:
 
     return self.lines
 
+  @lru_cache()
   def get_sort_value(self, attr):
     """
     Provides the value of a single attribute used for sorting purposes.



_______________________________________________
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to