summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2013-01-31 07:24:00 -0800
committerBrian Waldon <bcwaldon@gmail.com>2013-01-31 07:45:33 -0800
commit6d13c02ad48e0d2f7a095f040228757208452259 (patch)
tree6f1cd856556f18c5d4589c6e29457e36dbdd8496
parentc55fca16a5980562ee226238c6fd45f1149c83c6 (diff)
downloadwarlock-6d13c02ad48e0d2f7a095f040228757208452259.tar.gz
Update README with JSON Patch example
Also, replace the remaining tabs with spaces.
-rw-r--r--README.md43
1 files changed, 23 insertions, 20 deletions
diff --git a/README.md b/README.md
index 457aaa6..aee4945 100644
--- a/README.md
+++ b/README.md
@@ -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"}]'