跳转到主要内容

基于JSON模式与JSON补丁构建的Python对象模型。

项目描述

Warlock 🧙‍♀️

使用JSON模式创建自我验证的Python对象。

PyPI PyPI - Python Version PyPI - Downloads

Build Status Coverage Status GitHub commits since latest release (branch)

Package management: poetry Code Style Black

安装

Warlock可在PyPI上找到

pip install warlock

用法

  1. 创建您的模式

    >>> schema = {
        'name': 'Country',
        'properties': {
            'name': {'type': 'string'},
            'abbreviation': {'type': 'string'},
            'population': {'type': 'integer'},
        },
        'additionalProperties': False,
    }
    
  2. 创建一个模型

    >>> import warlock
    >>> Country = warlock.model_factory(schema)
    
  3. 使用您的模型创建一个对象

    >>> sweden = Country(name='Sweden', abbreviation='SE')
    
  4. 让对象自我验证

    >>> sweden.name = 5
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "warlock/core.py", line 53, in __setattr__
        raise InvalidOperation(msg)
    warlock.core.InvalidOperation: Unable to set 'name' to '5'
    
    >>> sweden.overlord = 'Bears'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "warlock/core.py", line 53, in __setattr__
        raise InvalidOperation(msg)
    warlock.core.InvalidOperation: Unable to set 'overlord' to 'Bears'
    
  5. 生成一个JSON补丁文档以跟踪更改

    >>> sweden.population=9453000
    >>> sweden.patch
    '[{"path": "/population", "value": 9453000, "op": "add"}]'
    

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

warlock-2.0.1.tar.gz (8.3 kB 查看哈希值)

上传时间

构建分发

warlock-2.0.1-py3-none-any.whl (9.8 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页