First but not optimized version of AstFormatDict
This commit is contained in:
@@ -37,10 +37,15 @@ class PythonNode(Node):
|
||||
|
||||
def __init__(self, source, ast_=None, objects=None):
|
||||
self.source = source
|
||||
self.ast_ = ast_ if ast_ else ast.parse(source, mode="eval") if source else None
|
||||
self.ast_ = ast_ # if ast_ else ast.parse(source, mode="eval") if source else None
|
||||
self.objects = objects or {} # when objects (mainly concepts or rules) are recognized in the expression
|
||||
self.compiled = None
|
||||
|
||||
def init_ast(self):
|
||||
if self.ast_ is None and self.source:
|
||||
self.ast_ = ast.parse(self.source, mode="eval")
|
||||
return self
|
||||
|
||||
def get_compiled(self):
|
||||
if self.compiled is None:
|
||||
self.compiled = compile(self.ast_, "<string>", "eval")
|
||||
@@ -60,10 +65,12 @@ class PythonNode(Node):
|
||||
if self.source != other.source:
|
||||
return False
|
||||
|
||||
self_dump = self.get_dump(self.ast_)
|
||||
other_dump = self.get_dump(other.ast_)
|
||||
if self.ast_ and other.ast_:
|
||||
self_dump = self.get_dump(self.ast_)
|
||||
other_dump = self.get_dump(other.ast_)
|
||||
return self_dump == other_dump
|
||||
|
||||
return self_dump == other_dump
|
||||
return True
|
||||
|
||||
def __hash__(self):
|
||||
return hash((self.source, self.ast_.hash))
|
||||
|
||||
Reference in New Issue
Block a user