3.22 codeop -- Compile Python code

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:

compile_command (source[, filename[, symbol]])
Tries to compile source, which should be a string of Python code and return a code object if source is valid Python code. In that case, the filename attribute of the code object will be filename, which defaults to '<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.


Send comments on this document to python-docs@python.org.