All that matters for protobuf compatibility is that the full_name is the same. (Thanks @kmoffett for that insight!)
Cross-extension-module ABI compatibility is not a concern because only the Python API is used in the relevant code paths serializing Python protobuf objects to Python bytes (equivalent to calling obj.SerializePartialToString() from Python).
All other changes in this CL are secondary: small-scale refactoring, slight naming changes, additional tests for error conditions.
Remove two pool-membership conditions guarding the C++ equivalent of
obj.SerializePartialToString()
The main change in this CL is to remove two conditions in
PyProtoIsCompatible()
:1.
2.
Rationale for removing these conditions:
All that matters for protobuf compatibility is that the
full_name
is the same. (Thanks @kmoffett for that insight!)Cross-extension-module ABI compatibility is not a concern because only the Python API is used in the relevant code paths serializing Python protobuf objects to Python
bytes
(equivalent to callingobj.SerializePartialToString()
from Python).All other changes in this CL are secondary: small-scale refactoring, slight naming changes, additional tests for error conditions.