def compile(expression, default_type=None, **types): """Compile 'expression'. 'expression' -- """ if isCompiledExpression(expression): # It is already compiled. return expression expression = asExpression(expression) if default_type is not None: # Set default symbol types. expression = op.setTypesFixed(expression, None, default_type) if len(types) != 0: # Set specific symbol types. expression = op.setTypes(expression, **types) # Do the compilation. expression = op.optimize(expression) return compiler.compile(expression)
def isExpression(object): """Return true if 'object' is an expression object.""" return isCompiledExpression(object) \ or isinstance(object, Expression)