'Compiles a purported Python expression to ast, and alter its
variable references to access values data instead exept for
python buildins.
This compile method is unsafe!
Can be overridden to use a safe eval method.'

def _compile_expr(self, expr):

    st = ast.parse(expr.strip(), mode='eval')
    return Contextifier(builtin_defaults).visit(st).body
