danielgtaylor / danielgtaylor/python-betterproto

Suggestion: give user an option not to change field name of the message.

Offen
#379 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
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

Beitragsleitfaden öffnen

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.