My enhanced Python wrappers have finally been merged into VTK! A few warnings and a compilation issue on AIX had to be fixed, but the merge was very smooth. The merge provides the following new features to VTK/Python:
- Automatic conversion between python unicode and vtkUnicodeString.
- Support for vtkVariant, vtkTimeStamp, and vtkArray.
- Overloaded method resolution for based on C++ semantics.
- Automated arg conversion via constructors based on C++ semantics.
- Formatting of in-line documentation for python, including some doxygen tags.
- Clean-up of the code, removal of all global variables from the code.
In addition, the following improvements have been added for all wrappers, including Java, Tcl, and the ParaView ClientServer:
- A cleaned-up parser front end that understands much more C++ syntax.
- Proper string support in all wrappers via vtkStdString.
- Significant code clean-up (but not as much as for Python).
All of this is on top my earlier change to vtkParse that replaced all the hard-coded hexidecimal constants from the code and replaced them with clearly-named constants.
More information on the changes can be found on the VTK wiki. There are more wrapper improvements that I will be merging in the future. I have already written a vtkWrapHierarchy tool to improve type checking in the wrappers, which will finally eliminate the need for BTX/ETX markers in the header files. I've also added a page to the VTK wiki for all the enhancements that I have planned for VTK/Python, but I'm not sure how many enhancements I will have time to complete.