Ich möchte eine .proto-Datei analysieren, die Teil einer gRPC Client/Server-Definition ist. Ich möchte nur einen Ausgangspunkt dafür haben. Ich habe den gRPC-Code installiert und kann automatisch Python-Code aus den Proto-Dateien erzeugen. Ich frage mich, ob es offensichtliche Python-Klassen im gRPC-Code gibt (oder Open-Source-Bibliotheken da draußen), die Proto-Dateien einlesen und sie in irgendeiner Art strukturierter Objekte parsen.Grpc-Proto-Datei-Parser
0
A
Antwort
1
Die gRPC-Webseite sagt mir, dass sie die Protobufs-Syntax als IDL verwendet. Das examples-Verzeichnis, das in der pyparsen Quellenverteilung enthalten ist, enthält einen reinen Python-Protobuf-Parser. Sie können es hier ansehen: https://sourceforge.net/p/pyparsing/code/HEAD/tree/trunk/src/examples/protobuf_parser.py
1
parsy (combinator Bibliothek) hat ein Beispiel, das .proto
Dateien, Version 3. Sie parst kann es in der docs oder im repo finden. Das Ergebnis ist ein strukturiertes Objekt mit einfachen benutzerdefinierten Klassen wie Proto
für die gesamte Datei, das ein statements
-Attribut enthält, das Import
für jede Importleitung, Message
für jede Nachricht usw. enthält.