用python编写的google appengine ndb属性生成器。您可以通过这个库将JSON数据转换为自定义NDB属性。
ndb_prop_gen的Python项目详细描述
用python编写的google appengine ndb属性生成器。您可以通过这个库将json数据转换为您的自定义ndb属性
这是什么?
简单的ndb Property Subclass生成器。使用json定义类的属性。
源json示例
{"name":"book","class":"Book","props":[{"name":"title","type":"String","default":""},{"name":"author","type":"String","default":""},{"name":"published","type":"DateTime","default":null},{"name":"price","type":"Float","default":10.0},{"name":"read","type":"Bool","default":false}]}
生成的python示例
# -*- coding: utf-8 -*-fromgoogle.appengine.extimportndb__all__=["Book","BookModel","BookProperty","LocalBookProperty"]classBook(object):def__init__(self,title="",author="",published=None,price=10.0,read=False):self._title=titleself._author=authorself._published=publishedself._price=priceself._read=read@propertydeftitle(self):returnself._title@propertydefauthor(self):returnself._author@propertydefpublished(self):returnself._published@propertydefprice(self):returnself._price@propertydefread(self):returnself._readdef_prepare_for_put(self):passdef_has_repeated(self):passdef_to_dict(self):passclassBookModel(ndb.Model):title=ndb.StringProperty(default="")author=ndb.StringProperty(default="")published=ndb.DateTimeProperty()price=ndb.FloatProperty(default=10.0)read=ndb.BooleanProperty(default=False)classBookProperty(ndb.StructuredProperty):def__init__(self,**kwds):super(BookProperty,self).__init__(BookModel,**kwds)def_validate(self,value):assertisinstance(value,Book)def_to_base_type(self,value):returnBookModel(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)def_from_base_type(self,value):returnBook(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)classLocalBookProperty(ndb.StructuredProperty):def__init__(self,**kwds):super(LocalBookProperty,self).__init__(BookModel,**kwds)def_validate(self,value):assertisinstance(value,Book)def_to_base_type(self,value):returnBookModel(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)def_from_base_type(self,value):returnBook(title=value.title,author=value.author,published=value.published,price=value.price,read=value.read,)
有关更多示例,请参见example目录
用法
- 通过PIP安装ndb_prop_gen
pip install ndb_prop_gen
- 调用生成方法
- 通过命令行
ndb_prop_gen test.json
- 通过python代码
importndb_prop_genasnpg# noqa# filename is the json's filenamenpg.generate(filename)
许可证
麻省理工学院