pyIDL is a binding writting in Python and Cython, for ITT's IDL. It enables you to invoke functions and procedures from Python, but also get and set variables that live in the IDL context.