[ANNOUNCE] PyGObject 2.26.0 - stable release

John Palmieri johnp at redhat.com
Mon Sep 27 19:45:47 CEST 2010

I am pleased to announce version 2.26.0 of the Python bindings for GObject.  

Including the stable improvements in the base pygobject modules this is the first stable release to include the Introspection modules.  These new modules are considered beta quality and we don't guarantee API compatibility with future versions yet.

Python 3 support, limited to the base and Introspection modules, also ships for the first time in this release.  To build with Python 3 support set the PYTHON env variable to your Python 3 executable during the configure stage:

$ PYTHON=python3 ./configure 

The new release is available from ftp.gnome.org as and its mirrors as soon as its synced correctly:


What's new since PyGObject 2.21.5?
        - Wrap g_get_system_{config,data}_dirs () (John Strowers)
	- fixed make check and make dist (John (J5) Palmieri)
        - Disable GI tests when introspection disabled (John Stowers)
        - Wrap g_uri_list_extract_uris. Fixes bug #584431 (Tomeu Vizoso)
        - Fix a few uses of TRUE and FALSE in the docs (Paul Bolle)
        - pygi: always free the invocation_state struct (Damien Caliste)
        - Start implementing something equivalent to g_variant_new (Tomeu Vizoso)
        - fixed typo - missing comma in glib.option module (John (J5) Palmieri)
        - add checks so we can compile under python 3 by setting PYTHON=python3 (John (J5) Palmieri)
        - Rename static methods as functions (Tomeu Vizoso)
        - fix a couple of compiler warnings (John (J5) Palmieri)
        - remove unused code (John (J5) Palmieri)
        - Check the type of the instance object (John (J5) Palmieri)
        - include the correct pycairo version (John (J5) Palmieri)
        - Use PyMapping_Keys to determine if an object is a dict (py3k fix) (John (J5) Palmieri)
        - fix handling of UINT64 and INT64 arguments in py3k (John (J5) Palmieri)
        - properly handle ulongs properties in py3k (John (J5) Palmieri)
        - Specify encoding of tests/test_gi.py (Tomeu Vizoso)
        - use actual unicode in the tests on py3k, not the byte representation (John (J5) Palmieri)
        - s/METH_KEYWORDS/METH_VARARGS|METH_KEYWORDS/ when defining object methods (John (J5) Palmieri)
        - fix subclassing PyLong by calling __new__ correctly (John (J5) Palmieri)
        - minor py3k fixups for python modules (John (J5) Palmieri)
        - minor fixes in tests for py3k compat (John (J5) Palmieri)
        - compilation: Fix syntax error (Colin Walters)
        - Add missing file (Tomeu Vizoso)
        - Add override for GLib.Variant.new_tuple (Tomeu Vizoso)
        - fix for changes in the gi test libraries (John (J5) Palmieri)
        - Gtk.DialogFlags.NO_SEPARATOR has been removed in Gtk 3.0 (John (J5) Palmieri)
        - no need to offset arg positions when is_method is true (John (J5) Palmieri)
        - gi: Add support for more property types (Tomeu Vizoso)
        - use PyObject_SetAttrString, not PyDict_SetItemString when setting __gtype__ (John (J5) Palmieri)
        - Rename GArgument to GIArgument (Tomeu Vizoso)
        - fix up tests so they run in py3k (John (J5) Palmieri)
        - tests: Port to new introspection tests (Colin Walters)
        - we need to specify tp_hash since we overide tp_richcompare (John (J5) Palmieri)
        - working enum/flags/pid subclasses of long (John Ehresman)
        - make vfuncs work in py3k (John (J5) Palmieri)
        - make cairo module compile in py3k (John (J5) Palmieri)
        - fix exceptions so they work in python 3.x (John (J5) Palmieri)
        - make the gi module compile under 3.x (John (J5) Palmieri)
        - fix up testshelper module so it compiles in python 3.x (John (J5) Palmieri)
        - convert to using PYGLIB_DEFINE_TYPE for module objects (John (J5) Palmieri)
        - some more p3k PyString and PyInt eradication in GI (John (J5) Palmieri)
        - pyglib: Fix typo (Leo Singer) (Tomeu Vizoso)
        - Add defines for size_t and ssize_t conversion functions (Gustavo Noronha Silva)
        - pyglib: Fix a compiler warning (Colin Walters)
        - Don't force gtk 2.0 (Tomeu Vizoso)
        - Fix some ref leaks in hook_up_vfunc_implementation() (Steve Frécinaux)
        - handle strings correctly in gio (John (J5) Palmieri)
        - make giomodule compile under py3k (John (J5) Palmieri)
        - for py3k we need to do some more processing to get bytes from a unicode string (John (J5) Palmieri)
        - use Bytes instead of Unicode when reading io (John (J5) Palmieri)
        - prefix compat macros with PYGLIB (John (J5) Palmieri)
        - Gtk.Button unit tests (John (J5) Palmieri)
        - [Gtk] Add overrides for Button (Johan Dahlin)
        - Make Cairo an optional dependency (Simon van der Linden)
        - Don't import again PyGObject (John Ralls) (Tomeu Vizoso)
        - move to using richcompare slot instead of compare (John (J5) Palmieri)
        - Replace autogen.sh by a newer version (Simon van der Linden)
        - Fix some warnings (Simon van der Linden)
        - Fix caller-allocates emergency free. (Simon van der Linden)
        - Remove useless checks. (Simon van der Linden)
        - Call valgrind with G_SLICE=always-malloc G_DEBUG=gc-friendly (Tomeu Vizoso)
        - Fix some warnings. (Ignacio Casal Quinteiro)
        - Add myself as a maintainer (Simon van der Linden)
        - Properly allocate boxed structs that are (caller-allocates) (Tomeu Vizoso)
        - override gdk.Event to return attribute from the proper event object (Toms Baugis)
        - check if z# needs an int or Py_ssize_t (John (J5) Palmieri)
        - make sure we parse parameters to python object vars not glib vars (John (J5) Palmieri)
        - Make an example and a demo work out of the box (Paul Bolle)
        - make sure caller allocated structs are freed when they go out of scope (John (J5) Palmieri)
        - Revert "override gdk.Event to return attribute from the proper event object." (Tomeu Vizoso)
        - PyGI: properly quit cairo-demo (Paul Bolle)
        - override gdk.Event to return attribute from the proper event object. (Toms Baugis)
        - Clean and improve the test infrastructure (Simon van der Linden)
        - Add some more transformations to pygi-convert.sh (Tomeu Vizoso)
        - Adapt to API changes: g_irepository_enumerate_versions (Tomeu Vizoso)
        - Add GValue<->GArgument marshalling for some more types (Tomeu Vizoso)
        - Chain up with the non-introspection implementation for properties if needed (Tomeu Vizoso)
        - Improve error reporting for missing attributes in introspection modules (Tomeu Vizoso)
        - Implement getting and setting properties using introspection information. (Tomeu Vizoso)
        - Readd Gdk.Rectangle override for Gtk-2.0 (Tomeu Vizoso)
        - Allow specifying a version when loading a typelib (Tomeu Vizoso)
        - treat GFreeFunc as equivalent to GDestroyNotify when scanning callbacks (Jonathan Matthew)
        - Don't use == to compare doubles, use <= and =>. (Simon van der Linden)
        - Allow passing ints as enum args (Tomeu Vizoso)
        - Make error message less ambiguous (Tomeu Vizoso)
        - fix passing in type names as a GType and add gtype unit tests (John (J5) Palmieri)
        - Increase a bit verbosity of tests so people know which test failed (Tomeu Vizoso)
        - Actually add the files for GVariant foreign structs (Tomeu Vizoso)
        - Add foreign struct support for GVariant (Tomeu Vizoso)


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

gobject-introspection bugs are being fixed at a rapid pace so it is recommend to use the latest version in git when filing bugs against the Introspection module.

John (J5) Palmieri
GNOME Foundation member
johnp at redhat.com

More information about the Python-announce-list mailing list