将protobuf生成的消息转换为Python友好的schematics模型。
项目描述
让Protobuf消息像Python一样可爱。
动机
当涉及到高性能的schema-aware API时,Protobuf和gRPC非常出色,但Google设计Protobuf时并没有尝试使其生成的代码在Python中成为惯用代码,这在将消息导出至接口模块外部时带来了问题。
Schematics是一个可爱且Pythonic的schema库。为什么不将它们结合起来呢?
安装
使用pip
pip install proto_schamatics
示例
检查一个模块就像这样简单
from proto_schematics import ProtobufModule
models = ProtobufModule('my_protobuf_lib').import_schema()
MySchamticsModel = models['ProtobufMessageName']
您也可以以懒散的lint不友好方式做
from proto_schematics import ProtobufModule
ProtobufModule('my_protobuf_lib').meta_import()
from protobuf_schematics import ProtobufMessageName as MySchematicsModel
支持
日期时间作为原生的Python类型
持续时间作为TimeDeltas
包装器作为原生可空类型