[ https://issues.apache.org/jira/browse/THRIFT-1732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13573663#comment-13573663 ]
Kevin Stanton commented on THRIFT-1732: --------------------------------------- Hehe oye. Thanks. Incidentally, it doesn't appear that the validate() method is ever called by thrift anywhere (in the generated Python). However, in the generated Java, I see the .validate() method being called in multiple places (though only inside some weird static inner classes called <YourThriftObject>StandardScheme and <YourThriftObject>StandardSchemeFactory. To me, Thrift's generated code should be calling these before bothering with serialization. > 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 > Assignee: Kamil Sałaś > Priority: Minor > Attachments: > 0001-THRIFT-1732-Thrift-should-provide-deep-validation-of.patch, > 0001-THRIFT-1732-Thrift-should-provide-deep-validation-of_v2.patch, > thrift-1732_v3.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