danielgtaylor / danielgtaylor/python-betterproto

Missing import in generated code when using well known types

Đang mở
#552 1 bình luận 4 reaction 0 người được giao Xem trên GitHub
bug investigation needed
Ngôn ngữ chính
Python
Star
1.8k
Fork
234
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### 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
```proto
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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start by reproducing the issue with foo.proto and the stated python -m grpc_tools.protoc command, then inspect the generated __init__.py. Compare the output when google.protobuf.Empty is used as the RPC return value. Done means the edge-case output imports betterproto.lib.google.protobuf under the referenced alias and the generated code compiles successfully.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
tooling
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.