I am pleased to announce version 2.12.0 of the Python bindings for GObject.
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.11.3:
- Install the html files even when using --disable-docs (#353159, Johan,
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
PyGObject requires GObject >= 2.8.0 and Python >= 2.3.5 to build.
What's new in 2.12.0?
* John Finlays reference manual is now included and prebuilt
* GOption is now supported
* Support for signal emission hooks
* Various GInterface related improvements
* Many bug fixes
Thanks to everybody who helped making this release possible:
Gustavo J. A. M. Carneiro
Gian Mario Tagliaretti
Fault-tolerance framework Py-Fate contains several proxy classes and/or
algorithms so that a conscious developer can easily add fault-tolerance
to the code.
The biggest point is that Python proxying capabilities allow for
invisible drop-in addition or revocation of fault tolerance. Using
Py-Fate you can turn any callable into a syntactically identical
callable with fault-tolerant twist, for example:
"Sequential" fault-tolerance through repetition:
foo(...) # regular foo call
foo = ft_retry(ft_sync(foo), 3)
foo(...) # now foo gets retried up to 3 times in case it throws
foo = ft_retry(ft_async(foo, 10.0), 3)
foo(...) # same but each retry of foo also times out in 10 seconds
foo = ft_retry_backoff(ft_async(foo, 10.0), 1.0, 3)
foo(...) # same but exponentially increasing sleep is inserted between
the retries, exactly 1, 2, and 4 seconds in this example
"Parallel" fault-tolerance through simultaneous execution of multiple
variants of the same code:
def foo2(...): # has the same signature as foo1
foo = ft_par_1st(ft_succeeded, ft_sync(foo1), ft_sync(foo2))
foo(...) # runs foo1 and foo2 in parallel and whichever returns first
and manages not to throw wins
def foo3(...): # has the same signature as both the other foo's
foo = ft_par(ft_majority_voter(), ft_sync(foo1), sync(foo2),
foo(...) # runs all three in parallel and performs majority voting on
foo = ft_par_tb(ft_equal_comparator(), ft_sync(foo1), sync(foo2),
foo(...) # similar to the previous but doesn't wait for all the foo's
to return as soon as there is enough identical votes
Obviously, there is a handful other templates and more details, please
see the module documentation.
Please download Py-Fate here:
Beta 0.23 of MMA - Musical MIDI Accompaniment - is now
available for downloading. Included in this release:
A number of minor bugfixes; new RNDSEED command;
a number of new and improved library files.
MMA is a accompaniment generator -- it creates midi tracks
for a soloist to perform with. User supplied files contain
pattern selections, chords, and MMA directives. For full details
If you have any questions or comments, please send them
GMPY binaries for Python 2.5 are available at
They have not been extensively tested.
This is based on the CVS version of gmpy and includes a patch (not yet
in CVS) from Alex Martelli that resolves a bug with divm(). Please
consider this an "unofficial" release. The patch and the source code
snapshot I used are also available on the website.
GMP 4.2.1 is used.
There are three versions available: one that should work on any
processor, one compiled for Pentium 4 processor, and one compiled for
AMD Athlon (32-bit).
If there is demand, I'll create updated binaries for earlier version of