一个用于python对象的通用声明性语法工具包,它使用自身来定义自身。真的?
marrow.schema的Python项目详细描述
<H2>1。什么是骨髓模式?
marwschema是一个小型的、经过充分测试的、3.3+兼容的声明性语法工具包。这基本上意味着你用 高级对象定义其他高级对象数据结构。简言之:你永远不用写一门课 只重新分配实例变量的构造函数。
使用示例包括:
- 带有预定义"插槽"的属性访问字典。
- 用于数据库访问的ORM或ODM的对象映射器方面。一个例子是 marw mongo
- 声明性模式驱动的序列化系统。
- marw接口 ,任意python的声明性模式验证 对象的目的类似于zope.interface或python自己的抽象基类。
- 骨髓小部件 是以声明方式定义的,允许更灵活的方式 以及合作子类化。
- 使用包含的框架进行强大的数据验证和转换。
1.1目标
创建骨髓模式的目的是提取几乎所有数据库orm、odm、widget都通用的组件。 将系统、表单验证库、结构化序列化格式或其他基于架构的工具转换为公共共享 图书馆让所有人受益。虽然一些基本原则(数据描述符等)相对简单,但很少 实现是真正完整的。通常,您将无法访问标准的python习惯用法,例如 带有类构造函数或pythonic异常的位置参数。
通过一个经过验证的通用实现,我们很快发现这种可能性并不局限于典型的用途。 一个使用骨髓模式的商业项目这样做是为了以声明的方式定义通用crud 控制器 缩短开发时间并鼓励WORM(一次写入,多次读取)最佳实践。
骨髓模式的另一个目的是有一个非常狭窄的范围和"吃自己的狗粮",使用一个声明性的语法。 定义声明性语法。这与其他选择(如 利用多个元类和魔法属性的hodge podge 在内部。或者 guts ,这与它的xml和yaml数据处理紧密相关 能力。它们都不支持位置实例化,并且都可以作为 骨髓模式的轻量级超集。