一个用于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数据处理紧密相关 能力。它们都不支持位置实例化,并且都可以作为 骨髓模式的轻量级超集。

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

推荐PyPI第三方库


热门话题
java如何在Spring Boot中编辑查询?   Java中实例方法同步的等价代码   JavaJSF2属性不反映ajax操作后的更改   java如何向对象添加值   java通过本地网络传输实时数据   java mongodbenterprise 3.2.11版async insertMany因“未经imvisiondb授权执行命令”而失败   特定Java通用数组创建   java在不下载的情况下读取远程csv文件   获取给定Java中JSON路径/JSON指针的JSON文件的行号   java找不到数组   其中一个实体具有复合键的关联表的java JPA映射   javaFX的JavaAPNG支持   java GWT devmode外部服务器类加载器地狱(艰难)   使用扫描仪。在java小程序中   在安卓 webview java上使用javascript