Monthly Archives: December 2008

EPD Py2.5 v4.1.30101 Release Now Available

Enthought, Inc. is very pleased to announce the newest release of the Enthought Python Distribution (EPD) Py2.5 v4.1.30101:

http://www.enthought.com/epd

EPD Installer for Mac OS X

The size of the installer has be reduced by about half. Also, this is the first release to include a 3.1.0 version of the Enthought Tool Suite (http://code.enthought.com/), featuring Mayavi 3.1.0.

Mayavi 3.1.0

This is also the first release to use Enthought’s enhanced version of setuptools, Enstaller (http://code.enthought.com/projects/enstaller/). Windows installation enhancements, matplotlib and wx issues, and menu consistency across platforms are among notable fixes.

The full release notes for this release can be found here:

https://svn.enthought.com/epd/wiki/Py25/4.1.30101/RelNotes

Many thanks to the EPD team for putting this release together, and to the community of folks who have provided all of the valuable tools bundled here.

Best Regards,

Chris

About EPD

The Enthought Python Distribution (EPD) is a “kitchen-sink-included” distribution of the Python Programming Language, including over 80 additional tools and libraries. The EPD bundle includes NumPy, SciPy, IPython, 2D and 3D visualization, database adapters, and a lot of other tools right out of the box.

http://www.enthought.com/products/epd.php

It is currently available as an easy, single-click installer for Windows XP (x86), Mac OS X (a universal binary for Intel 10.4 and above) and RedHat EL3, EL4 and EL5 (x86 and amd64).

EPD is free for 30-day trial use and for use in degree-granting academic institutions. An annual Subscription and installation support are available for commercial use (http://www.enthought.com/products/epddownload.php) including an Enterprise Subscription with support for particular deployment environments (http://www.enthought.com/products/enterprise.php).

EPD Py25 v4.1.30101_beta2 Available For Testing

The Enthought Python Distribution’s (EPD) early access program website
is now hosting the beta 2 build of the upcoming EPD Py25 v4.1.301
release. We would very much appreciate your assistance in making EPD as
stable and reliable as possible!

The release notes for the beta2 build are available here:

https://svn.enthought.com/epd/wiki/Py25/4.1.301/Beta2

Please provide any comments, concerns, or bug reports via the EPD Trac
instance at https://svn.enthought.com/epd or via e-mail to epd-support@enthought.com.

About EPD
———
The Enthought Python Distribution (EPD) is a “kitchen-sink-included”
distribution of the Python Programming Language, including over 60
additional tools and libraries. The EPD bundle includes NumPy, SciPy,
IPython, 2D and 3D visualization, database adapters, and a lot of
other tools right out of the box.

http://www.enthought.com/products/epd.php

It is currently available as a single-click installer for Windows XP
(x86), Mac OS X (a universal binary for OS X 10.4 and above), and
RedHat 3, 4, and 5 (x86 and amd64).

EPD is free for academic use. An annual subscription and installation
support are available for individual commercial use. Various workgroup,
departmental, and enterprise level subscription options with support and
training are also available. Contact us for more information!

Misc complaints about wxPython documentation

I really appreciate the work done on wxWindows and wxPython to provide a cross platform UI API, but there are some things that really irk me about working with WxPython. While hunting down the problem in my previous blog post about the artifacts in the Cairo rendered image background, I found the problem was with the way in which I was blitting. Was I doing it wrong? I don’t know. The API docs sometimes omitted the methods I was trying to use, depending on which version I was looking at. I tried to find the documentation for the specific version I have, but was unable to find docs for that version because the wxpython site has the habit of hiding or removing docs every time they release a new version. On top of that problem, when I try to get help on a python module or method from within a python interpreter, I get an exception. Even when I am willing to assume the docs on the web site are the same for the version I have, I find the API docs lacking any kind of detail. The wxWindows API docs are detailed and usually helpful, but the wxPython API docs lack any detail. Compare these two API docs for the Bitmap class:

wxPython

wxWindows

If you are going to force me to read the wxPython docs to get the arguments right, and the wxWindows docs to understand what the arguments mean, at least provide me a link…

Using Cairo to render SVG in Enable

A few months ago Bryan Cole added the start of a Cairo based backend for Kiva. I’ve been fighting with Agg for several SVG related features and thought Cairo might be a good subsitute for rendering SVG’s. For most of our rendering needs, Cairo is about 4x slower than Agg, so its not a good general replacement, but for the SVG editor it might be okay. I took the initial work done, which only rendered to images, hacked it a bit, and go it into an Enable canvas. There is still a lot of work to be done, and this is the first time I’ve looked at Cairo at all, so if anyone wants to help out, please do. Anyway, without further ado, here is the SVG lion image:

Cairo rendered lion

If anyone knows how to get rid of the background rendering artifacts, please let me know.

Little known ETS features: Progress Dialog

ETS contains a lot of nice features which don’t get any press, many of which aren’t event well known in the Enthought office. Today I thought I’d show off the ProgressDialog class I wrote more than a year ago.

The ProgressDialog class is intended to have an API similar to QT and Java’s progress dialogs has many of the same features:

  • Optionally show estimated time remaining
  • Supports indeterminate progress where the total number of steps is not known
  • Cancel and skip buttons
  • Automatically closes for determinate instances

This is all the code needed to do a dialog while doing a simple loop (the entire example can be found here):

[sourcecode language=python]
def task_func(t):
progress = ProgressDialog(title=”progress”, message=”counting to %d”%t,
max=t, show_time=True, can_cancel=True)
progress.open()

for i in range(0,t+1):
time.sleep(1)
print i
(cont, skip) = progress.update(i)
if not cont or skip:
break

progress.update(t)
[/sourcecode]

Here’s what the progress dialog looks like using the WX backend (yes, there is a QT4 backend too)

ProgressDialog Screenshot