Checking if string contains valid Python code
Question: I am writing some sort of simple web-interpreter for vk.com . I look for
messages, check if they are valid Python code, and then I want to execute that
code, and return any `stdout` to code sender. I have implemented anything but
code checker.

    
    
    import ast
    
    def is_valid(code): 
        try:
            ast.parse(code)
        except SyntaxError:
            print('Input isnt code.')
            return False
        print('Code is ok.')
        return True
    

`is_valid()` always return `True` regardless of what comes in. Im really
confused...


Answer: Keep in mind, the difference between a runtime error and a parser error is
significant in your case and example. The statement:

    
    
    test
    

is _valid_ code. Even though this statement will throw a `NameError` when the
Python VM executes the code, the parser will not know that it actually wasn't
assigned a value before the statement is parsed, so that's why it's a runtime
error, and not a syntax error.

