Been working quite a bit lately to get the new GObject introspection going. Spent too much time hunting various memory corruptions, but I finally managed to get to a point where I can do the following:
import bank import Poppler doc = Poppler.Document('test.pdf', '') pages = doc.getNPages() print 'Document has', pages, 'pages.'
which prints out:
Document has 247 pages.
The Poppler module is built completely from the introspection information, the Document class and all its methods are created in runtime (not lazily yet though). The constructor maps to a C function, poppler_document_new_from_file which is invoked in runtime, with help of libffi, the reference is saved and sent to getNPages which calls poppler_document_get_n_pages.
Poppler is a pdf library, which I used as a testcase because that's the only library available which has introspection information written down, all thanks to jrb.
This stuff looks really good, it's a bit more complex then manually created bindings for python, but once it's finish it'll be a lot less work. We anticipate that the python bindings, in which most of the work can be done in runtime, will be dramatically reduced, perhaps to 20-25% of the size it has today.
If you're interested to look at this stuff, it can be found in the pybank module in gnome cvs.
There is not a lot too see yet though, unless you're also developing a language binding