API Reference#

Command-line#

You can run pyjion as a standalone command-line program, similar to how you would use python to run scripts and modules.

usage: pyjion [-m MODULE] | [script]

Python JIT Compiler

positional arguments:
script                script file

optional arguments:
-m MODULE             Execute module

You can enable PGC by setting the PYJION_PGC environment variable to 1. You can override the optimization level (default 1) by setting the PYJION_LEVEL environment variable.

Core module#

pyjion.enable()#

Enable the JIT

pyjion.disable()#

Disable the JIT

pyjion.config(pgc: bool | None, level: int | None, debug: bool | None, graph: bool | None, threshold: int | None) Dict[str, Any]:#

Get the configuration of Pyjion and change any of the settings.

pyjion.il(f)#

Return the ECMA CIL bytecode as a bytearray

pyjion.native(f)#

Return the compiled machine-code as a bytearray

pyjion.offsets(f: Callable) tuple[tuple[int, int, int]]:#

Get sequence points for a compiled function (used by the Disassembler)

pyjion.graph(f: Callable) str:#

Get graph for compiled function, see Graphing

pyjion.symbols(f: Callable) Dict[int, str]:#

Get method symbol table (used by the Disassembler).

Disassembly module#

pyjion.dis.dis(f, include_offsets=False, print_pc=True)#

Print the ECMA CIL bytecode in a disassembly table. Set include_offsets=True to print the Python opcodes inline with the IL.

pyjion.dis.dis_native(f, include_offsets=False, print_pc=True)#

Print the x86_64 assembly instructions in a disassembly table (requires distorm3 and rich) Set include_offsets=True to print the Python opcodes inline with the assembly.

WSGI middleware#

class pyjion.wsgi.PyjionWsgiMiddleware(application)#

Provides a WSGI middleware interface that enables the JIT for requests