[ANNOUNCE] PyGObject 2.27.0 – unstable release

John Palmieri johnp at redhat.com
Wed Nov 10 22:09:21 CET 2010

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

A lot of fixes went in under the hood include fixes to the Windows build environment.  On the Introspection side we are getting closer to parity with PyGtk interfaces with notes from people who have successfully ported their plugins and apps.    I would like to thank the numerous bug and patch filers including the GEdit team for letting us know what they need for us to support them.  Keep those bugs coming and hop on irc to pester us until we fix your issue.  Some higlights include:

    * better handling of virtual methods
    * fixed gobject inheritance model
    * you can now call dir on dynamic modules to see what member exist
    * the Tree* API is much nicer, exporting a lot of the convenience APIs that exist in PyGtk
    * cairo_rectangle_int_t is supported as a foreign type if pycairo exports it (patch at https://bugs.freedesktop.org/show_bug.cgi?id=31111)
    * some Python 3 fixes so we can compile under Python 3.2

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


What’s new since PyGObject 2.26.0?

    * Implement richcompare for GIBaseInfo (Jonathan Matthew)
    * [gi] add the rectangle_int_t forign cairo type (John (J5) Palmieri)
    * add a foreign type for cairo_rectangle_int_t and allow it to be caller-allocated (John (J5) Palmieri)
    * [gi] add overrides to Gtk.Editable (John (J5) Palmieri)
    * [gi] handle virtual invokers (John (J5) Palmieri)
    * add overrides for the insert* apis of list_store and tree_store (John (J5) Palmieri)
    * fix dialogs overrides which were relying on broken inheritance behavior (John (J5) Palmieri)
    * Add a overrides registry so we can refrence overrides inside the module (John (J5) Palmieri)
    * setup.py: ease maintenance burden for tests installation (Dieter Verfaillie)
    * fix inheritence issues in overrides (John (J5) Palmieri)
    * tests: add runtests-windows.py script (Dieter Verfaillie)
    * pygobject_postinstall.py: remove pygobject-2.0.pc treatment from postinstall as pkg-config on windows figures out the correct prefix at runtime (Dieter Verfaillie)
    * pygobject_postinstall.py: remove shortcut creation (Dieter Verfaillie)
    * setup.py: formatting cleanup, makes things readable (Dieter Verfaillie)
    * setup.py: build and install tests (Dieter Verfaillie)
    * setup.py: install documentation when available on build system (Dieter Verfaillie)
    * setup.py: install pygobject-codegen script (Dieter Verfaillie)
    * setup.py: install fixxref.py script (Dieter Verfaillie)
    * setup.py: rearrange constants (Dieter Verfaillie)
    * setup.py: check python version and pkgconig availability before anything else (Dieter Verfaillie)
    * setup.py: simplify sys.platform != 'win32' detection and error reporting (Dieter Verfaillie)
    * setup.py: rearrange imports (Dieter Verfaillie)
    * README.win32: update build instructions (Dieter Verfaillie)
    * dsextras.py: formatting cleanup, makes things readable (Dieter Verfaillie)
    * dsextras.py: add ggc4 to MSVC compatible struct packing comment (Dieter Verfaillie)
    * dsextras.py: use the pkgc_ functions instead of repeating pgk-config incantations all over the place (Dieter Verfaillie)
    * dsextras.py: add pkgc_get_version and pkgc_get_defs_dir functions (Dieter Verfaillie)
    * dsextras.py: PEP8: Comparisons to singletons like None should always be done with 'is' or 'is not', never the equality operators. (Dieter Verfaillie)
    * dsextras.py: use True/False instead of 1/0 (Dieter Verfaillie)
    * dsextras.py: rearrange imports (Dieter Verfaillie)
    * Add distutils generated build/dist directories and eclipse configuration files to .gitignore (Dieter Verfaillie)
    * [gi] add tests for calling dir on a dynamic module (John (J5) Palmieri)
    * [gi] dir() now works for modules (Deepankar Sharma)
    * Don't check the inner type when comparing gpointers (Simón Pena)
    * Release GIL when calling into C functions (John (J5) Palmieri)
    * _gi.Repository : Implement missing info bindings. (José Aliste)
    * include Python.h so that PY_VERSION_HEX gets defined (John (J5) Palmieri)
    * [gi] make overrides work for python 3.x protocols and alias for python 2.x (John (J5) Palmieri)
    * Override Gtk.Widget.translate_coordinates to not return success value (Sebastian Pölsterl)
    * Override Gtk.TreeViewColumn.cell_get_position to not return success value (Sebastian Pölsterl)
    * Override get_path_at_pos and get_dest_row_at_pos of Gtk.TreeView to not return success value (Sebastian Pölsterl)
    * Override Gtk.TreeSortable.get_sort_column_id to not return success value (Sebastian Pölsterl)
    * Override forward_search and backward_search of Gtk.TextIter to not return success value (Sebastian Pölsterl)
    * Override Gtk.TextBuffer.get_selection_bounds to not return success value (Sebastian Pölsterl)
    * Override Gtk.RecentInfo.get_application_info to not return success value (Sebastian Pölsterl)
    * Override Gtk.IMContext.get_surrounding to not return success value (Sebastian Pölsterl)
    * Override get_item_at_pos, get_visible_range, get_dest_item_at_pos of Gtk.IconView to not return success value (Sebastian Pölsterl)
    * Override Gtk.Container.get_focus_chain to not return success value (Sebastian Pölsterl)
    * Override Gtk.ComboBox.get_active_iter to not return success value (Sebastian Pölsterl)
    * [gi] make parameter check less strict when dealing with GValue params (John (J5) Palmieri)
    * Shortcut removal is not needed on post-uninstall (John Stowers)
    * Disable shortcut creation in windows installer (John Stowers)
    * overrides for all subclasses of dialog (John (J5) Palmieri)
    * Make TreeModel behave like in GTK-2.x (Sebastian Pölsterl)
    * Correctly build GIO on windows (John Stowers)
    * Require Python >= 2.6.0 for Windows build (John Stowers)
    * Fix depreciation warning in dsextras.py (John Stowers)
    * Fix build on windows (John Stowers)
    * Support for GCC4 in Windows distutils build - bug 626548 (Michael Culbertson)
    * Remove obsolete comments in dsextras.py (John Stowers)
    * Broken dsextras.py pkg-config check error message (John Stowers)
    * add compat functions for the deprecated PyCObject api (John (J5) Palmieri)
    * Add __path__ attributes. (Damien Caliste)
    * Override Gtk.TreeSelection.get_selected to not return success value. (Sebastian Pölsterl)
    * Make row optional in Gtk.TreeStore/ListStore.append override (Vincent Untz)
    * Revert "add compat functions for the deprecated PyCObject api" (John (J5) Palmieri)
    * return NULL instead of -1 which fixes crash when introspection is turned off (John (J5) Palmieri)
    * add compat functions for the deprecated PyCObject api (John (J5) Palmieri)
    * fix commit 7fe83108 which didn't use the compat functions for string handling (John (J5) Palmieri)
    * Python 3 fixes for dsextras and the python.m4 distribution files (John (J5) Palmieri)


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