Hi, I am also looking for this feature. I saw the SVN update to CHANGES.txt<http://code.google.com/p/protobuf/source/browse/trunk/CHANGES.txt?spec=svn426&r=425>.
Can you please confirm if this has been committed to the public svn ? Thanks On Monday, September 10, 2012 10:51:16 PM UTC-4, Jason Hsueh wrote: > > This feature was just implemented internally, and I believe it should make > the next release (2.5.0). It's in progress, but not quite ready to hit svn > yet. > > > On Thu, Aug 30, 2012 at 6:53 AM, Jan Koriťák <je...@pudr.com <javascript:> > > wrote: > >> Hello, >> >> I am using Python to write a tool to control our backends which >> communicate using protocol buffers. >> >> We would like our tool to be independent on current version of backends >> and therefore independent on .proto files that were used to build the >> particular version of the backend. >> >> Therefore the tool receives serialized FileDescriptorSet over network, >> which should allow to create messages from the same descriptors, that are >> used at the backend side. >> >> This is possible to implement in C++ (and we actually use it in another >> component) using DynamicMessage. (Create DescriptorPool, load all the >> FileDescriptors >> to the pool using BuildFile(), and then retrieve Descriptor from the >> pool. Then it is possible to create message using DynamicMessageFactory) >> >> However, after thorough research on the web and of the source code of >> protocol buffers python bindings, I couldn't figure out how to do this >> (version 2.4.0). >> >> I was able to deserialize FileDescriptorSet, iterate over >> FileDescriptorProtos >> and get DescriptorProto object. However I didn't find a way to construct >> Descriptor >> objects, which are needed to create classes for message types(with >> GeneratedProtocolMessageType >> as a metaclass). >> >> I tried another way, when I found some access to C++ library API in >> google.protobuf.internal (which is probably not a good idea to use). I >> tried to indirectly use the C++ descriptor pool by >> cpp_message.BuildFile(), but there is no way to get the Descriptorobject >> back from the pool (it would be C++ object anyway). However there is >> a method cpp_message.NewCMessage, which can construct a message using >> descriptors from the pool. I was able to construct messages that way, but I >> was unable to set any fields. Only method that appeared usable was >> SetScalar, which requires C++ decriptor, which I was unable to get. Not >> to mention all of the Python magic is gone when dealing directly with the >> C++ API. >> >> Is there any way to create messages of arbitrary type, which is >> distributed over network, in Python ? I see those possibilities in both >> Java and C++, is Python library lacking such funcionality ? >> >> Thank you very much, hope I was clear enough. >> Best regards,¨ >> >> Jan Koritak >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Protocol Buffers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/protobuf/-/LEFgfPpImWEJ. >> To post to this group, send email to prot...@googlegroups.com<javascript:> >> . >> To unsubscribe from this group, send email to >> protobuf+u...@googlegroups.com <javascript:>. >> For more options, visit this group at >> http://groups.google.com/group/protobuf?hl=en. >> > > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To view this discussion on the web visit https://groups.google.com/d/msg/protobuf/-/L9mSM7H-GywJ. To post to this group, send email to protobuf@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.