optimize sorts
authorSofia Papagiannaki <papagian@gmail.com>
Tue, 26 Jun 2012 16:06:36 +0000 (19:06 +0300)
committerSofia Papagiannaki <papagian@gmail.com>
Tue, 26 Jun 2012 16:06:36 +0000 (19:06 +0300)
snf-pithos-backend/pithos/backends/modular.py

index b3ab147..d1e3126 100644 (file)
@@ -324,13 +324,12 @@ class ModularBackend(BaseBackend):
             start, limit = self._list_limits(allowed, marker, limit)
             return allowed[start:start + limit]
         if shared or public:
-            allowed = []
+            allowed = set()
             if shared:
-                allowed.extend([x.split('/', 2)[1] for x in self.permissions.access_list_shared(account)])
+                allowed.update([x.split('/', 2)[1] for x in self.permissions.access_list_shared(account)])
             if public:
-                allowed.extend([x[0].split('/', 2)[1] for x in self.permissions.public_list(account)])
-            allowed = list(set(allowed))
-            allowed.sort()
+                allowed.update([x[0].split('/', 2)[1] for x in self.permissions.public_list(account)])
+            allowed = sorted(allowed)
             start, limit = self._list_limits(allowed, marker, limit)
             return allowed[start:start + limit]
         node = self.node.node_lookup(account)
@@ -529,13 +528,12 @@ class ModularBackend(BaseBackend):
             if not allowed:
                 raise NotAllowedError
         else:
-            allowed = []
+            allowed = set()
             if shared:
-                allowed.extend(self.permissions.access_list_shared(path))
+                allowed.update(self.permissions.access_list_shared(path))
             if public:
-                allowed.extend([x[0] for x in self.permissions.public_list(path)])
-            allowed = list(set(allowed))
-            allowed.sort()
+                allowed.update([x[0] for x in self.permissions.public_list(path)])
+            allowed = sorted(allowed)
             if not allowed:
                 return []
         return allowed