PyBindGen is a Python module that is geared to generating C/C++ code that
binds a C/C++ library for Python. It does so without extensive use of either
C++ templates or C pre-processor macros. It has modular handling of C/C++
types, and can be easily extended with Python plugins. The generated code is
almost as clean as what a human programmer would write.
It can be downloaded from:
Bug reports should be filed here:
Special thanks to Roman Yakovenko (lots of help with pygccxml) and Mathieu
Lacage (API suggestions, documentation writing).
=== pybindgen 0.9 ===
- Fix GCC 4.2 compilation warnings;
- Works with some GCCXML 0.9/cvs snapshots (tested with 2008-04-20),
in addition to stable 0.7;
- Support for overloaded virtual methods;
- Add 'ignore' annotation support, allowing to ignore functions
- Generally work hard to make sure the generated code at least
always compiles, even if we have to disable generation of
- Add support for protected methods and constructors;
- Preliminary support for templated classes/methods/functions;
- Add more type conversions, such as uint64_t and uint16_t;
- Support implicit conversions also for pass-by-reference parameters;
- Add supported for nested (i.e. defined inside a class) enums and
- Add support for adding manually written custom method or function
- Split the gccxmlparser.ModuleParser.parse() method into several
smaller methods, to allow greater customization and flexibility;
- Add support for customising C++ class instance creation code;
- Much improved support for wrapping pure C code;
- Support std::ostream << myobject mapped as str(myobject) (Mathieu
- Support default values in parameters;
- More intuitive API (thanks Mathieu Lacage for feedback)
- Support generation of a Python pybindgen script from scanned API;
- Support splitting of generated python script and/or C/C++ module into
- Lots of small bug fixes, and other features I probably forgot;
- New tutorial (thanks Mathieu Lacage), and API docs.
Gustavo J. A. M. Carneiro
INESC Porto, Telecommunications and Multimedia Unit
"The universe is always one step beyond logic." -- Frank Herbert
I'm pleased to announce jaraco.nxt 1.0, the first public release of a
library for communicating with the Lego Mindstorms NXT devices.
A minimal web site has been set up at:
The modules have been uploaded to PyPI and should be installable using:
The source is also available from PyPI.
The package implements the Bluetooth API, as specified in the Lego SDK.
The modules should work in any OS that supports the Bluetooth Serial
protocol and the pyserial library.
Additionally, a module is provided that implements receiving input from
an XBox 360 controller via the Microsoft XInput library (requires
This project is very much a work in progress, and any patches are
Jason R. Coombs
I am pleased to announce version 2.15.2 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.15.2?
- New module: glib, which contains the parts of the old
gobject bindings which are in the glib library.
MainLoop/MainContext/Sources/GOption and a few others has now
- Add a new installed library libpyglib-2.0, which contains the
extension API for third-part modules instead of relying on macros
which accesses struct fields.
- Add bindings for gio.File.enumerate_children_async,
- Add a new api for mapping a GError domain to an exception and
register an exception for GIOError.
- Remove leading IO_* prefix for the gio flags and register a quark
for the domain.
- Use GSlice in the glib module and bump required version to 2.14.
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 glib >= 2.14.0 and Python >= 2.3.5 to build.
GIO bindings require glib >= 2.16.0.
4Py is a collection of wrappers for Python. You can retrieve this package in Org.keyphrene Library. Org.keyphrene has been splited to simple package.
SSL4Py is an OpenSSL Wrapper.
SSH4Py is a LibSSH2 Wrapper (SSH, SCP, SFTP).
Spell4Py is a Hunspell Wrapper.
I'm pleased to announce the release of PyGoogleDesktop version 0.4
available at http://code.google.com/p/pythongoogledesktop/
Feedback is welcome.
What is PyGoogleDesktop?
PyGoogleDesktop is a python interface into the Google Desktop search
engine. It allows you to script searches in the Google Desktop engine
with existing python code. Right now, only Windows platforms are
supported, but future plans to support other OS's will hopefully happen
as time permits.
This is released under at new BSD-style license.
Jack G. Atkinson Jr. "Jay"
Doxa Logos Technologies, Inc.
I am very pleased to announce that version 0.6.0 of Elixir
(http://elixir.ematia.de) is now
available. As always, feedback is very welcome, preferably on Elixir
Please look at: http://elixir.ematia.de/trac/wiki/Migrate05to06 for
detailed upgrade notes.
Here are the highlights for this release:
- Added support for SQLAlchemy 0.5
- Better support for entities spread across several modules: in
relationship definitions, you don't have to use the "full path" to the
other entity anymore.
- Changed the default session characteristics to be more inline with
SQLAlchemy defaults (if you were using the default session, please
look at those upgrade notes!).
- New methods on the base entity to update entities from or dump
entities to a hierarchical (JSON-like) dictionary structure.
It also features a bunch of bugfixes, mostly related to non-default
schema and autoloaded entities.
The full list of changes can be seen at:
What is Elixir?
Elixir is a declarative layer on top of the SQLAlchemy library. It is
a fairly thin wrapper, which provides the ability to create simple
Python classes that map directly to relational database tables (this
pattern is often referred to as the Active Record design pattern),
providing many of the benefits of traditional databases without losing
the convenience of Python objects.
Elixir is intended to replace the ActiveMapper SQLAlchemy extension,
and the TurboEntity project but does not intend to replace
SQLAlchemy's core features, and instead focuses on providing a simpler
syntax for defining model objects when you do not need the full
expressiveness of SQLAlchemy's manual mapper definitions.
Gaëtan de Menten
Dear Elisa Users,
The Elisa team is happy to announce the second official release of the
0.5 series of the Elisa Media Center, Elisa 0.5.2 'Good news everyone...'.
With this release Elisa takes another step towards its goal of being a
true cross-platform media center. It works under Windows Vista and XP,
as well as the main Linux distributions.
The main outlines of this release are:
- The integration of a media scanner that indexes one's music collection
and allows one to browse it by Artists/Albums, with automatic albums'
covers and artists' photos retrieval;
- The localization of the UI. Thanks to contributions from the community
Elisa is currently fully translated in Spanish, Catalan, French,
Italian, German, Dutch, Polish, Swedish and Brazilian Portuguese.
Various bugs have also been fixed since the release of Elisa 0.5.1, the
complete list can be found at
There are still some known issues in this release and we are working on
solving them as fast as possible:
- Audio Visualization does not work on Windows
- Audio CD are not detected
- DAAP client missing under Windows
- USB storage devices do not show up on Linux
To find out more on the progress of the project, you can check the
project's page on Launchpad: https://launchpad.net/elisa
Feel free to try it out! Elisa 0.5.2 can be downloaded from the website
You can also help us by suggesting cool features, reporting bugs,
submitting patches, writing plugins or localizing Elisa in your language.
The Elisa team