Skip to content

Fix for broken relative imports and missing betterproto_lib_google_protobuf #472

Open
@BananaLoaf

Description

@BananaLoaf

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions