From b09aa967a65543c81b7b600e13f096d74fb64081 Mon Sep 17 00:00:00 2001 From: Jie Luo Date: Tue, 1 Aug 2023 15:42:48 -0700 Subject: [PATCH] Fix pyi top level messages/enums in public imports Ported from https://github.com/protocolbuffers/protobuf/pull/13424 According to PEP 484 https://peps.python.org/pep-0484/#stub-files Modules and variables imported into the stub are not considered exported from the stub unless the import uses the import ... as ... form or the equivalent from ... import ... as ... form. PiperOrigin-RevId: 552945770 --- src/google/protobuf/compiler/python/pyi_generator.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/google/protobuf/compiler/python/pyi_generator.cc b/src/google/protobuf/compiler/python/pyi_generator.cc index bc98b1f57e..8aec94d35e 100644 --- a/src/google/protobuf/compiler/python/pyi_generator.cc +++ b/src/google/protobuf/compiler/python/pyi_generator.cc @@ -283,14 +283,14 @@ void PyiGenerator::PrintImports() const { std::string module_name = StrippedModuleName(public_dep->name()); // Top level messages in public imports for (int i = 0; i < public_dep->message_type_count(); ++i) { - printer_->Print("from $module$ import $message_class$\n", "module", - module_name, "message_class", - public_dep->message_type(i)->name()); + printer_->Print( + "from $module$ import $message_class$ as $message_class$\n", "module", + module_name, "message_class", public_dep->message_type(i)->name()); } // Top level enums for public imports for (int i = 0; i < public_dep->enum_type_count(); ++i) { - printer_->Print("from $module$ import $enum_class$\n", "module", - module_name, "enum_class", + printer_->Print("from $module$ import $enum_class$ as $enum_class$\n", + "module", module_name, "enum_class", public_dep->enum_type(i)->name()); } }