Beispiel #1
0
    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())
Beispiel #2
0
    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