stuct和destructure复杂类

zerial的Python项目详细描述


https://badge.fury.io/py/zerial.pnghttps://travis-ci.org/jriddy/zerial.png?branch=master

Zerial是一个序列化工具,它允许您的模型类成为 Zingle Zource of Truth™为您的项目。让你的模特课 无论是什么形式或使用他们需要的任何集合类型,只需使用元数据 定义如何序列化该文本。支持变型记录 类型,您甚至可以随时间发展数据模型,甚至创建 版本化模型(如果需要)。

Zerial构建在优秀的attrs库之上,它使类 在python中创建和定义非常简单而且非常明显。这个图书馆 添加复杂对象的并行递归序列化和反序列化 数据类。

泽里尔受到启发是因为在需要的空间中有复杂的应用 很难预先定义对数据建模的独特方法。一个 解决方案必须足够灵活,以适应日益增长的变化。 理解潜在的问题领域,同时足够严谨 将这些更改封装到数据模块中。外部模式,如orm或 JSON模式既不灵活,又局限于特定的数据。 您可能希望或不希望实际使用的Exchange格式(SQL和JSON)。 隐式模式虽然足够灵活,但最终失败是因为它们 打破关注点的分离,需要接触数据的每一位代码 了解如何创建验证模型版本的整个历史记录 对于该数据类型。

此项目旨在允许组件以如下方式构造其数据 方便人们与代码交互,前提是 解构为简单类型。丰富的attrs支持 默认值和值工厂以及Zerial对变量记录的支持,您可以 随着时间的推移,在不破坏客户机代码或存储 序列化数据。

功能

  • 模型类的结构和解构
  • 支持丰富的类型,不需要运行时依赖于 typingmodule,它的运行时行为非常不一致
  • 模型字段可以是简单类型或其他模型类
  • 集合类型可以表示为任何类型的python对象,只要 您可以使用字符串键将其转换为列表或dict。
  • 变量记录允许接受多种类型数据的字段,允许 可扩展性。具有默认类型的变量允许在任何 开发点(甚至允许versioned数据模型)。

待办事项/路线图

  1. 对numpy数组的可选本机支持
  2. 从记录类导出模式定义格式
  3. 用于解构/重构失败的调试工具
  4. 包装attr.sattr.ib以使定义模型更干净
  5. 更好的自动化检查和测试工具,用于序列化
  6. 更广泛的文档

文档

完整的文档位于http://zerial.rtfd.org

历史记录

0.1.0(2018-10-21)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
内部嵌套滚动视图的java Recyclerview?   返回空值的java MapPartitionFunction   java无法访问apache模块源代码中的系统定义的环境变量   java需要帮助确定用户输入的最大值和最小值   java检查文件是否存在,如果存在,则创建一个编号更高的新文件   针对许多不正确XML文档的XSD的XML验证在Java中不报告任何错误?   java有没有一种方法可以将json字符串甚至JSONObject发送给POSTMAN,而不在每个双引号前加斜杠?   java如何获得频域中两个音频信号的比率?   java 安卓 studio理解错误   java插入到部分填充的数组中   java使用流<String>创建流<CustomType>?   java开放式按键应用程序   java获取zxing生成的图像路径   使用shibboleth sso的java授权   java在运行时更改bean类名   javajooq如何从表中选择min'id'   java通过Eclipse web项目运行hadoop mapreduce字数   java同步方法与非同步方法同时执行   方法每次返回一个不同的加密字符数组   java获取ArrayList的每个元素中出现的特定字符的频率<String>