danielgtaylor / danielgtaylor/python-betterproto
Fix for broken relative imports and missing betterproto_lib_google_protobuf
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 234
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par suivre ServiceMethodCompiler.__post_init__, output_package.imports et la section imports du template, puis comparez la gestion des types de messages d’entrée et de sortie. Reproduisez si possible les échecs des fichiers générés pour google.protobuf et les imports relatifs, et examinez la gestion des imports de Optional proposée dans l’issue ; le travail est considéré comme terminé lorsque les deux formes d’import sont générées de manière fiable.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100