aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Nathaniel Manista <nathaniel@google.com>2017-05-01 19:29:54 -0700
committerGravatar GitHub <noreply@github.com>2017-05-01 19:29:54 -0700
commit683add5f84b0e4ba7bcab484fb595583c20bdb79 (patch)
tree6d1b27c446c90803dd7b6557c3c8cfa3f93bd8bb
parent305dcf3d32bed0614325ead76f121702768ce874 (diff)
parent6580894218a5ade10373ce4c18d41e453c9e1c59 (diff)
Merge pull request #10862 from makroiss/patch-1
Fix imports in generated gRPC Python code.
-rw-r--r--src/compiler/python_generator.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 50ee54abff..278e5072b2 100644
--- a/src/compiler/python_generator.cc
+++ b/src/compiler/python_generator.cc
@@ -622,9 +622,17 @@ bool PrivateGenerator::PrintPreamble(grpc_generator::Printer* out) {
for (StringPairSet::iterator it = imports_set.begin();
it != imports_set.end(); ++it) {
- var["ModuleName"] = std::get<0>(*it);
+ auto module_name = std::get<0>(*it);
var["ModuleAlias"] = std::get<1>(*it);
- out->Print(var, "import $ModuleName$ as $ModuleAlias$\n");
+ const size_t last_dot_pos = module_name.rfind('.');
+ if (last_dot_pos == grpc::string::npos) {
+ var["ImportStatement"] = "import " + module_name;
+ } else {
+ var["ImportStatement"] = "from " + module_name.substr(0, last_dot_pos) +
+ " import " +
+ module_name.substr(last_dot_pos + 1);
+ }
+ out->Print(var, "$ImportStatement$ as $ModuleAlias$\n");
}
}
return true;