warlock 2.0.1
pip install warlock
Latest version
Released:
Python object model built on JSON schema and JSON patch.
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: Apache Software License (Apache-2.0)
- Author: Brian Waldon
- Maintainer: Jan Willhaus
- Tags JSON schema, JSON patch, model validation
- Requires: Python >=3.7, <4.0
Classifiers
- Development Status
- Intended Audience
- License
- Operating System
- Programming Language
- Topic
Project description
Warlock 🧙♀️
Create self-validating Python objects using JSON schema.
Installation
Warlock is available on PyPI:
pip install warlock
Usage
-
Create your schema
>>> schema = { 'name': 'Country', 'properties': { 'name': {'type': 'string'}, 'abbreviation': {'type': 'string'}, 'population': {'type': 'integer'}, }, 'additionalProperties': False, }
-
Create a model
>>> import warlock >>> Country = warlock.model_factory(schema)
-
Create an object using your model
>>> sweden = Country(name='Sweden', abbreviation='SE')
-
Let the object validate itself
>>> 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'
-
Generate a JSON Patch document to track changes
>>> sweden.population=9453000 >>> sweden.patch '[{"path": "/population", "value": 9453000, "op": "add"}]'
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: Apache Software License (Apache-2.0)
- Author: Brian Waldon
- Maintainer: Jan Willhaus
- Tags JSON schema, JSON patch, model validation
- Requires: Python >=3.7, <4.0
Classifiers
- Development Status
- Intended Audience
- License
- Operating System
- Programming Language
- Topic
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file warlock-2.0.1.tar.gz
.
File metadata
- Download URL: warlock-2.0.1.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99abbf9525b2a77f2cde896d3a9f18a5b4590db063db65e08207694d2e0137fc |
|
MD5 | 78aa9050a11f1599d2b2ebb6def6b411 |
|
BLAKE2b-256 | decfba9ac96d09b797c377e2c12c0eb6b19565f3b2a2efb55932d319e319b622 |
File details
Details for the file warlock-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: warlock-2.0.1-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 448df959cec31904f686ac8c6b1dfab80f0cdabce3d303be517dd433eeebf012 |
|
MD5 | efa855b264bc05f429d63208237ac491 |
|
BLAKE2b-256 | a6e1aa7cbdb16396c1d6a734dd22b4436319daa0e4d203218f0b11cb20f37374 |