danielgtaylor / danielgtaylor/python-betterproto
In generated field name, an undescore is introduced after a number
- Lenguaje dominante
- Python
- Estrellas
- 1.8k
- Forks
- 234
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### Summary
Underscore is added after a number in the field name, e.g. `c2s` becomes `c2_s`.
### Reproduction Steps
```proto
syntax = "proto3";
message Example {
string c2s = 1;
}
```
```bash
protoc --python_betterproto_out=lib example.proto
```
### Expected Results
Expecting `c2s`.
```python
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: example.proto
# plugin: python-betterproto
# This file has been @generated
from dataclasses import dataclass
import betterproto
@dataclass(eq=False, repr=False)
class Example(betterproto.Message):
c2s: str = betterproto.string_field(1)
```
### Actual Results
Generates `c2_s` instead.
```python
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: example.proto
# plugin: python-betterproto
# This file has been @generated
from dataclasses import dataclass
import betterproto
@dataclass(eq=False, repr=False)
class Example(betterproto.Message):
c2_s: str = betterproto.string_field(1)
```
### System Information
libprotoc 27.1
Python 3.8.20
Name: betterproto
Version: 2.0.0b7
Location: /Users/.../demo/.venv/lib/python3.8/site-packages
Requires: grpclib, python-dateutil, typing-extensions
Required-by: demo
### Checklist
- [x] I have searched the issues for duplicates.
- [x] I have shown the entire traceback, if possible.
- [x] I have verified this issue occurs on the latest prelease of betterproto which can be installed using `pip install -U --pre betterproto`, if possible.
Guía de contribución
Línea de trabajo
Empieza ejecutando el comando protoc indicado con el mensaje example.proto y compara el nombre de campo generado con la salida esperada. Sigue el punto de entrada del generador que convierte los nombres de campos de protobuf en nombres de Python; el trabajo está terminado cuando un campo como c2s sigue siendo c2s en lugar de convertirse en c2_s, con cobertura de regresión si las pruebas existentes del proyecto ofrecen un lugar adecuado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100