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.