Continuum Analytics: Documentation

# Ahead-of-Time compilation

class `numba.pycc.``CC`(extension_name, source_module=None)

  An object used to generate compiled extensions from Numba-compiled Python functions. extension_name is the name of the extension to be generated. source_module is the Python module containing the functions; if `None`, it is inferred by examining the call stack.

  `CC` instances have the following attributes and methods:

  `name`

    (read-only attribute) The name of the extension module to be generated.

  `output_dir`

    (read-write attribute) The directory the extension module will be written into. By default it is the directory the source_module is located in.

  `output_file`

    (read-write attribute) The name of the file the extension module will be written to. By default this follows the Python naming convention for the current platform.

  `target_cpu`

    (read-write attribute) The name of the CPU model to generate code for. This will select the appropriate instruction set extensions. By default, a generic CPU is selected in order to produce portable code.

    Recognized names for this attribute depend on the current architecture and LLVM version. If you have LLVM installed, `llc -mcpu=help` will give you a list. Examples on x86-64 are `"ivybridge"`, `"haswell"`, `"skylake"` or `"broadwell"`. You can also give the value `"host"` which will select the current host CPU.

  `verbose`

    (read-write attribute) If true, print out information while compiling the extension. False by default.

  `@``export`(exported_name, sig)

    Mark the decorated function for compilation with the signature sig. The compiled function will be exposed as exported_name in the generated extension module.

    All exported names within a given `CC` instance must be distinct, otherwise an exception is raised.

  `compile`()

    Compile all exported functions and generate the extension module as specified by `output_dir` and `output_file`.

  `distutils_extension`(**kwargs)

    Return a `distutils.core.Extension` instance allowing to integrate generation of the extension module in a conventional `setup.py`-driven build process. The optional kwargs let you pass optional parameters to the `Extension` constructor.

    In this mode of operation, it is not necessary to call `compile()` yourself. Also, `output_dir` and `output_file` will be ignored.