danielgtaylor / danielgtaylor/python-betterproto
message names with mutliple constants don't generate correctly when used in grpc
- Lenguaje dominante
- Python
- Estrellas
- 1.8k
- Forks
- 234
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Given a message such as this:
```proto
message IDMessage {
string id = 1;
}
```
When it is used in an rpc as th einput message, this is generated
```python
async def get_revision(self) -> "Revision":
"""GetRevision returns a revision"""
request = IdMessage()
return await self._unary_unary(
"/somerpc.Name/GetRevision", request, Revision
)
```
if changed to:
```proto
message IdMessage {
string id = 1;
}
```
The generated prototype is then fixed:
```python
async def get_revision(self, *, id: str = "") ->"Revision":
"""GetRevision returns a revision"""
request = IdMessage()
request.id = id
return await self._unary_unary(
"/somerpc.Name/GetRevision", request, Revision
)
```
Guía de contribución
Línea de trabajo
Reproduce el problema con las dos definiciones de mensajes protobuf y una RPC que usa el mensaje como entrada. Comienza rastreando el método de cliente gRPC asíncrono generado y compara los casos de múltiples constantes y de una sola constante. Se considera terminado cuando ambos casos generan la firma de método esperada y las asignaciones de los campos de la solicitud.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- grpc, python
- Área
- api, tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100