PyGObject 3.1.0 released

I am pleased to announce version 3.1.0 of the Python bindings for GObject. This is the first release of the unstable branch, which will eventually result in the stable 3.2.x series.

It is important to point out that this release reverts the change "Convert all strings to utf-8 encoding when retrieving from TreeModel" to restore backwards compatibility. If you are using Python 2 it is recommended to always use the byte-representation of UTF-8 encoded strings (str class) instead of the unicode objects. I'm going to add a section to the Python GTK+ 3 tutorial that will explain this issue and how to deal with it in more detail.


sha256sum: a5b36eff7c4b14f161bc9ba2ae09a03ddb47d9f2c769589b8f389ae3a92cc92e


  • Fixed bug where did not respect minimum and maximum values (Sebastian Pölsterl)
  • Handle NULL as a valid case of a char** array (Paolo Borelli)
  • Avoid O(n2) behavior when marshalling lists (Paolo Borelli)
  • Connect to first action of a radio group (Paolo Borelli)
  • Support functions which return GError (Will Thompson)
  • Support GHashTable and GError as callback/closure arguments (Alberto Mardegan)
  • Fix bool(), hash() and __eq__() for GLib.Variant objects (Nirbheek Chauhan)
  • Don't issue a depreciation warning for GtkDialog's NO_SEPARATOR flag, even when unused (Sebastian Pölsterl)
  • Properly distinguish between different integer types for properties (Sebastian Pölsterl)
  • Distinguish between GArray and GPtrArray when cleaning up (Sebastian Pölsterl)


About PyGObject

GObject is a object system used by GTK+, GStreamer and other libraries.

PyGObject provides a convenient wrapper for use in Python programs when
accessing GObject libraries.

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 now dynamically accesses any GObject libraries that uses
GObject Introspection. It replaces the need for separate modules such as
PyGTK, GIO and python-gnome to build a full GNOME 3.0 application. Once
new functionality is added to gobject library it is instantly available
as a Python API without the need for intermediate Python glue.


As you point out work with treemodel, perhaps you have time to look at blocker bug:
3 examples codes to test with,

This bug prevents some larger applications of convering to gtk 3.
Yes, I could probably write a c module to achieve this in my app, but then our python users and developers need to compile before being able to run the module, and that is a step we want to avoid.

If a fix for this is not in 3.2, it means applications need to wait a year longer for distributions to pick it up and be able to do generic treemodels.