you can also set --pyi_out to get the interface/type definitions I believe!
- D On Fri, Sep 15, 2023 at 9:07 AM Nikita Ig <[email protected]> wrote: > As I understand it's a new version of protoc. And now all fields for > protobuff message dynamically adding at runtime. You can run your program > and set breakpoint. You could find all fields for message. Pycharm shows > errors about this field, but now it's a dynamical object and you'll get > correct message. > On Friday, 15 September 2023 at 14:39:08 UTC+3 Charlie Tian wrote: > >> >> I got this problem too! Can you explain why your first attemp generate >> "wrong" file ? >> 在2023年8月1日星期二 UTC+8 22:32:49<Nikita Ig> 写道: >> >>> >>> Oh, I'm so sorry. I can understand my problems. I suppose that >>> conversation may close and delete. >>> On Tuesday, 1 August 2023 at 16:04:49 UTC+3 Nikita Ig wrote: >>> >>>> I installed protoc to my ubuntu and got version libprotoc 3.12.4 >>>> I reproduce all my steps and got typical example of pb2.py file >>>> consisted all data >>>> >>>> # -*- coding: utf-8 -*- >>>> # Generated by the protocol buffer compiler. DO NOT EDIT! >>>> # source: test.proto >>>> >>>> from google.protobuf import descriptor as _descriptor >>>> from google.protobuf import message as _message >>>> from google.protobuf import reflection as _reflection >>>> >>>> from google.protobuf import symbol_database as _symbol_database >>>> # @@protoc_insertion_point(imports) >>>> >>>> _sym_db = _symbol_database.Default() >>>> >>>> >>>> >>>> >>>> DESCRIPTOR = _descriptor.FileDescriptor( >>>> name='test.proto', >>>> package='', >>>> syntax='proto3', >>>> serialized_options=None, >>>> create_key=_descriptor._internal_create_key, >>>> >>>> serialized_pb=b'\n\ntest.proto\"M\n\rSearchRequest\x12\r\n\x05query\x18\x01 >>>> \x01(\t\x12\x13\n\x0bpage_number\x18\x02 >>>> \x01(\x05\x12\x18\n\x10results_per_page\x18\x03 \x01(\x05\x62\x06proto3' >>>> ) >>>> >>>> >>>> >>>> >>>> _SEARCHREQUEST = _descriptor.Descriptor( >>>> name='SearchRequest', >>>> full_name='SearchRequest', >>>> filename=None, >>>> file=DESCRIPTOR, >>>> containing_type=None, >>>> create_key=_descriptor._internal_create_key, >>>> fields=[ >>>> _descriptor.FieldDescriptor( >>>> name='query', full_name='SearchRequest.query', index=0, >>>> number=1, type=9, cpp_type=9, label=1, >>>> has_default_value=False, default_value=b"".decode('utf-8'), >>>> message_type=None, enum_type=None, containing_type=None, >>>> is_extension=False, extension_scope=None, >>>> serialized_options=None, file=DESCRIPTOR, >>>> create_key=_descriptor._internal_create_key), >>>> _descriptor.FieldDescriptor( >>>> name='page_number', full_name='SearchRequest.page_number', >>>> index=1, >>>> number=2, type=5, cpp_type=1, label=1, >>>> has_default_value=False, default_value=0, >>>> message_type=None, enum_type=None, containing_type=None, >>>> is_extension=False, extension_scope=None, >>>> serialized_options=None, file=DESCRIPTOR, >>>> create_key=_descriptor._internal_create_key), >>>> _descriptor.FieldDescriptor( >>>> name='results_per_page', >>>> full_name='SearchRequest.results_per_page', index=2, >>>> number=3, type=5, cpp_type=1, label=1, >>>> has_default_value=False, default_value=0, >>>> message_type=None, enum_type=None, containing_type=None, >>>> is_extension=False, extension_scope=None, >>>> serialized_options=None, file=DESCRIPTOR, >>>> create_key=_descriptor._internal_create_key), >>>> ], >>>> extensions=[ >>>> ], >>>> nested_types=[], >>>> enum_types=[ >>>> ], >>>> serialized_options=None, >>>> is_extendable=False, >>>> syntax='proto3', >>>> extension_ranges=[], >>>> oneofs=[ >>>> ], >>>> serialized_start=14, >>>> serialized_end=91, >>>> ) >>>> >>>> DESCRIPTOR.message_types_by_name['SearchRequest'] = _SEARCHREQUEST >>>> _sym_db.RegisterFileDescriptor(DESCRIPTOR) >>>> >>>> SearchRequest = >>>> _reflection.GeneratedProtocolMessageType('SearchRequest', >>>> (_message.Message,), { >>>> 'DESCRIPTOR' : _SEARCHREQUEST, >>>> '__module__' : 'test_pb2' >>>> # @@protoc_insertion_point(class_scope:SearchRequest) >>>> }) >>>> _sym_db.RegisterMessage(SearchRequest) >>>> >>>> >>>> # @@protoc_insertion_point(module_scope) >>>> >>>> >>>> And I have a question - what did I wrong in my first attempt? Is it a >>>> new version of protoc? or is it a problem in my Windows? Or anything else? >>>> On Tuesday, 1 August 2023 at 14:35:32 UTC+3 Nikita Ig wrote: >>>> >>>>> Hello. I'm a rookie in protocol buffers and I'm trying to repeat >>>>> example from documentation. >>>>> >>>>> Step 1. Installed protoc >>>>> Step 2. Created test.proto file consisted this code: >>>>> syntax = "proto3"; >>>>> >>>>> message SearchRequest { >>>>> string query = 1; >>>>> int32 page_number = 2; >>>>> int32 results_per_page = 3; >>>>> } >>>>> Step 3. I ran protoc with help command: >>>>> protoc.exe --proto_path=${PWD}/protobuf --python_out=${PWD}/protobuf/ >>>>> ${PWD}/protobuf/test.proto >>>>> >>>>> Step 4. I got test_pb2.py file consisted this code: >>>>> # -*- coding: utf-8 -*- >>>>> # Generated by the protocol buffer compiler. DO NOT EDIT! >>>>> # source: test.proto >>>>> """Generated protocol buffer code.""" >>>>> from google.protobuf import descriptor as _descriptor >>>>> from google.protobuf import descriptor_pool as _descriptor_pool >>>>> from google.protobuf import symbol_database as _symbol_database >>>>> from google.protobuf.internal import builder as _builder >>>>> # @@protoc_insertion_point(imports) >>>>> >>>>> _sym_db = _symbol_database.Default() >>>>> >>>>> >>>>> >>>>> >>>>> DESCRIPTOR = >>>>> _descriptor_pool.Default().AddSerializedFile(b'\n\ntest.proto\"M\n\rSearchRequest\x12\r\n\x05query\x18\x01 >>>>> \x01(\t\x12\x13\n\x0bpage_number\x18\x02 >>>>> \x01(\x05\x12\x18\n\x10results_per_page\x18\x03 \x01(\x05\x62\x06proto3') >>>>> >>>>> _globals = globals() >>>>> _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) >>>>> _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test_pb2', >>>>> _globals) >>>>> if _descriptor._USE_C_DESCRIPTORS == False: >>>>> >>>>> DESCRIPTOR._options = None >>>>> _globals['_SEARCHREQUEST']._serialized_start=14 >>>>> _globals['_SEARCHREQUEST']._serialized_end=91 >>>>> # @@protoc_insertion_point(module_scope) >>>>> >>>>> But documentation said about other format file for python generated >>>>> file and I have no idea what I need to import in my producer for create >>>>> message object. Generated file didn't contain any classes or something >>>>> other entity for import. >>>>> >>>>> Thanks for any help. >>>>> >>>> -- > You received this message because you are subscribed to the Google Groups > "Protocol Buffers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/protobuf/28077f2b-cfa3-4d6f-8f88-4515607033b7n%40googlegroups.com > <https://groups.google.com/d/msgid/protobuf/28077f2b-cfa3-4d6f-8f88-4515607033b7n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/CAJGs%2BiLDrQy6YkLr%2BmqscJzOF_ibAqmp7SZjJa8CkMdMSfjKeg%40mail.gmail.com.
