This documentation is for an old version of IPython. You can find docs for newer versions here.

Module: core.compilerop

Compiler tools with improved interactive support.

Provides compilation machinery similar to codeop, but with caching support so we can provide interactive tracebacks.


  • Robert Kern
  • Fernando Perez
  • Thomas Kluyver

1 Class

class IPython.core.compilerop.CachingCompiler

Bases: codeop.Compile

A compiler that caches code compiled from interactive statements.

ast_parse(source, filename='<unknown>', symbol='exec')

Parse code to an AST with the current compiler flags active.

Arguments are exactly the same as ast.parse (in the standard library), and are passed to the built-in compile function.

cache(code, number=0)

Make a name for a block of code, and cache the code.


code : str

The Python source code to cache.

number : int

A number which forms part of the code’s name. Used for the execution counter.


The name of the cached code (as a string). Pass this as the filename

argument to compilation, so that tracebacks are correctly hooked up.


Flags currently active in the compilation process.


Reset compiler flags to default state.

2 Functions

IPython.core.compilerop.code_name(code, number=0)

Compute a (probably) unique name for code for caching.

This now expects code to be unicode.


Call linecache.checkcache() safely protecting our cached values.