[IPython-dev] [IPython-User] ANN: Exhibitionist - integrating HTML/JS UIs into interactive python work

Brian Granger ellisonbg@gmail....
Wed Mar 6 13:37:09 CST 2013

This is really cool to see work like this happening.  Very nice!

I wanted to update you on the development situation with IPython that
may affect your code:

* We plan on starting to work on creating a nice architecture for
interactive JavaScript widgets, in late summer.
* This architecture will enable all of this to be done without any
additional server logic.
* Using additional server logic as you have done is not officially
supported.  What I mean by this is that the notebook architecture may
change in a way that makes it impossible to do this type of thing.
The problem is that you have made some strong assumptions about where
the notebook server, kernel and your server are running.  The
preferred way of getting data back and forth between python and the
broser is to use our message channels.  Currently these channels are
not sufficient for what you want to do, but after are work later this
year, they will be.
* Because of security issues are are moving away from the notebook
being able to execute dynamically generated javascript code.  We will
replace this with a javascript plugin system that is more secure.  You
will have to rewrite things when this happens.



On Wed, Mar 6, 2013 at 4:22 AM, yoval p. <y-p@gmx.com> wrote:
> Hi Everyone,
> I'm pleased to announce my new project, now available on Github,
> called Exhibitionist, a library geared towards integrating HTML/JS
> UIs into interactive python work.
> There's a lot of experimentation going on in this space, This is my
> offering.
> The proposed solutions I've seen so far all seem to stray in one way or
> another
> from the beaten web-development track. Exhibitionist tries to do things
> as closely as possible to the way they generally work in web development.
> A short summary of the main points:
> - data is exchanged using AJAX, your python objects become API
> endpoints on an in-process web server.
> - you can exchange messages between python and javascript, in either
> direction, using websockets and a built-in PubSub implementation.
> - no quoted code.
>   that means, no "console.log('def myfunc():\nprint \"it\"'),
>   nor 's += "console.log(\"you are quoting again...\")"'
>   javascript lives in js files, python in .py, and HTML can be generated
>   with your favorite template engine.
> - Views are vanilla web application viewable in any browser, no IPython
>   dependency for use or development.
> - OTOH why wouldn't you want to use IPython-notebook's awesome inline HTML
> display?,
>   works just like you'd expect.
> - Repo contains serveral examples, including a heavily documented skeleton
> project
> - Supported Python 2.6,2.7,3.1,3.2
> - Tests, Coverage, tox, travis, yep.
> - BSD licensed
> - Currently Tested on linux only, you can help there.
> The primary example included  is a javascript grid UI for pandas Dataframes
> that loads data on-demand via AJAX. a screenshot is available from the
> Github
> project page.
> Exhibitionist is built as a standalone library on top of Tornado (also
> used by IPython), and it allows you to craft views either for 3rd party
> library objects, but I also Imagine it as a primary dependency of libraries
> in the pydata arena, that integrate HTML views as core functionality of
> the library, allowing all it's users to work with rich views either
> in a modern browser, or in IPython-notebook for the best UX.
> Repo lives at: https://github.com/Exhibitionist/Exhibitionist
> Please try it out, report any issues you find and provide feedback.
> I hope you find it useful.
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user

Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger@calpoly.edu and ellisonbg@gmail.com

More information about the IPython-dev mailing list