Feature: "M" module mapping option
pcj opened this issue · 1 comments
The plugin maps proto filenames to python module names in a predicable manner according to _type_names and other functions. This results in import statements like:
from google.protobuf.descriptor_pb2 import FileDescriptorProto, DescriptorProto
In our case as an artifact of the build system (bazel), the well-known types (and some other types) have alternate desired module name mappings. The desired import would be something like:
from protobufapis.google.protobuf.descriptor_pb2 import FileDescriptorProto, DescriptorProto
I would suggest a "mapping" option that allows the end-user to do such a mapping. Other protoc plugins have the same requirement. For protoc-gen-go
, for example, has the M
option.
For example:
--grpclib_opt=M=google/protobuf/duration.proto=protobufapis.google.protobuf.duration
Would parse the option, do a lookup in the type map, and produce the output:
from protobufapis.google.protobuf.descriptor_pb2 import FileDescriptorProto, DescriptorProto
Happy to create a PR to implement it, and thanks for the great plugin!
It would be great to have this option. Looking forward to review and merge your PR.