[sugar] pygtk's ".defs" files, and wrapping interfaces for python extensions

Marco Pesenti Gritti mpg at redhat.com
Mon Mar 5 04:57:50 EST 2007


On Sun, 2007-03-04 at 17:10 -0800, Don Hopkins wrote:
> Can somebody please tell me where I can find some documentation on the 
> .defs files used by pygtk, pangocairo, etc?
> It look like that is an alternative to SWIG for integrating C code with 
> Python. Is it preferred? Does it work with other languages?
> Will it save memory or work better to use that ".defs" file based 
> interface generator instead of SWIG?
> 

There is no good documentation that I know about. I think there is some
outdated article you can find about in the Documentation section of
www.pygtk.org.

You can generate .defs from headers using pygtk/codegen/h2def.py. You
can also have a look to the auto* machinery we are using in
sugar/lib/python.

I don't know much about swig but I think pygtk codegen is definitely
preferred when you are wrapping gobjects.

> I'm trying to figure out how best to integrate poppler into Python, and 
> pass a Cairo context into it (which was wrapped by pycairo), so it can 
> go to town drawing PDF through Cairo.

I'd definitely use pygtk codegen for poppler. 

> And it seems that one way to do that might be to add it into pygtk's 
> cairo/pango interface, or into pycairo, but I don't know the politics 
> involved in that, or if it's easier to make a separate project for poppler.
> Any suggestions please? Thanks a lot!

What about just creating a project with python bindings for poppler? The
poppler glib API has already a way to draw to a cairo context, just
wrapping this should be enough.

See this on how to use the cairo_t type with pygtk codegen:

http://svn.mugshot.org/dumbhippo/trunk/client/canvas/python/

(arg-types.py in particular)

Marco



More information about the Sugar mailing list