Welcome to Irenicurse!

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.

Focus

  • simplicity
  • allow to dev very fast, at least for most of the standard and simple use cases
  • promote re-usability as much as possible
  • if possible, be easy and fast to learn

Approach

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.

Installation

From source

First, get the source:

git clone https://github.com/Psycojoker/irenicurse

Then:

python setup.py install

Using pip

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

Indices and tables

Project Versions

Table Of Contents

This Page