wxPython Third Party Libraries Update
This wiki page was a place to coordinate efforts to maintain and update wxPython third-party libraries, especially during the transition from V2.4 to V2.5. This project is concluded with the majority of libraries updated. I am leaving this as a reference at the moment, until it becomes obvious it's not needed.
Front matter
One person is coordinating this effort, though all are welcome to contribute. E-mail Jeff Grimmett (Alternate email address if the first bounces) for details if any questions are left unanswered.
Contributing
If you wish to contribute to this effort, we ask that you work within this framework if possible:
Please work with a copy from CVS if possible. If that is not possible, please use the latest 2.4 release as a starting point.
- Please follow the coding guidelines indicated below.
If you have write access to CVS, please notify RobinDunn of any changes that you make (just in case) and/or update the status info below.
Robin has requested that the code changes go through him (obviously, if you have commit access that's a different story), so please either submit changes to him or myself rather than using the SourceForge patch engine.
- Updates directly to the me as patches or whole files are always welcome.
- If using the demo to test the library, please test the demo code both as a standalone as well as from within the main demo itself.
Coding Guidelines
Robin has requested a number of things as we progress through the demo, and there are some things I'd like to see as well. Most are optional, but the more that gets done, the better the demo will be.
Please observe the wxPython Coding Guidelines
Naturally, all wxPython library calls must be expunged and replaced with calls using the new wx namespace.
- (nice to have) Where feasable, replace instances of wxPoint() and wxSize() with two-tuples.
- (nice to have) Early on, wxPython didn't support keyword args. In cases where keyword args are now supported but not being used, they should be. This will present a consistent presentation throughout the code and make it easier to understand it if needed.
wxNamedColour isn't needed anymore, just pass strings where the colour is needed and they will automatically be converted to wxColour.
- (nice to have) Comments: review the code you are updating: are the comments sufficient? If the comments are inadequate and you understand the code, please take the time to update it.
- On a related note, docstrings are pretty important for this sort of thing.
- At the top of the code, please indicate when the code was modified, by who, and the nature of the modifications (laborious detail is not necessary, that's what diff tools are for).
Additionally, please note the following from the preview release notes:
The hack in wx.*Sizer allowing the option keyword parameter has been removed. If you use keyword args with wxSizer Add, Insert, or Prepend then you will need to use the proportion name instead of option. -- i.e., a lot of search and replace will be needed. This cannot be tested under V2.4. You will need a working build of V2.5 to test this.
The wxPython.help module no longer exists and the classes therein are now part of the core module imported with wxPython.wx or the wx package.
Platforms
The coordinator only has access to W2K
and Mandrake Linux(sorry, my Mandrake install is temporarilly borked - jg). Mac or other platforms should be tested by those that have them.
Status
Following is a table detailing all known modules and thier status.
Please observe the following key for the "Status" field when updating the table.
Complete - What conversion and testing that can be done under V2.4 has been complete, but testing under V2.5 has not.
Committed - The updated source file is available from CVS.
Checked Out - You're working on this particular module. This'll keep others from duplicating effort.
Checked In - You've sent it in for inclusion.
Final - All done, no further work will be required.
Issues - Some work has been done, but there are issues. Please comment thoroughly in the source code and post a summary in the comments here. If you correct the issues, great. If not, at least we know where to start work at.
The Tasks field is for recording progress on the file. Just add the letter defined here for each task as it is done.
A - Convert to using the wx namespace.
Use "import wx" instead of "from wxPython.wx import *"
- Change all "wxSomething" to "wx.Something", except for wxEVT_*
- Change all EVT_* to wx.EVT*
- Change all wxEVT_* to wx.EVT_*
B - Modernization of the code as needed. Seee above.
C - Convert to any new APIs as defined in the MigrationGuide, especially DC.Draw methods. This step will require a build of 2.5 to test.
D - Convert all EVT_* function calls to use the new Event Binder method as described in the MigrationGuide. This step will require a build of 2.5 to test.
E - Remove 'wx' prefix from custom library namespace, i.e. instead of wxPyColourChooser it should be ColourChooser.
F - Create reverse renamer in wxPython package for backwards compatability.
File |
Who |
Tasks |
Status |
Notes |
ClickableHtmlWindow.py |
ABCDEF |
Final |
Converted but not tested muchly. |
|
ErrorDialogs.py |
|
|| Issues || Being updated (5/24/04). ||
ErrorDialogs_wdr.py |
|
|| Issues || Being updated (5/24/04). ||
foldmenu.py |
ABCD-- |
Final |
We need a demo for this. But does anyone have any documentation on what it's supposed to do? - jg |
|
PythonBitmaps.py |
|
|
|
Part of ErrorDialogs; will be replaced or deleted. |
rpcMixin.py |
ABCD-- |
Issues |
Appears to rely on obsolete or third-party library |
|
sheet.py |
ABCDEF |
Final |
No demo; need to take care of that. - jg |
|
vtk.py |
|
|| Delete || Module is beyond deprecated. ||
Packages
Package |
Who |
Tasks |
Status |
Notes |
mixins |
ABCDEF |
Final |
grid: untested. imagelist: untested. listctrl.ListCtrlSelectionManagerMix() untested. |