You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "David Reiss (JIRA)" <ji...@apache.org> on 2009/01/05 21:05:44 UTC
[jira] Commented: (THRIFT-242) Python struct constructors are
clunky and error-prone
[ https://issues.apache.org/jira/browse/THRIFT-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660886#action_12660886 ]
David Reiss commented on THRIFT-242:
------------------------------------
I'd be interested to hear what Ben (Maurer) thinks of this, since ReCaptcha is one of the biggest Python/Thrift users.
> 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
> Attachments: init.patch, thrift-242_no_d_argument.patch
>
>
> 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.