|
@@ -20,6 +20,8 @@ def get_superclasses(a, b, **remainder):
|
|
|
found.add(name)
|
|
|
|
|
|
# Iterate over all outgoing links
|
|
|
+ if elem is None:
|
|
|
+ print("ERROR: " + str(locals()))
|
|
|
outgoing, = yield [("RO", [elem])]
|
|
|
outgoing = set(outgoing)
|
|
|
while (outgoing):
|
|
@@ -38,8 +40,9 @@ def get_superclasses(a, b, **remainder):
|
|
|
# Look up dst's name and add it
|
|
|
if dst not in cache_value:
|
|
|
dst_name, = yield [("CALL_ARGS", [reverseKeyLookup, [{'id': model_dict}, {'id': dst}]])]
|
|
|
- dst_name_value, = yield [("RV", [dst_name])]
|
|
|
- cache_value[dst] = dst_name_value
|
|
|
+ if 'value' not in dst_name:
|
|
|
+ dst_name['value'], = yield [("RV", [dst_name['id']])]
|
|
|
+ cache_value[dst] = dst_name['value']
|
|
|
dst_name_value = cache_value[dst]
|
|
|
worklist.add(dst_name_value)
|
|
|
|
|
@@ -86,13 +89,11 @@ def reverseKeyLookup(a, b, **remainder):
|
|
|
def instantiated_name(a, b, **remainder):
|
|
|
if "value" not in b:
|
|
|
b['value'], = yield [("RV", [b["id"]])]
|
|
|
- if "id" not in a:
|
|
|
- a['id'], = yield [("CNV", [a['value']])]
|
|
|
|
|
|
if b['value'] == "":
|
|
|
- b['value'] = "__" + str(a['id'])
|
|
|
-
|
|
|
- raise PrimitiveFinished(b)
|
|
|
+ raise PrimitiveFinished({'value': "__" + str(a['id'])})
|
|
|
+ else:
|
|
|
+ raise PrimitiveFinished(b)
|
|
|
|
|
|
def set_merge(a, b, **remainder):
|
|
|
keys, = yield [("RDK", [b['id']])]
|
|
@@ -128,8 +129,7 @@ def dict_eq(a, b, **remainder):
|
|
|
values = yield [("RV", [i]) for i in values]
|
|
|
b_dict = dict(list(zip(key_values, values)))
|
|
|
|
|
|
- result, = yield [("CNV", [a_dict == b_dict])]
|
|
|
- raise PrimitiveFinished(result)
|
|
|
+ raise PrimitiveFinished({'value': a_dict == b_dict})
|
|
|
|
|
|
def string_substr(a, b, c, **remainder):
|
|
|
if "value" not in a:
|