summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-06-12 17:16:35 +0300
committerLars Wirzenius <liw@liw.fi>2016-06-12 17:16:35 +0300
commit5c2ce43eb53fb3f4d242aedb8ad4b6a4c30b4080 (patch)
tree4a9898c0c248856c057ad34f874462e0a4f7a9d3
parent55286470ab9c621b430379b6633873361a7ed08f (diff)
downloadobnam-5c2ce43eb53fb3f4d242aedb8ad4b6a4c30b4080.tar.gz
Don't add the same refs repeatedly to todo
This speeds things up a lot.
-rw-r--r--meliaereader/reader.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/meliaereader/reader.py b/meliaereader/reader.py
index a955b226..0398f2ba 100644
--- a/meliaereader/reader.py
+++ b/meliaereader/reader.py
@@ -71,17 +71,17 @@ class MeliaeReader(object):
def _simple_get_closure(self, ref): # pragma: no cover
closure = set()
- todo = [ref]
+ todo = set([ref])
done = set()
while todo:
- ref = todo.pop(0)
+ ref = todo.pop()
done.add(ref)
closure.add(ref)
obj = self.get_object(ref)
for child_ref in obj['refs']:
if child_ref not in done and child_ref in self:
- todo.append(child_ref)
+ todo.add(child_ref)
return closure