python-betterproto icon indicating copy to clipboard operation
python-betterproto copied to clipboard

Missing import in generated code when using well known types

Open 124C41p opened this issue 1 year ago • 1 comments

Summary

When compiling a proto file which references well known types, protoc should generate the line import betterproto.lib.google.protobuf as betterproto_lib_google_protobuf. This does not happen in the following edge case.

Reproduction Steps

Create a file foo.proto whith the following content

syntax = "proto3";
import "google/protobuf/empty.proto";

service foo {
    rpc foo (google.protobuf.Empty) returns (MyEmpty);
}

message MyEmpty {}

and compile it by running python -m grpc_tools.protoc -I . --python_betterproto_out=lib foo.proto.

Expected Results

The generated file __init__.py references a module betterproto_lib_google_protobuf, so it should import betterproto.lib.google.protobuf as betterproto_lib_google_protobuf.

Note that it actually would be imported if I had used google.protobuf.Empty as the return value of the RPC above.

Actual Results

The generated file __init__.py does not import betterproto.lib.google.protobuf as betterproto_lib_google_protobuf

System Information

libprotoc 25.0 Python 3.10.12 betterproto 2.0.0b6 (tested with released version and github master branch)

Checklist

  • [X] I have searched the issues for duplicates.
  • [X] I have shown the entire traceback, if possible.
  • [X] I have verified this issue occurs on the latest prelease of betterproto which can be installed using pip install -U --pre betterproto, if possible.

124C41p avatar Jan 03 '24 19:01 124C41p

related but not exactly the same: https://github.com/danielgtaylor/python-betterproto/issues/554

yc2984 avatar Jan 31 '24 11:01 yc2984