stuct和destructure复杂类
zerial的Python项目详细描述
Zerial是一个序列化工具,它允许您的模型类成为 Zingle Zource of Truth™为您的项目。让你的模特课 无论是什么形式或使用他们需要的任何集合类型,只需使用元数据 定义如何序列化该文本。支持变型记录 类型,您甚至可以随时间发展数据模型,甚至创建 版本化模型(如果需要)。
Zerial构建在优秀的attrs库之上,它使类 在python中创建和定义非常简单而且非常明显。这个图书馆 添加复杂对象的并行递归序列化和反序列化 数据类。
泽里尔受到启发是因为在需要的空间中有复杂的应用 很难预先定义对数据建模的独特方法。一个 解决方案必须足够灵活,以适应日益增长的变化。 理解潜在的问题领域,同时足够严谨 将这些更改封装到数据模块中。外部模式,如orm或 JSON模式既不灵活,又局限于特定的数据。 您可能希望或不希望实际使用的Exchange格式(SQL和JSON)。 隐式模式虽然足够灵活,但最终失败是因为它们 打破关注点的分离,需要接触数据的每一位代码 了解如何创建验证模型版本的整个历史记录 对于该数据类型。
此项目旨在允许组件以如下方式构造其数据 方便人们与代码交互,前提是 解构为简单类型。丰富的attrs支持 默认值和值工厂以及Zerial对变量记录的支持,您可以 随着时间的推移,在不破坏客户机代码或存储 序列化数据。
功能
- 模型类的结构和解构
- 支持丰富的类型,不需要运行时依赖于 typingmodule,它的运行时行为非常不一致
- 模型字段可以是简单类型或其他模型类
- 集合类型可以表示为任何类型的python对象,只要 您可以使用字符串键将其转换为列表或dict。
- 变量记录允许接受多种类型数据的字段,允许 可扩展性。具有默认类型的变量允许在任何 开发点(甚至允许versioned数据模型)。
待办事项/路线图
- 对numpy数组的可选本机支持
- 从记录类导出模式定义格式
- 用于解构/重构失败的调试工具
- 包装attr.s和attr.ib以使定义模型更干净
- 更好的自动化检查和测试工具,用于序列化
- 更广泛的文档
文档
完整的文档位于http://zerial.rtfd.org。
历史记录
0.1.0(2018-10-21)
- pypi上的第一个版本。