[vtk-developers] python wrapping

Burlen Loring burlen.loring at kitware.com
Fri Mar 13 12:04:37 EDT 2009


Thank you and also to Dave for all of the information. I collected this 
on the following Wiki.

http://www.paraview.org/ParaView3/index.php/Python_Wrapping_FAQ


Prabhu Ramachandran wrote:
> On 03/10/09 23:02, Burlen Loring wrote:
>> I'd like to understand more about how the VTK python wrapping works. 
>> Can anyone recommend a starting point? Also of interest what CMake's 
>> role in this is. What macros available, when to use such and such a 
>> macro, what the purpose of arguments to the macros are?
>
> Here is a quick overview (it has been a while so I may be off, I'll 
> let others correct):
>
>  0. Big picture: All the automated wrapping code generation relies on 
> the consistent coding style followed in the VTK header files and the 
> use of the convenience macros. Specific markers (in comments) in the 
> header mark parts that are not to be parsed (BTX/ETX). Basically, a 
> target language specific parser parses the header file figures out 
> suitable wrapper functions in the desired target language and spits 
> out the wrapper code that is used to generate the wrappings.
>
>  1. First look in VTK/Wrapping.  Go over the files there.  
> Specifically look at vtkWrapPython.c which actually does the code 
> generation for Python.
>
>  2. When VTK is built, an executable called vtkWrapPython is built 
> from this.
>
>  3. vtkWrapPython generates the Python wrappers for each wrappable VTK 
> header and this is built to generate the Python wrapper.
>
>  4. The wrapper code makes use of Common/vtkPython.h 
> Common/vtkPythonUtil.cxx  and Common/vtkPythonUtil.h for various 
> things. Also note that Wrapping/hints is a mechanism for helping the 
> wrapper code with, err, hints to help the wrapping process along.  To 
> see what the individual codes represent see Wrapping/vtkParse.y and 
> vtkParse.tab.c
>
>  5. The VTK module for the vtk Python package is all in 
> Wrapping/Python/vtk.  There is a rambling README in Wrapping/Python 
> that might be of some use. There is also a nice README_WRAP.txt in the 
> same directory that is useful.
>
> I think that should give you a pretty solid start.
>
> I think all CMake does is to build the parser and organize the 
> building of the generated code, link it correctly (which can be a 
> bloody pain) etc.  I don't think it directly does anything regarding 
> the wrapper generation process.  Any useful CMake macros are best 
> gleaned by looking at CMake files (at least thats how I used to do it).
>
> HTH.
>
> cheers,
> prabhu




More information about the vtk-developers mailing list