[ 
https://issues.apache.org/jira/browse/THRIFT-1732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamil Salas updated THRIFT-1732:
--------------------------------

    Attachment: 0001-THRIFT-1732-Thrift-should-provide-deep-validation-of.patch

Hi! I've provided a patch for this feature. I didn't implement this as a 
deep_validate  method, because Java Compiler is executing recursively a 
validate method, so I've chosen to follow the same path. I've also added 
validating of types. I hope I haven't messed up anything. Any comments are 
welcome!
                
> Thrift should provide deep-validation of structures
> ---------------------------------------------------
>
>                 Key: THRIFT-1732
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1732
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Python - Compiler
>    Affects Versions: 0.9
>         Environment: All.
>            Reporter: Avi Flamholz
>            Priority: Minor
>         Attachments: 
> 0001-THRIFT-1732-Thrift-should-provide-deep-validation-of.patch
>
>
> The validate() method in Python does extremely shallow validation: it checks 
> only that required fields are not None. It does not check that field values 
> have the correct type or that embedded structures or collections are valid.
> This is paltry validation as compared to IsInitialized() in the Python 
> Protocol Buffers implementation, which descends into embedded structures and 
> checks that they are valid. Not to mention that ProtocolBuffers also check 
> value types on assignment. 
> It is fairly simple to generate a deep_validate() method that will 
> recursively descend into structures and collections and call validate() on 
> those which can be validated. I've written something of the sort and I'm 
> curious if it would be a welcome addition to the Python generated code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to