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

Fix for broken relative imports and missing betterproto_lib_google_protobuf

Open BananaLoaf opened this issue 2 years ago • 2 comments

The issue affects both relative imports and google.protobuf imports, but is not 100% reproducible.

My working theory is that for service method input types output_package.imports sometimes populates too late to be included in the imports section of a generated file. The list is populated only when template is compiled with method.py_input_message_param which comes way after the import section.

On the contrary, imports for output types are figured out before template compilation in ServiceMethodCompiler:__post__init__ by using self.py_output_message_type

Fix is to add

if "Optional" in self.py_input_message_type:
    self.output_file.typing_imports.add("Optional")

I have only checked it with google.protobuf types, but I suspect that relative imports behave no different and this issue is related to #441

BananaLoaf avatar Mar 31 '23 14:03 BananaLoaf

Hello guys @danielgtaylor, @Gobot1234,

can you add please this fix in new beta version? It has huge impact to generated code, i needed to fork your repo to proceed with python interfaces generating for proto files. It's fixes a lot missing return types import errors

Dimitrioglo avatar Jan 31 '24 20:01 Dimitrioglo

I can't fix issues myself with a fast turnaround due to needing a review from a collaborator. If you open a PR with the fix I can take a look

Gobot1234 avatar Jan 31 '24 20:01 Gobot1234