[IPython-dev] Potential projects
Sat Oct 15 16:59:09 CDT 2011
2011/10/15 Omar Andrés Zapata Mesa <firstname.lastname@example.org>:
> I think another potential project is to write an ncurses or urwid interface,
> more complete than the current terminal
> That could have a layout with windows to view others online users, the
> history, chat, variables in namespace, menu for restart kernel, save/load
> session, export code, code completion (similar to bpython) etc...
> I learning http://excess.org/urwid/ with simple examples at the moment but
> I am planning to write something for ipython.
Yes, we've talked for a long time about a curses front end, that would
be super welcome by anyone working in a server environment... Search
the list for archives for 'Wendell' and you'll find discussions with
him about this topic.
A few things to note:
- I spoke a while ago with the author of bpython
(http://bpython-interpreter.org) about possible collaboration, and he
sounded interested. I don't know how easy it would be to use the
bpython code in a way that could benefit both projects, but Bob sounds
like a great guy who's happy to share his work, so it's definitely
worth spending some effort into understanding the possibilities here.
In addition, bpython is MIT licensed, so even if it's not possible to
fully share the whole architecture, it would be OK for IPython to take
snippets from bpython.
- If you get going with this, I suggest just starting a fresh
repository as a standalone, installable application, similar to how
Paul Ivanov has developed the vim-ipython client
(https://github.com/ivanov/vim-ipython). This will make it easier for
you to develop initially without the complexity of the entire IPython
tree, and for this client to grow and stabilize on its own.
In the long run I do see a curses client as something we should ship
inside ipython, but at this point ipython is big and complex enough
that I think it's saner/easier to develop new clients (vim, curses,
etc) on their own for a while. We already have a big enough task with
the three 'core' ones (console, qtconsole, notebook) for our small
Once the vim/curses clients mature and are fully stable, it might make
sense to fold them into the IPython tree, but there's no need to make
that decision quite yet, and I think Paul's experience shows that the
development in a lightweight, standalone tree can work quite well.
More information about the IPython-dev