像sqlalchemy的声明基或django的模型这样的结构在您的项目中!
prettyrecord的Python项目详细描述
prettyrecord允许您以声明方式定义数据结构, 类似于sqlalchemy的声明性基或django的模型。为了达到目标, prettyrecord使用python的描述符和元类机制。
用法
定义新的结构、子类记录或派生类并用字段填充,例如:
from prettyrecord import Record class DummyRecord(Record, some_trait=False): field1 = Field(required=True, default_value='') field2 = Field(default_value=0) field3 = ListField(constraint=lambda value: -5 < value < 5) dr = DummyRecord(field1='foo', field3=[-2, 3, 1, 0, 4) print(dr.field1) # shows 'foo' print(dr.__some_trait__) # shows 'False'
定义新字段、子类字段、记录字段、列表字段或派生类,例如:
from prettyrecord import Field class Integer(Field): def normalize(self, value): value = super(Integer, self).normalize(value) return int(value)
若要更改结构的创建过程,请子类化metarecord并为其定义新基类,例如:
from prettyrecord.record import Record, MetaRecord class MetaMyRecord(MetaRecord): def __new__(mcs, name, bases, attrs, **kwargs): # your code here - remember to call super().__new__ def __init__(cls, name, bases, attrs, **kwargs): # your code here - remember to call super().__init__ class MyRecord(Record, metaclass=MetaMyRecord): pass