On 10/11/08, Gordon Kindlmann <[EMAIL PROTECTED]> wrote: > Hello, > > I want to use a collection of C libraries in python via ctypes and a ctypes > code generator. I have no problem using ctypes to call functions in the > library, but I have to set up the argtypes and restype arguments for each > function, which is a pain given that there are hundreds of functions > involved. There are also C structs used for state and parameter passing, > and I don't want to have to manually create in ctypes (via "class > blah(Structure): ...") a Python mirror to each and every field. > > I know that ctypeslib should be the right tool for the job: > > http://starship.python.net/crew/theller/wiki/CodeGenerator > > > However, my version of either gcc or gccxml is leading to xml output that > can't be correctly parsed by the xml2py part of ctypeslib. The argtypes and > restype stuff is set for all the functions, but the python declaration of > the structs is empty ("class blah(Structure): pass"). > > On the ctypes-users mailing list, Thomas Heller warned that ctypeslib is not > really maintained anymore, and wasn't surprised that recent versions of > gccxml led to this problem. He suggested that some part of pyglet might > also be able to do python code generation for ctypes, which brings me here. > > I know that this isn't the main purpose of pyglet, but I've searched around > some and can't find an answer to this: is there a way to use pyglet, or > something associated with pyglet, to generate Python class definitions of C > structs, by parsing C headers?
Yes, it's called wraptypes, and its in the tools/ directory of a pyglet trunk svn checkout. Note that wraptypes can't parse *every* C header -- it's built only to be good enough for what pyglet needs -- but it should suit most purposes. Alex. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en -~----------~----~----~----~------~----~------~--~---
