Kiwi is a PyGTK framework for building graphical applications loosely based on MVC Model-View-Controller (MVC) and Allen Holub's Visual proxy [1]. Think of Kiwi as a high-level, object-oriented layer built on PyGTK.
Its design is based on real-world experience using PyGTK to develop large desktop applications, which use many concepts common to most graphical applications: multiple windows and dialogs, forms, data persistence, lists and high-level classes that support domain objects directly. Download ======== Grab the latest sources from: http://download.gnome.org/sources/kiwi/1.9/kiwi-1.9.10.tar.gz and the win32 installer from: http://download.gnome.org/binaries/win32/kiwi-1.9.10.win32.exe What's new since 1.9.9? ======================= - API reference and howto included in the tarball - Remove some exessive use of inheritence - A couple of new examples - Mask fixes; alignment and focus (Ronaldo) - win32 installation fixes (Aaron Spike) - Tasklet WaitForCall support (Gustavo) - Add a simple Enum implementation - Add new separated delegates for glade views Features ======== * An MVC-derived framework of classes: * Views, which represent the graphical display * Controllers, which handles user interaction with the widgets in a View. * Delegates, combines a View and a Controller. * Models, which are special mixins for your domain objects * Proxies, special types of Delegate designed to implement forms * Validation: Kiwi supports validation on different levels: data type validation and verification on the Model/Proxy level, View validation and hooks for visually displaying validation state. * ObjectList widget, which provides a higher level abstraction of GtkTreeView and all its classes (GtkTreeModel, GtkTreeViewColumn, GtkCellRenderer) with hooks to easily integrate into the Kiwi Framework. * Mask suport: You can set a mask on entries to force the input to follow a certain standard, such as zip code, social security, ip address * Gazpacho integration for most (non-deprecated) interactive widgets with attributes for handling validation and proxy attributes. * UI Testing framework Features a recorder and a player. The recorder allows you to record different tasks, a script will be saved which will reproduce the actions you made in the interface. * Kiwi Tasklets Tasklet is a small coroutines framework written by Gustavo Carneiro, it was previously known as gtasklets. * PyGTK utilities, to make it easier to add signals and properties to your objects. * i18n translation utilities, to help you translate PyGTK applications, currently depends on gettext and intltool. * and many other things! Requirements ============ Python 2.3 or higher (2.4 recommended) http://www.python.org/ PyGTK 2.6.0 or higher (2.8 recommended) http://www.pygtk.org/ gazpacho 0.6.5 (svn recommenced) http://gazpacho.sicem.biz/ Documentation ============= Kiwi provides API documentation generated by epydoc, it can be found at http://www.async.com.br/projects/kiwi/api/ Included in the tarball are also a number of examples, which serves as a good starting point. Keep in mind that most of them require gazpacho to be installed. Thanks ====== Christian Robottom Reis: Original author and design Lorenzo Gil Sanchez: PyGTK 2.x port Also thanks to the following people which has contributed features or bug reports: Ali Afshar, Gustavo Barbieri, Gustavo Carneiro, David M Cook, Daniel Saran R. da Cunha, Patrick O'Brien, Ronaldo Maia, Evandro Vale Miquelito, Henrique Romano, Sidnei da Silva, Aaron Spike Resources ========= Homepage http://www.async.com.br/projects/kiwi/ Download http://www.async.com.br/projects/kiwi/download/ Repository http://svn.async.com.br/cgi-bin/viewcvs.cgi/kiwi/ Report a bug http://bugs.async.com.br/enter_bug.cgi?product=Kiwi API docs http://www.async.com.br/projects/kiwi/api/ Open bugs http://tinyurl.com/cyrms Mail. list http://www.async.com.br/mailman/listinfo/kiwi/ [1] http://en.wikipedia.org/wiki/Model-view-controller [2] http://tinyurl.com/2ccch [3] http://epydoc.sourceforge.net/ -- Johan Dahlin <[EMAIL PROTECTED]> Async Open Source -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html