Kaa is an umbrella project comprising a set of Python modules, mostly inclined toward solving problems in the domain of multimedia.
kaa.base is an LGPL-licensed generic Python application framework, providing the foundation for other modules within Kaa, and can be used in any type of project, from small event-driven tools, to larger, complex applications.
The Kaa Application Framework includes a main loop facility with an API for signals and callables, timers, thread and subprocess management, local IO and sockets (with TLS support), inter-process communication, and much more.
Kaa also – and perhaps most importantly – provides a rich, practically magical API for asynchronous programming. Threads and coroutines in combination with InProgress objects, which are used extensively throughout Kaa, allow you to implement complex state machines responding to asynchronous events in very compact, readable code.
The easiest and recommended way to install kaa.base is using pip (available as the python-pip package in Ubuntu and Fedora):
sudo pip install --upgrade kaa-base
Or, if you prefer to install kaa.base as an egg using setuptools (package python-setuptools on Ubuntu and Fedora):
sudo easy_install -U kaa-base
The most up-to-date tree can be cloned with git:
git clone git://github.com/freevo/kaa-base.git
cd kaa-base
sudo python setup.py install
The project is hosted at GitHub, so if you’d like to contribute, you can can fork it and send pull requests.
Your distribution might already have kaa.base included in its standard repositories, but be aware that these are almost certainly very out of date:
# For Ubuntu and Debian
sudo apt-get install python-kaa-base
# For Fedora
yum install python-kaa-base
Finally, source packages are available on GitHub.