                                -*- text -*-

TRANSLATING PARAMETER LISTS

   The argument-reductions laws of the SWIG bindings something go like
   this:
   
     - Python functions don't return errors.  They throw exceptions.
       Which means that...
   
     - ...Python functions will return the "other" stuff that the C
       functions "return" instead.  C functions which populate
       pointers with new data (you know, values that are returned to
       the caller, but not as "return values") will return those
       values directly in Python.  So:
   
          error = foo (object **returned_obj, int blah);
   
       becomes:
   
          try:
              returned_obj = foo (blah)
          except:
              # handle it
   
     - Callback function/baton pairs get reduced to just callback
       functions, and the benefit you get from batons is gotten
       instead through Python default arguments:
   
          error = foo (callback_t function, void *baton);
   
       becomes:
   
          try:
              def function(callback_arg1, ..., userdata1=whatever, ...):
                  # do stuff here
              foo(function)
          except:
              # handle it
