danielgtaylor / danielgtaylor/python-betterproto
In generated field name, an undescore is introduced after a number
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 234
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
### 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.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par exécuter la commande protoc signalée avec le message example.proto et comparez le nom de champ généré avec la sortie attendue. Suivez le point d’entrée du générateur qui convertit les noms de champs protobuf en noms Python ; le travail est terminé lorsqu’un champ tel que c2s reste c2s au lieu de devenir c2_s, avec une couverture de régression si les tests existants du projet offrent un emplacement approprié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100