danielgtaylor / danielgtaylor/python-betterproto
Suggestion: give user an option not to change field name of the message.
- Vorherrschende Sprache
- Python
- Sterne
- 1.8k
- Forks
- 234
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Every prevailing project has its own name-style, forcing users to rename every name may be not a good idea.
To communicate with Java/C++/JavaScript, `mixedCase` (also known as `Lower CamelCase`) is accepted by every other language,
and it is much shorter than PEP8 suggested-style: `private_multicast_addr` .
In my case, the InitConfig is passed by an JSON-object from web client, changing the name back and forth is useless and boring.
```proto
message InitConfig{
string sendFileDir=1;
string publicMulitcastAddr=2;
uint32 linkID =3;
string privateMulticastAddr=4;
uint32 CIR=5;
repeated string channels=6;
repeated string waitingFiles=7;
}
```
the generated python file by betterproto:
```python
@dataclass(eq=False, repr=False)
class InitConfig(betterproto.Message):
send_file_dir: str = betterproto.string_field(1)
public_mulitcast_addr: str = betterproto.string_field(2)
link_id: int = betterproto.uint32_field(3)
private_multicast_addr: str = betterproto.string_field(4)
cir: int = betterproto.uint32_field(5)
channels: List[str] = betterproto.string_field(6)
waiting_files: List[str] = betterproto.string_field(7)
```
Beitragsleitfaden
Rechercherichtung
Das Issue nennt keine Dateien, Tests oder Einstiegspunkte; beginne damit, die Generatorlogik zu finden, die protobuf-Feldnamen für die Python-Ausgabe umwandelt. Als erledigt gilt eine Opt-in-Möglichkeit, die Quellfeldnamen beizubehalten, wobei das Verhalten für die gezeigten InitConfig-artigen Felder verifiziert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100