danielgtaylor / danielgtaylor/python-betterproto

Fix for broken relative imports and missing betterproto_lib_google_protobuf

Ouverte
#472 2 commentaires 3 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.