danielgtaylor / danielgtaylor/python-betterproto

PascalCase support

Ouverte
#89 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
bug high priority medium
Langage dominant
Python
Étoiles
1.8k
Forks
234
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

For a PascalCase field, betterproto uses the snake case in the class field, and can handle multiple cases in input json. However, it converts it to the camel case in output json, while protobuf requires a pascal case in the input. This makes the json incompatible.

For example,

```protobuf
message Test {
int32 camelCase = 1;
my_enum snake_case = 2;
snake_case_message snake_case_message = 3;
int32 PascalCase =4;
}
```

betterproto will output
```json
{"camelCase": 1, "pascalCase": 3, "snakeCase": "ONE"}
```
but protobuf is expecting
```json
{"PascalCase": 3, "camelCase": 1, "snakeCase": "ONE"}
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par retracer la sérialisation JSON de betterproto pour le message protobuf fourni et comparez la manière dont elle traite les champs camelCase, snake_case et PascalCase avec les noms JSON protobuf attendus. Utilisez l’exemple de l’issue comme cas de régression ; le travail est terminé si la sortie conserve PascalCase tout en conservant les autres noms de champs attendus.

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

Évaluation

Stack technique
python
Domaine
api, 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

Recevez les nouvelles issues par e-mail

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