diff options
author | Brian Waldon <bcwaldon@gmail.com> | 2013-01-31 07:24:00 -0800 |
---|---|---|
committer | Brian Waldon <bcwaldon@gmail.com> | 2013-01-31 07:45:33 -0800 |
commit | 6d13c02ad48e0d2f7a095f040228757208452259 (patch) | |
tree | 6f1cd856556f18c5d4589c6e29457e36dbdd8496 | |
parent | c55fca16a5980562ee226238c6fd45f1149c83c6 (diff) | |
download | warlock-6d13c02ad48e0d2f7a095f040228757208452259.tar.gz |
Update README with JSON Patch example
Also, replace the remaining tabs with spaces.
-rw-r--r-- | README.md | 43 |
1 files changed, 23 insertions, 20 deletions
@@ -1,43 +1,46 @@ -# Warlock! +# Warlock -## Wat +Build self-validating python objects using JSON schemas. -Build self-validating python objects using JSON schemas +1) Create your schema -## How - -1) Build your schema - - >>> schema = { - 'name': 'Country', - 'properties': { - 'name': {'type': 'string'}, - 'abbreviation': {'type': 'string'}, - }, - 'additionalProperties': False, - } + >>> schema = { + 'name': 'Country', + 'properties': { + 'name': {'type': 'string'}, + 'abbreviation': {'type': 'string'}, + 'population': {'type': 'integer'}, + }, + 'additionalProperties': False, + } 2) Create a model >>> import warlock - >>> Country = warlock.model_factory(schema) + >>> Country = warlock.model_factory(schema) 3) Create an object using your model - >>> sweden = Country(name='Sweden', abbreviation='SE') + >>> sweden = Country(name='Sweden', abbreviation='SE') -4) Let the object validate itself! +4) Let the object validate itself >>> sweden.name = 5 Traceback (most recent call last): - File "<stdin>", line 1, in <module> + 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 "<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) Generate a [JSON Patch document](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch) to track changes + + >>> sweden.population=9453000 + >>> sweden.patch + '[{"path": "/population", "value": 9453000, "op": "add"}]' |