[SciPy-dev] IDL to Python converter available

Christopher Stawarz chris at pseudogreen.org
Mon May 30 16:13:09 CDT 2005

I've written a package, i2py, that converts IDL scripts and programs to
Python.  It started as a project for the compilers class I took this
spring, and in the weeks since I've cleaned it up and improved it enough
that I think it's ready for an alpha release.  Since there was recently
a discussion on this list about this sort of thing, I expect some people
will be interested in trying it out.

The package is implemented in pure Python and requires Python 2.3 or
later.  Using PLY (which is included in the distribution), it implements
a full-fledged parser for procedural IDL (no OO support yet) and can
convert most (but not yet all) IDL language constructs to Python.  More
information on it, including some notes on its current limitations and a
brief introductory tutorial, can be found at


Source packages are available for download from


If you'd like to try it out, I'd definitely appreciate any feedback.
(If there's a lot of interest, I may move the project to SourceForge or
somewhere similar, but I'll have to see what happens.)

Since the scipy-dev thread I mentioned earlier was mainly about the
legal issues surrounding this kind of software, I think I should address
those a bit.  First, I should make it clear that I've developed i2py
entirely on my own time, using my own resources.  However, since I am a
full-time programmer at an astronomical research institute and have, on
a few occasions, used IDL as part of my job, I thought it wise to
discuss the potential issues with my employers before releasing the

The conclusion reached in that discuss was that, although IDL's EULA
explicitly forbids reverse engineering, implementing a parser and
converter for the language does *not* constitute reverse engineering,
because it requires only the published, publicly-available description
of the language.  (Similarly, if I use Visual C++ and then go buy
Stroustrup's book and write my own C++ compiler, my actions don't
constitute reverse engineering, because anything I might learn about C++
from using VC++ can also be learned from the book.)  Hence, I feel quite
confident that my development of i2py has neither violated the IDL EULA
nor infringed upon RSI's intellectual property rights in any way.  Of
course, if you think otherwise, then you shouldn't use the package.

Anyway, I hope some of you will find i2py useful, and I look forward to
the chance to improve it based on your feedback.

Chris Stawarz

More information about the Scipy-dev mailing list