Kaynağa Gözat

More efficient reverseKeyLookup

Yentl Van Tendeloo 7 yıl önce
ebeveyn
işleme
7f02000b03
1 değiştirilmiş dosya ile 8 ekleme ve 10 silme
  1. 8 10
      kernel/modelverse_kernel/compiled.py

+ 8 - 10
kernel/modelverse_kernel/compiled.py

@@ -96,16 +96,14 @@ def reverseKeyLookup(a, b, **remainder):
     if edges_out is None or edges_in is None:
         yield [("RETURN", [{'value': ""}])]
 
-    options = set(edges_out) & set(edges_in)
-    # Select one option randomly
-    while options:
-        edge = options.pop()
-        out_edges, = yield [("RO", [edge])]
-        # Select one option randomly
-        if out_edges:
-            out_edge = out_edges.pop()
-            e, = yield [("RE", [out_edge])]
-            yield [("RETURN", [{'id': e[1]}])]
+    for edge in edges_in:
+        if edge in edges_out:
+            out_edges, = yield [("RO", [edge])]
+            # Select one option randomly
+            if out_edges:
+                out_edge = out_edges.pop()
+                e, = yield [("RE", [out_edge])]
+                yield [("RETURN", [{'id': e[1]}])]
     yield [("RETURN", [{'value': ""}])]
 
 def instantiated_name(a, b, **remainder):