[IPython-dev] notebook-like format for IPythonQt sessions.

Edward K. Ream edreamleo at gmail.com
Fri Apr 30 09:58:20 EDT 2010


Hello all,

I've been on vacation without a good way to respond to this thread.  I
have no idea whether any of the following will be of any use to the
topic under discussion, but it might.

I have a keen interest in this topic, for several reasons that you may
or may not be familiar with.

First, Leo could already be said to be a "front end" to IPython, and
Leo's Qt gui works well with IPython.  Leo's Qt outline widget is
sophisticated and is highly optimized for large outlines.  It's also
solid, which is no mean feat, considering that it can be driven by
Python scripts as well as by the user.

Second, Mathematica is not the best notebook available, Leo is.
Mathematica notebooks are trees, not dags, which has profound
implications for data handling, as Leo proves.  Mathematica's DOM and
scripting are weak; Leo's (python) scripts have easy access to all
outline data via a simple and easy-to-use api.

Third, Leo outlines are xml files.  .leo files have an "extension
mechanism", uA's (user/unknown attributes), that allows any kind of
data to be attached to any node in the outline.  Thus, there is no
urgent need to define one's own xml tags.  The user (or Leo plugin)
can embed any kind of data into a Leo outline without having to reach
a consensus about the format of the data.

To repeat, I have no idea whether any part of Leo will be of use in
the project under discussion.  But it might be worthwhile to take a
look at Leo, its Qt interface, its xml file format and its in-core
data structures.  The features I have summarized here have been under
development for 15+ years.  Leo is pure Python and a single code base
works with Python 2.6 and Python 3.1.

Edward
------------------------------------------------------------------------------
Edward K. Ream email: edreamleo at gmail.com
Leo: http://webpages.charter.net/edreamleo/front.html
------------------------------------------------------------------------------



More information about the IPython-dev mailing list