Python包装器是否有一个协议缓冲区,允许Python代码中的对象注释而不是它的原型文件?

Python包装器是否有一个协议缓冲区,允许Python代码中的对象注释而不是它的原型文件?,python,serialization,protocol-buffers,Python,Serialization,Protocol Buffers,所以我有一个python中的对象模型。我的应用程序处于开发阶段,因此目前我可以允许不稳定的序列化格式。我希望用Python代码注释我的对象层次结构(如果需要的话),或者什么都不注释,允许Protobuf包装器动态地完成这一切 在普通的原型文件中描述每个对象,并使booth层次结构保持最新,这将是一件非常痛苦的事情 所以我想知道是否有一种方法可以在python注释中使用协议缓冲区\依赖于python代码中的反射(就像它们在中那样)?我也有类似的问题。我希望能够在数据库中存储对象,同时使用proto

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

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


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

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

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

然后必须正常调用protoc,才能为SQLAlchemy对象中定义的类获取protobuf类。因此,每次更改SQLAlchemy对象定义后,我都必须调用脚本来构建原型文件并调用protoc。这项工作出人意料地好

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


我从《实用程序员》(Practical Programmer)一书中得到了开发自己的对象定义的想法,您可以从中了解更多。

我确信这是可能的,但是否有人已经这样做是另一个问题:)您想生成一个原型文件,还是完全跳过这一步?如果不注释,您希望发生什么?(可能是因为我不太熟悉注释,但一个简单的例子也会很有帮助。)生成原型文件的能力是a+,但我现在想跳过代码->原型->原型->代码过程。你使用的是什么版本的python/protobuf?任何protobuf版本,python 2.7,如果可能的话。你能分享你的
.proto文件生成器实用程序吗