Those of you subscribed to the wxPython cvs updates list are probably wondering about the deluge of messages last night. In short, the next generation of wxPython has been hatched, and you were able to witness the event as it happened!
I've created a new branch and have wiped out most of the old code and checked in a new set of code (just the core, I havn't touched the contribs yet) that I have been working on for the past few weeks as part of the SWIG 1.3 conversion. It is organized quite differently than before, but will hopefully be a bit easier to maintain this way.
If you are curious and want to take a look at the new hatchling, (it will be nice to have a few more eyes looking at this) simply check out wxWindows 2.5 from the main CVS trunk (see http://wxwindows.org/cvs.htm) and then change to the wxWindows/wxPython directory and run "cvs update -r wxPy_newswig" to get the new branch. CVS will then remove a lot of the files and add a bunch more based on what is in that branch. (The wxPy_newswig branch will be merged back into the trunk once things are smoothed out a bit more.) Or you can browse online via this URL:
http://cvs.wxwindows.org/viewcvs.cgi/wxWindows/wxPython/?only_with_tag=wxPy_newswig
Some of the big organizational changes are:
* The lib. py, and tools subpackages have been moved from wxPython to wx. They have not yet had any content changes for the new namespace and such, (anybody want to help with that?) they've only been moved. Also, we still need to figure out how to do the renamers for accessing the lib from the old namespace.
* The various header files are now located in include/wx/wxPython and should be accessed from C/C++ source using the path name, for example::
聽聽#include <wx/wxPython/wxPython.h>
* Instead of having gobs of stuff in each *.i file (SWIG interface definition files) I've separated things into many more files, each with just a very few related items. Instead of building all the *.i files as independent extension modules like before, I use the %include directive to bundle lots of the small files into big extension modules. So instead of over a dozen all linked together into wxc.so or wxc.pyd, we now have only five independent modules (core, gdi, windows, controls, misc) that cover approximatly the same amount of the namespace. The naming convention of the *.i files is that if the filename starts with an underscore then it is not an independent module and is %included into one without an underscore.
* The contents of the wx dir is created as part of the build, so it will be empty (other than subdirs) after the CVS update. If you do a build then you'll see that the extension module names now start with an underscrore rather than end with a 'c' like before.
* I had to do a bit of goofy stuff with sys.modules for the renamer modules in the old wxPython namespace so they would be able to import stuff from the wx package and not get it confused with the wxPython.wx module (local package module names take precedence.) If somebody could double check that the trick won't cause problems I would appreciate it.
* There are other things that will likely still be removed and/or moved to new locations, or reorganized as I progress further, (docs, contribs, html.i and grid.i, etc.)
I havn't yet updated any of the BUILD (or other) docs, but things are generally the same as before. I will be updating and submitting my new patches for SWIG (so far) to their SF tracker later today if anybody is interested in looking at that end of things.
路路路
--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!