pybind / pybind11_protobuf

Pybind11 bindings for Google's Protocol Buffers
Other
57 stars 35 forks source link

proto package is not preserved #91

Open estrulyov opened 2 years ago

estrulyov commented 2 years ago

For this test I pulled the example code from https://github.com/davidtwomey/pybind11_protobuf_example.git and updated it to use native_proto_caster + latest versions of libs pybind_proto_example.zip .

The issue is that the proto created in python has the type <class 'example_pb2.TestMessage'> but the proto created in C++ has the type <class 'TestMessage'>

The module name is not preserved despite package being specified in example.proto. This breaks isinstance().

We see even more weirdness in our code with nested protos. Sometimes the nested proto includes the full module name (python-style) and sometimes it doesn't (C++ style).

Questions:

  1. Why is it happening?
  2. Is it safe?

To test: unzip the attached code and run bazel run example

rwgk commented 2 years ago

@laramiel

estrulyov commented 2 years ago

ping...

laramiel commented 2 years ago

Sorry, I did some experiments with the zip file on my macbook and had a few build related issues that surfaced first.

cue malcolm in the middle meme

Will try to look some more soon-ish.