def as_hash_repr(self): c = {} for k, v in self.context.items(): if isinstance(v, Fact): c[k] = frozenset([(fk, fv) for fk, fv in v.items() if not Fact.is_special(fk)]) else: c[k] = v return self.skill, frozenset(c.items())
def get_rule_bindings(self): bindings = {} facts = sorted([(k, v) for k, v in self.context.items() if isinstance(v, Fact)]) facts = [v for k, v in facts] for i, v in enumerate(facts): for fk, fv in v.items(): if Fact.is_special(fk): continue bindings['fact-%i: %s' % (i, fk)] = fv # print(bindings) return bindings