danielgtaylor / danielgtaylor/python-betterproto

Imports from adjacent .proto files does not work

Ouverte
#441 2 commentaires 0 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

First of all, I looked at the issue #408 and I am absolutely sure that I have `betterproto[compiler]` of version `2.0.0b5` installed

I have this file structure:
```
protos
├── common.proto
└── devices
└── rpi.proto
```

With `protos/common.proto`:
```
syntax = 'proto3';
package org.company.name.common;

message DeviceId {
string device_id = 1;
}
```

and `protos/devices/rpi.proto`:
```
syntax = 'proto3';
package org.company.name.rpi;

import "common.proto";
import "google/protobuf/empty.proto";

service RPI {
rpc Start(common.DeviceId) returns (google.protobuf.Empty) {}
rpc Stop(common.DeviceId) returns (google.protobuf.Empty) {}
```

I then generate betterproto files:
```
poetry run python -m grpc_tools.protoc \
-I protos \
--python_betterproto_out=package_name/grpc \
protos/common.proto \
protos/devices/rpi.proto \
```

## The BUG

In `package_name.grpc.org.company.name.rpi` any mentions of `DeviceId` are presented as `_common__.DeviceId`, with `_common__` not being imported. Launching that code does not work either, python has no idea what `_common__` is.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Reproduisez le problème avec protos/common.proto et protos/devices/rpi.proto à l’aide de la commande grpc_tools.protoc indiquée. Inspectez la sortie package_name/grpc générée pour vérifier les références à DeviceId et les imports du service RPI. C’est terminé lorsque le module Python généré s’importe correctement et que ces références se résolvent sans nom _common__ indéfini.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
grpc, 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.