diff options
author | Nathaniel Manista <nathaniel@google.com> | 2017-05-01 19:29:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-01 19:29:54 -0700 |
commit | 683add5f84b0e4ba7bcab484fb595583c20bdb79 (patch) | |
tree | 6d1b27c446c90803dd7b6557c3c8cfa3f93bd8bb /src | |
parent | 305dcf3d32bed0614325ead76f121702768ce874 (diff) | |
parent | 6580894218a5ade10373ce4c18d41e453c9e1c59 (diff) |
Merge pull request #10862 from makroiss/patch-1
Fix imports in generated gRPC Python code.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/python_generator.cc | 12 |
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; |