I am pleased to announce version 2.27.90 of the Python bindings for GObject.
This is a pre-release for the upcoming 2.28.0 stable release which should come in about a week if no major bugs are found. Note to maintainers and packagers, the 2.2x series will be the last series to support the static bindings. Going forward we will moving towards PyGObject 3.0 which will drop support for the static bindings and be able to clean up the code by breaking the current static binding ABI. The 2.28 and 3.0 branches will both be parallel installable and minimal support for the static bindings will continue in the 2.28 branch.
A lot of fixes went in under the hood getting us ready for GNOME 3.0. A number of apps have already been ported and the last major enhancement we are waiting for is support for introspected signal parameters so that the draw signal in Gtk can pass a Cairo Context that works with PyCairo. Some higlight in this release include:
* faster handling of virtual methods when constructing objects * enhanced refcounting fixes when dealing with sink refs * ABI stability for the static bindings * enhanced gdbus and gvarient handling * you can now override signals like you do vfuncs * enhanced drag and drop support added * return GErrors instead of generic runtime errors where appropriate * enhanced GtkTextBuffer support * enhanced pygi-convert.sh script for automating PyGtk to PyGObject Introspection migration * Gio.FileEnumerator now supports the Python iter protocol * Gdk.EventType 2BUTTON_PRESS and 3BUTTON_PRESS now prepended with an underscore * Gtk.Adjustment now support positional or keyword arguments in constructor * Properties now handle unicode correctly * Fix enum handling * dir() now returns GI attributes * Numerous overrides to replicate PyGtk and other interfaces * Python 3 fixes so we can compile under Python 3.2 * For a complete list of changes please read the NEWS file
The new release is available from ftp.gnome.org and its mirrors:
GObject is a object system library used by GTK+ and GStreamer.
PyGObject provides a convenient wrapper for the GObject library for use in Python programs, and takes care of many of the boring details such as managing memory and type casting. When combined with PyGTK, PyORBit and gnome-python, it can be used to write full featured Gnome applications.
Like the GObject library itself PyGObject is licensed under the GNU LGPL, so is suitable for use in both free software and proprietary applications. It is already in use in many applications ranging from small single purpose scripts up to large full featured applications.
PyGObject requires glib >= 2.22.4 and Python >= 2.5.1 to build. GIO bindings require glib >= 2.22.4.
The Introspection module is the next generation Python GObject library bindings. Instead of statically wrapping every GObject based library we can now dynamically accesses any of those libraries using GObject Introspection. It replaces the need for separate modules such as PyGTK, GIO and python-gnome to build a full GNOME application. Once new functionality is added to gobject library it is instantly available as a Python API without the need for an intermediate Python module.
Introspection/Python 2 bindings requires gobject-introspection >= 0.9.5 and pycairo >=1.0.2 or py2cairo >=1.8.10 Introspection/Python 3 bindings requires gobject-introspection >= 0.9.5, pycairo >=1.8.10 and Python >= 3.1
-- John (J5) Palmieri Software Engineer Red Hat, Inc.