Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python plugin can generate invalid python file names. #17950

Open
james-lawrence opened this issue Aug 26, 2024 · 2 comments
Open

python plugin can generate invalid python file names. #17950

james-lawrence opened this issue Aug 26, 2024 · 2 comments
Assignees

Comments

@james-lawrence
Copy link

forgive me if i'm missing something obvious python is a language I rarely touch by choice so I might be missing something trivial.

What version of protobuf and what language are you using?
Version: 5.27.2
Language: python

What operating system (Linux, Windows, ...) and version?

uname -a
Linux 6.10.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 19 Aug 2024 17:02:39 +0000 x86_64 GNU/Linux

What runtime / compiler are you using (e.g., python version or gcc version)
Python 3.12.4, setup a virtual env following the grpc quick start guide.

What did you do?
Steps to reproduce the behavior:

  1. create a proto file with the name example.service.proto
  2. generate python code using the proto file. .egpyenv/bin/python -m grpc_tools.protoc --python_out=. --pyi_out=. --grpc_python_out=. example.service.proto
  3. generated code will be named example.service_pb2.py and example.service_pb2_grpc.py respectively.
  4. can't import these files easily in python making them hard to use.

What did you expect to see
generated code that was usable. manually renaming the proto files is a possibility but the point of IDL tools is to handle these langauge specific divergent behaviors.

What did you see instead?
hard to import generated code.

@james-lawrence james-lawrence added the untriaged auto added to all issues by default when created. label Aug 26, 2024
@googleberg
Copy link
Member

@james-lawrence Can you provide a little more information about what was hard about importing these files?

@googleberg googleberg added wait for user action and removed untriaged auto added to all issues by default when created. labels Sep 9, 2024
@james-lawrence
Copy link
Author

james-lawrence commented Sep 9, 2024

try importing a python file with periods in the filename, python doesn't allow it as periods are used as path separators.

for example: if you import the following it'll look for the file foo/bar/example.py not file.bar.example.py which is what the protoc plugin generates with a proto file names foo.bar.example.proto. afiak there is no way to import a file named as such in python, but that could just be my lack of knowledge of python's behaviors for imports.

import foo.bar.example

@googleberg googleberg added untriaged auto added to all issues by default when created. and removed wait for user action labels Sep 9, 2024
@github-staff github-staff deleted a comment from masooddahmedd Sep 10, 2024
@JasonLunn JasonLunn removed the untriaged auto added to all issues by default when created. label Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants
@JasonLunn @james-lawrence @anandolee @googleberg and others