from modelverse_kernel.primitives import PrimitiveFinished def reverseKeyLookup(a, b, **remainder): edges = yield [("RO", [a])] expanded_edges = yield [("RE", [i]) for i in edges] for i, edge in enumerate(expanded_edges): if b == edge[1]: # Found our edge: edges[i] outgoing = yield [("RO", [edges[i]])] result = yield [("RE", [outgoing[0]])] raise PrimitiveFinished(result[1]) result = yield [("CNV", ["(unknown: %s)" % b])] raise PrimitiveFinished(result)