Irenicurse is a project that have the aim to create an high level python framework to write ncurse applications. It is based on urwid, a python ncurse library.
Note
You can find the project repository here.
Warning
This project is still young.
However it is pretty stable in term of bugs since it’s an abstraction on top of Urwid and the code API big picture shouldn’t change a lot (minors details are changing). What risk to limit you is that there isn’t a lot of content (differents widgets) yet and you’ll quickly need to build your own depending on what you want to do.
Otherwise you can safely prototyping with it.
Build a collection of high level generic widgets and allowing the user to extends those widgets to match his needs. The transitions betweens widgets is very similar to the call/answer mechanism of the smalltalk web framework seaside.
In a nutshell, the current widget can “call” another widget and give him a callback, this widget will then be the current widget, it can then, if desired, “answer”. This will the callback, with arguments if necessary and the focus will be given back to the first widget.
Example: in a todo list manager, the main widget is a TodoListWidget that display the title of a list of todos. When the user press some key, the TodoListWidget will call a EditTodoWidget that will display a detail view of the todo with editing possibility. Then, the EditTodoWidget will answer by calling the callback with the modified todo, this callback will then save this modified todo.
First, get the source:
git clone https://github.com/Psycojoker/irenicurse
Then:
python setup.py install
Simply (no release are available yet on pypi).:
pip install git+git://github.com/Psycojoker/irenicurse.git
Make sure that your version of pip is recent enough. If you get an error, simply update it with:
pip install -U pip