一种用于模式强制模型的小语言。

fame的Python项目详细描述


fame是python中的元建模框架。

  • 实体由模型描述
  • 模型由元模型描述
  • 模型具有字段、派生字段和约束
  • 实体可以有自定义字段
  • 即使数据无效,也可以创建实体
  • 有用于验证和获取错误消息的函数
  • 验证检查字段的存在和类型
  • 验证检查所有约束
  • 派生字段已记录

示例

class Experiment(Model):

    @schema
    def metamodel(self, m):
        m.field('name', str)
        m.field('subject', options(
            'user',
            'visitor',
            'email',
            'listing',
            'market'
        ))
        m.field('treatments', array(str))
        m.field('percent_exposed', int, default=100)
        m.field('design', nullable(regexp('^https?')))

    @derived_field
    def is_miscellanous(self):
        return self.subject not in ['user', 'visitor']

    @constraint("expected percent_exposed to not exceed 100, got {}")
    def constraint(self):
        if self.percent_exposed > 100:
            return self.percent_exposed

惯例

  • 首先定义元模型函数
  • 然后定义导出的场函数
  • 然后定义所有约束函数
  • 约束函数都命名为“constraint”,这是有意的

安装

要安装此软件包,请运行

pip install fame

贡献

欢迎在Github上提交错误报告和请求, https://github.com/akuhn/py-fame

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

推荐PyPI第三方库


热门话题
java如何将jasper集成到jhipster项目中   java无法忽略lombok注释   关于tomcat日志的java问题   java@Autowired未设置字段>NullPointerException   GUI提交按钮不工作   java气泡和选择排序   java如何编写规则来匹配两个数组?   java如何找出某个字符在字符串中的第一次、第二次或第三次出现?   java通过字符串引用id   javascript在网络视图中加载在线图表   java保留web应用程序中用户更改的日志   在安卓中尝试使用Mandrill SMTP发送电子邮件时出现java错误   用java语言将a2b4c5等字符串转换为AABBCCCCC的程序是什么?   java无需TODO即可删除所有注释   java JMX MBean在应用程序部署时自动注册   java如何使用JSON解析从任何url解析数据   java@transactional注释类使用代理包装,但未创建事务   JavaFx转换和打印