New release: Crunchy 0.9

Andre andre.roberge at
Tue Jul 10 01:38:10 CEST 2007

Crunchy 0.9 has been released.  It is available at

What is Crunchy?

Crunchy is a an application that transforms html Python tutorials into
interactive session viewed within a browser.  We are not aware of any
other application (in any language) similar to Crunchy.   Currently
Crunchy has only been fully tested with Firefox; we know that some
browsers simply don't work with it.  Crunchy should work with all
operating systems - it has been tested fairly extensively on Linux,
Windows and Mac OS.

What is new in this release?

Crunchy has been rewritten from scratch from the previous version
(0.8.2), to use a custom plugin architecture.  This makes easier to
extend and add new functionality.  Rather than list the differences
with the old release, it is easier to list the essential features of
this new version.

1. Crunchy can work best with specially marked-up html tutorials.
However, it can now work with any html tutorials - including the
official Python tutorial on the site.  Html pages can be
loaded locally or remotely from anywhere on the Internet.  Crunchy
uses a combination of Elementtree and BeautifulSoup to process html
pages.  Non W3C-compliant pages can be handled, but the visual
appearance is not guaranteed to reproduce that normally seen using a

2. Crunchy can insert a number of Python interpreters inside a web
page.  In the default mode, it does that whenever it encounters an
html <pre> element which is assumed to contain some Python code.
These interpreters can either share a common environment (e.g. modules
imported in one of them are known in the other) or be isolated one
from another.

3. Crunchy adds automatic css styling to the Python code -  you can
look at the official Python tutorial using your browser (all Python
code in blue) and compare with what Crunchy displays to give you a
good idea.

4. Instead of inserting an interpreter, Crunchy can insert a code
editor that can be used to modify the Python code on the page and
execute it.  The editor can be toggled to become a fairly decent
syntax aware editor that can save and load files.

5. Crunchy has a "doctest" feature where the code inside the <pre> is
taken to be the result
of an interpreter session and the user has to write the code so as to
make the interpreter session valid; this is useful in a teaching
environment. Messages from the Crunchy's doctest are "friendlier" for
Python beginners than the usual tracebacks.

6. Crunchy has a small graphics library that can be imported, either
inside an editor or an interpreter, to produce simple graphics (even
animations!) inside the browser.

7. For the user that needs better quality graphics, Crunchy supports
programs (such as matplotlib) that can create image files; by
executing the code, the image produced is loaded inside the browser
window.  In this capacity, Crunchy could be used as a front end for
libraries such as matplotlib.

8. Crunchy supports code execution of files as separate processes,
making it suitable to launch gui based application from the browser

9. Crunchy's interpreter has an interactive "help" feature like many
python-aware IDEs.

10. Crunchy includes a fairly comprehensive tutorial on its own use,
as well as a reference for tutorial writers that want to make their
tutorials "crunchy-friendlier".

11. As a security feature, crunchy strips all pre-existing javascript
code from an html page before displaying it inside the browser window.

Bug reports, comments and suggestions are always welcome.

André Roberge, for the Crunchy team.

More information about the Python-announce-list mailing list