def computeExpressionAttribute(self, lookup_node, attribute_name, trace_collection): value = self.getCompileTimeConstant() if self.computed_attribute is None: self.computed_attribute = hasattr(value, attribute_name) # If it raises, or the attribute itself is a compile time constant, # then do execute it. if not self.computed_attribute or \ isCompileTimeConstantValue(getattr(value, attribute_name)): return trace_collection.getCompileTimeComputationResult( node=lookup_node, computation=lambda: getattr(value, attribute_name), description="Attribute '%s' pre-computed." % (attribute_name)) return lookup_node, None, None
def computeExpressionAttribute(self, lookup_node, attribute_name, trace_collection): value = self.getCompileTimeConstant() if self.computed_attribute is None: self.computed_attribute = hasattr(value, attribute_name) # If it raises, or the attribute itself is a compile time constant, # then do execute it. if not self.computed_attribute or isCompileTimeConstantValue( getattr(value, attribute_name) ): return trace_collection.getCompileTimeComputationResult( node=lookup_node, computation=lambda: getattr(value, attribute_name), description="Attribute '%s' pre-computed." % (attribute_name), ) return lookup_node, None, None