Crunchy release 0.9.1
andre.roberge at gmail.com
Fri Jul 13 05:07:23 CEST 2007
Crunchy 0.9.1 has been released. It is available at
Note that, if you have downloaded version 0.9 or version 0.9.0.1
you likely will not need to download this latest version.
What is new since version 0.9?
* Possibility to log selectively part of a session (as instructed by a
tutorial *writer* such as a teacher who may want to evaluate
This experimental feature is the main reason to have a new release
and is of potential interest for Python instructors/teachers.
* Bug fix (0.9.0.1): Output containing <....> was not displayed in
* Support for generation of image files is now done through threads
(rather than subprocess) and addition of a "load image" button, which
prevents from having to generate the image twice.
* A windows installer version is available.
* Minor experimental cosmetic additions.
* Improved "readme" file.
Bug reports, comments and suggestions are always welcome.
André, for the Crunchy team.
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 since a few months ago?
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 python.org 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
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
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
10. Crunchy includes a fairly comprehensive tutorial on its own use,
as well as a reference for tutorial writers that want to make their
code from an html page before displaying it inside the browser window.
More information about the Python-list