Python struct constructors are clunky and error-prone
-----------------------------------------------------

                 Key: THRIFT-242
                 URL: https://issues.apache.org/jira/browse/THRIFT-242
             Project: Thrift
          Issue Type: Improvement
          Components: Compiler (Python)
            Reporter: Jonathan Ellis


The python constructors are clunky and unnecessarily difficult to use.  Instead 
of

Cls(value1, value2, ...)

you must write

Cls({'arg1': value1, 'arg2': value2})

(or use the dict constructor instead of literal notation).

Additionally, having the constructor silently do nothing if a non-dict is 
passed in (an object of the type being created would be another reasonable 
guess) or if an argument is mis-spelled causes users unnecessary trouble 
debugging.

Since removing the d argument entirely would be backwards-incompatible, the 
attached patch keeps it, but puts real keyword parameters in for 
forwards-compatibility.  Thus, old code will work with this patch, but new code 
can be written using keyword args that will still  work when the d argument is 
removed in a release that allows backwards-incompatibility.  (Removing the d 
argument is desireable because otherwise positional arguments can't be used.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to