[tor-commits] [compass/master] Iterate all relays over each filter

karsten at torproject.org karsten at torproject.org
Fri Aug 24 17:12:34 UTC 2012


commit 9bb37cc3e7f541474f349d5f5f30fddb88b856d5
Author: Sathyanarayanan Gunasekaran <gsathya.ceg at gmail.com>
Date:   Mon Aug 20 13:53:55 2012 +0530

    Iterate all relays over each filter
    
    Previously all the filters were iterated over each
    relay. The order of the filter applied couldn't be
    controlled with this approach. Now, we can specify
    the order in which the relays are to be filtered in.
---
 compass.py |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/compass.py b/compass.py
index 971b2e0..544306e 100755
--- a/compass.py
+++ b/compass.py
@@ -130,14 +130,12 @@ class RelayStats(object):
             return self._relays
 
         self._relays = {}
-        for relay in self.data['relays']:
-            accepted = True
-            for f in self._filters:
-                if not f.accept(relay):
-                    accepted = False
-                    break
-            if accepted:
-                self.add_relay(relay)
+        relays = self.data['relays']
+        for f in self._filters:
+            relays = filter(f.accept, relays)
+
+        for relay in relays:
+            self.add_relay(relay)
         return self._relays
 
     def _create_filters(self, options):





More information about the tor-commits mailing list