> On Monday 07 February 2005 08:40, Phil Thompson wrote: >> > Doug Bell wrote: >> > If PyQt follows the same policy, it will be more than perfect for >> general >> > purpose projects. > >> It will, although I'm making no promises as to when PyQt for Qt v4 will >> be >> available. > > Just out of curiousity, are you planning on putting Qt 4 in the same file > set > as Qt 3, or do you expect it will be a separate set of files? Do you > expect > many changes to sip (eg - something similar in scope to moc/QObject > stuff), > or is sip positioned well to handle it?
I anticipate that SIP will require very few changes. I have not yet decided how compatible PyQt 4 will be with PyQt 3, particularly with respect to the module structure. Qt 4 has broken the Qt library into separate parts, and my instinct is to mirror this structure. This would also allow me to put everything under a single Qt directory in site-packages - the current "structure" is a mistake I've wanted to correct for many years. When you wrap an API to production quality you must look at each API call individually - particularly for object ownership and GIL issues. There is no shortcut to this - you can't automate it. It's easy to deal with changes between minor Qt versions (3.2 to 3.3, 3.3.1 to 3.3.2) as a diff on the header files will identify the changes without too much noise. Dealing with major versions (ie. Qt 4) is on a completely different scale - I suspect it's easier to start from scratch. I do have an internal tool (called metasip) for generating SIP files from header files. This uses gcc-xml to create an XML representation of the API and has a GUI interface for adding the annotations, handwritten code etc. It also provides facilities for managing the process of wrapping an API. With this I expect the production of PyQt 4 to be much easier than (say) PyQt 3. Consequently, to answer your question, the .sip files will be different. Phil _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
