danielgtaylor / danielgtaylor/python-betterproto
PascalCase support
- 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