The codeop module provides a function to compile Python code with hints on whether it is certainly complete, possibly complete or definitely incomplete. This is used by the code module and should not normally be used directly.
The codeop module defines the following function:
'<input>'
.
Returns None
if source is not valid Python
code, but is a prefix of valid Python code.
If there is a problem with source, an exception will be raised. SyntaxError is raised if there is invalid Python syntax, and OverflowError if there is an invalid numeric constant.
The symbol argument determines whether source is compiled
as a statement ('single'
, the default) or as an expression
('eval'
). Any other value will cause ValueError to
be raised.
Caveat: It is possible (but not likely) that the parser stops parsing with a successful outcome before reaching the end of the source; in this case, trailing symbols may be ignored instead of causing an error. For example, a backslash followed by two newlines may be followed by arbitrary garbage. This will be fixed once the API for the parser is better.