Pike provides the ability to automatically convert IDL source code into an execution Python package, while preserving the structure, comments and operational logic of the original implementation.

Pike accelerates Python-based porting and development projects by providing rapid IDL code conversion, delivering an IDL-like Python API and acting as a Python reference implementation for the IDL developer.

Overview

Pike consists of two main subsystems: a conversion cross compiler (pikex) and a runtime Python package (pike) that implements an IDL-like API. Working together these two systems deliver a conversion process that maps IDL functionality to Python, specifically functionality delivered by the NumPy and SciPy (collectively referred to as SciPy) modules.

In general, Pike has support for IDL 4.x language features, currently not implementing IDL Objects or Pointers which were first implemented in IDL 5.0.

Key Features

  • Core IDL Language Conversion
    • Supports all IDL core data┬átypes and control structures.
    • Conversion of IDL Functions and Procedures into Python functions.
    • IDL keyword support, including keyword expansion and _EXTRA
    • Full routine parameter conversion, including support for keywords, undefined variable detection, dynamic parameter lists (n_params()) and
    • Translation of embedded IDL statements to Python. e.g. a = (b = 2+1) + 3
  • Support for unique IDL language functionality, including System Variables, Structures, Common Blocks and IDL’s version of Catch error handling.
  • Vector operations and array slicing are mapped to NumPy language conventions
  • Unique IDL file input/output routine support, including assoc() file variables
  • Runtime package of IDL like functions and calling patterns. Over 200 routines supported.
  • Converts IDL Direct Graphics to Python matplotlib graphics. Includes conversion of mapping routes and base-level IDL function graphics. Includes wide-support for image file formats.
  • Provides the ability to easily embedded germinated graphics into Qt-based user interfaces.
  • Integrates within an IPython environment, delivering conversion capabilities at the IPython command line.

Availability and Installation

Pike is available on GitHub at the following location:

Directions on downloading and installation are detailed on the Pike GitHub page.

Pike Details

Further information and feature specific details of Pike are provided in the following pages: