python 3的脏模型

dirty-models的Python项目详细描述


脏型号

python 3的脏模型

功能

  • python 3包。
  • 易于创建模型。
  • 非破坏性修改。
  • 非假阳性修改。
  • 能够恢复每个字段或整个模型的原始数据。
  • 获取原始数据。
  • 只读字段。
  • 字段的别名。
  • 每个字段的自定义getter和setter。
  • 自动转换值。
  • 轻松从dict导入/导出到dict。
  • 基本字段类型已实现。
  • 多类型字段。
  • 每个字段或整个模型的默认值。
  • 哈希映射模型。它可以代替dynamicmodel使用。
  • 快速动态模型。它可以用来代替dynamicmodel。同样的行为,更好的表现。
  • 可挑选的型号。
  • 日期时间字段可以使用任何日期时间格式(使用解析器和格式化程序函数)。
  • 没有数据库Dependent.
  • 使用脏模型sphinx扩展名的自动文档
  • JSON编码器。
  • 字段访问与字典类似,但使用通配符。
  • 开源(bsd许可证)

更改日志

版本0.11.3

  • 修正铸造管柱负浮子的缺陷。
  • 修复将无效值转换为枚举的异常。
  • 标题 属性添加到字段。
  • 向字段添加了元数据属性。它可以用来储存任何东西。
  • 改进的模型格式化程序。

版本0.11.2

  • 修复错误107。

  • 添加了 ~ dirty\u models.utils.modelIterator类,以便能够在模型字段上迭代。

    fromdirty_models.utilsimportModelIteratorforfieldname,field_obj,valueinModelIterator(my_model):print('Field name: {}'.format(fieldname))print('Field alias: {}'.format(field_obj.alias))print('Field value: {}'.format(value))
  • 关于只读数据的一些修复。

版本0.11.1

  • 分发修复。

版本0.11.0

  • 新字段类型 ~脏模型.fields.bytesfield
  • 字符串到整数转换可以使用python允许的任何格式:hex( 0x23 )、oct( 0o43 )或 无下划线( 1嫀232 ,仅在Python 3.6之后)。

版本0.10.1

  • 工厂<;脏嫒型号。实用程序>; 功能。它允许将工厂定义为 每次实例化模型时要执行的默认值。(第100期)

    fromdirty_models.utilsimportfactoryfromdatetimeimportdatetimeclassModel(BaseModel):field_1=DateTimeField(default=factory(datetime.now))model=Model()print(model.field_1)# 2017-11-02 21:52:46.339040
  • 生成文件修复。

  • python 3.6正式支持。它从第一天起就开始工作,但现在测试在TravisforPython3.6上运行。

版本0.10.0

  • 可选择的列表。
  • 改善泡菜性能。
  • 将"无"设置为"删除内容"字段。
  • 更多测试。
  • 一些代码改进。

版本0.9.2

  • 将时间戳转换为日期时间时修复时区。

版本0.9.1

  • 修复安装。

版本0.9.0

  • 新的枚举字段。
  • 修复setup.py.
  • 确定需求。
  • 修正格式化程序iter。
  • 修复代码。
  • 在主程序包文件中添加了 \u版本
  • 主打包文件、setup.py和docs之间的同步版本。
  • 仅导出修改。

版本0.8.1

  • 已将包含函数的函数添加到模型和列表中。它允许在操作员中使用
  • 将默认时区参数添加到datetimefields和timefields。如果输入的值没有时区 已定义,将设置默认值。
  • 强制时区 参数添加到datetimefields,以便将值转换为特定时区。
  • 更多清理工作。

版本0.8.0

  • 重命名的内部字段。现在他们使用双倍分数格式
  • 如果模型中的两个字段使用相同的别名,则引发运行时错误异常。
  • 修复了默认文档字符串。
  • 清除默认数据。只允许实名字段用作键。
  • 添加了 ~脏模型。模型。基本模型。按路径获取属性 ,以便使用路径获取所有值。
  • 添加了 ~脏模型。模型。基本模型。按路径获取第一个属性 ,以便使用路径获取第一个值。
  • 添加了访问字段的选项,如在字典中,但使用通配符。只为消息灵通的人。 请参见: ~脏模型。模型。基本模型。按路径获取第一属性
  • 添加了一些文档。

版本0.7.2

  • 固定继承结构
  • <广告>ded 获取默认数据 方法到模型,以便检索默认数据。

版本0.7.1

  • 格式化动态模型的问题已解决
  • 向动态模型添加日期、时间和时间增量字段。

版本0.7.0

  • 时间增量字段
  • 通用格式化程序
  • JSON编码器
importjsonfromdatetimeimportdatetimefromdirty_modelsimportBaseModel,DatetimeFieldfromdirty_models.utilsimportJSONEncoderclassExampleModel(BaseModel):field_datetime=DatetimeField(parse_format="%Y-%m-%dT%H:%M:%S")model=ExampleModel(field_datetime=datetime.now())assertjson.dumps(model,cls=JSONEncoder)=='{"field_datetime": "2016-05-30T22:22:22"}'
  • auto camelcase fields元类

版本0.6.3

  • 文档已修复。
  • 允许从根包导入主要成员。

版本0.6.2

  • 改进了日期时间字段解析器和格式化程序定义。现在有三种定义方法:
  • 格式化字符串以同时使用parse和formatter:
classExampleModel(BaseModel):datetime_field=DateTimeField(parse_format='%Y-%m-%dT%H:%M:%SZ')
  • 定义用于分析和格式化日期时间的格式字符串或函数:
classExampleModel(BaseModel):datetime_field=DateTimeField(parse_format={'parser':callable_func,'formatter':'%Y-%m-%dT%H:%M:%SZ'})
  • 使用预定义格式:
DateTimeField.date_parsers={'iso8061':{'formatter':'%Y-%m-%dT%H:%M:%SZ','parser':iso8601.parse_date}}classExampleModel(BaseModel):datetime_field=DateTimeField(parse_format='iso8061')

版本0.6.1

  • 改进的模型字段自动参考。
classExampleModel(BaseModel):model_field=ModelField()# Field with a ExampleModelarray_of_model=ArrayField(field_type=ModelField())# Array of ExampleModels

版本0.6.0

  • 添加字段的默认值。
classExampleModel(BaseModel):integer_field=IntegerField(default=1)model=ExampleModel()assertmodel.integer_fieldis1
  • 在模型级别添加了默认值。继承默认值可以在新模型类上重写。
classInheritExampleModel(ExampleModel):__default_data__={'integer_field':2}model=InheritExampleModel()assertmodel.integer_fieldis2
  • 添加了多类型字段。
fromdirty_models.utilsimportModelIteratorforfieldname,field_obj,valueinModelIterator(my_model):print('Field name: {}'.format(fieldname))print('Field alias: {}'.format(field_obj.alias))print('Field value: {}'.format(value))
0

版本0.5.2

  • 固定模型结构。
  • 生成文件帮助程序。

版本0.5.1

  • 添加了获取模型结构的简单方法。它将被autodoc库用作sphinx或json模式。

版本0.5.0

  • 向arrayfield添加了autolist参数。它允许将单个项分配给列表字段, 因此它将被转换为具有此值的列表。
fromdirty_models.utilsimportModelIteratorforfieldname,field_obj,valueinModelIterator(my_model):print('Field name: {}'.format(fieldname))print('Field alias: {}'.format(field_obj.alias))print('Field value: {}'.format(value))
1

安装

fromdirty_models.utilsimportModelIteratorforfieldname,field_obj,valueinModelIterator(my_model):print('Field name: {}'.format(fieldname))print('Field alias: {}'.format(field_obj.alias))print('Field value: {}'.format(value))
2

问题

  • getter和setter特性需要重构才能用作装饰器。
  • 动态模型太奇怪了。我不相信。尝试使用HashMapModel或FastDynamicModel。

基本用法

fromdirty_models.utilsimportModelIteratorforfieldname,field_obj,valueinModelIterator(my_model):print('Field name: {}'.format(fieldname))print('Field alias: {}'.format(field_obj.alias))print('Field value: {}'.format(value))
3 < div > 注

关于http://dirty-models.readthedocs.io/" rel="nofollow">http://dirty models.readthedocs.io/

的更多示例和文档

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java创建一个数组和一个函数,允许从数组中删除零   java仅为一个函数使用后台   java为什么我看不到Android应用程序的布局?   如何使用Java通过重定向到SAML登录   java从列表中获取连续对   java在spring的构造函数中使用自动连线依赖项   java Libgdx如何设置复选框和文本标签之间的空间   xml-java。util。日期至xmlgoriancalendar   用ddlutils转换数据库的java问题   java我能在main方法中写“public int I=0”吗?   java JPA模拟hibernate的LobCreator?   使用本地变量的单例java安全发布   java videoview未在设备上显示,也未进行xml设计,   spring boot测试如何使用java api将Ldif文件中的默认数据添加到Ldap服务器?   如何在java中获取XML文件中节点的完整路径?   java只使用不同ArrayList中的一个字段搜索具有多个字段的ArrayList