|
@@ -18,6 +18,13 @@ def reverseKeyLookupMulti(a, b, **remainder):
|
|
|
raise PrimitiveFinished(result)
|
|
|
|
|
|
def reverseKeyLookup(a, b, **remainder):
|
|
|
+ # Guess, which might work
|
|
|
+ guess, = yield [("RD", [a, "__%s" % b])]
|
|
|
+ if guess == b:
|
|
|
+ result, = yield [("CNV", ["__%s" % b])]
|
|
|
+ raise PrimitiveFinished(result)
|
|
|
+
|
|
|
+ # We failed: do the slow way
|
|
|
edges, = yield [("RO", [a])]
|
|
|
expanded_edges = yield [("RE", [i]) for i in edges]
|
|
|
for i, edge in enumerate(expanded_edges):
|