in rules/predicate.py [0:0]
def from_string(cls, predicate_str: str):
attribute_name, operator, value = re.split(r'(==|=|!=|<=|<|>=|>)', predicate_str)
# partial order in predicate indicates numerical type
if operator[0] == '<' or operator[0] == '>':
value = ast.literal_eval(value)
if operator == '=':
operator = '=='
return cls(attribute_name, operator, value)