1 This patch makes a number of changes to the SWIG python module.
 
   3 1. Add -apply option, and change the default code output to use the
 
   4    foo(*args, **kw) calling syntax instead of using apply().  If the
 
   5    -apply option is given then code is generated as before.  This is
 
   6    very similar to Patch #737281 but the new -modern option makes the
 
   7    second half of that patch unnecessary so it is not included here.
 
   9 2. Add -new_repr option.  This is the same as my Patch #797002 which I
 
  10    will mark as closed since it is no longer needed.  When this new
 
  11    option is used then the __repr__ methods that are generated for
 
  12    proxy classes will be more informative and give details about the
 
  13    python class and the C++ class.
 
  15 3. Add %feature("addtofunc").  It allows you to insert one or more
 
  16    lines of code inside the shadow method or function that is already
 
  17    generated, instead of replacing the whole thing like
 
  18    %feature("shadow") does.  For __init__ it goes at the end, for
 
  19    __del__ it goes at the begining and for all others the code
 
  20    generated is expanded out to be like
 
  22     def Bar(*args, **kwargs):
 
  23         val = _module.Foo_Bar(*args, **kwargs)
 
  26    and the "addtofunc" code is inserted just before the return
 
  27    statement. If the feature is not used for a particular method or
 
  28    function then the shorter code is generated just like before.
 
  30 4. A little bit of refactoring to make implementing addtofunc a little
 
  33 5. Added a -modern command-line flag that will cause SWIG to omit the
 
  34    cruft in the proxy modules that allows it to work with versions of
 
  35    Python prior to 2.2.  The result is a simpler, cleaner and faster
 
  36    python proxy module, but one that requires Python 2.2 or greater.
 
  37    For most of us this requirement is easy to live with!
 
  40 I've been using and greatly benefiting from all these features with
 
  41 wxPython for the last few weeks and have had no problems.
 
  43 This patch depends upon Patch #829317.