对于Python包装器,是否有一个协议缓冲区允许在Python代码中而不是proto文件中进行对象注释?

2024-09-25 02:26:54 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在python中有一个对象模型。我的应用程序处于开发阶段,所以目前我可以允许不稳定的序列化格式。我想要在Python代码中注释对象层次结构(如果需要的话),或者不加任何注释,允许一些Protobuf包装器动态地完成这一切。在

在普通的proto文件中描述每个对象并保持booth层次结构的最新性将是一件非常痛苦的事情。在

因此,我想知道是否有一种方法可以使用python中的协议缓冲区来注释\依赖于python代码中的反射(就像它们在protobuf-net中那样做)?在


Tags: 文件对象代码模型应用程序序列化层次结构格式
1条回答
网友
1楼 · 发布于 2024-09-25 02:26:54

我也有类似的问题。我希望能够在数据库中存储对象,同时使用protobuf序列化它们。在

我使用的方法是在SQLAlchemy中定义对象,然后使用SQLAlchemy反射(inspect方法)编写*.proto文件生成器实用程序。在

然后必须正常地调用protoc来获取SQLAlchemy对象中定义的protobuf类。因此,在SQLAlchemy对象定义的每次更改之后,我都必须调用脚本来构建proto文件并调用protoc。这工作得出奇地好。在

我考虑的另一个选择是设计对象定义格式和生成器,以生成SQLAlchemy对象和protobuf对象。我决定反对它,因为这个对象定义格式应该能够包含构建SQLAlchemy对象(索引、约束、触发器)的所有信息,这就像重新设计SQLAlchemy已经很好地完成的工作一样,但是您可能不需要如此丰富的对象定义,这种方法可能非常适合您。在

我从《实用程序员》一书中获得了开发自己的对象定义的想法,在这本书中您可以阅读到更多关于它的内容。在

相关问题 更多 >