summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2013-06-14 19:06:24 -0400
committerJulian Berman <Julian@GrayVines.com>2013-06-14 19:06:24 -0400
commitf0bf58c69edad5269bb53b98e3300f152e0d6ab4 (patch)
tree55ffab227bc132d53a855fe344d18f80765154ba
parentb4028556077920a810a945c440cd16bced7abffa (diff)
downloadjsonschema-f0bf58c69edad5269bb53b98e3300f152e0d6ab4.tar.gz
Fix default example.
-rw-r--r--docs/faq.rst26
1 files changed, 17 insertions, 9 deletions
diff --git a/docs/faq.rst b/docs/faq.rst
index dd2523e..6d039b1 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -25,18 +25,26 @@ started:
from jsonschema import Draft4Validator, validators
- def set_defaults(validator, properties, instance, schema):
- Draft4Validator.VALIDATORS["properties"](
- validator, properties, instance, schema,
+ def extend_with_default(validator_class):
+ validate_properties = validator_class.VALIDATORS["properties"]
+
+ def set_defaults(validator, properties, instance, schema):
+ for error in validate_properties(
+ validator, properties, instance, schema,
+ ):
+ yield error
+
+ for property, subschema in properties.iteritems():
+ if "default" in subschema:
+ instance.setdefault(property, subschema["default"])
+
+ return validators.extend(
+ validator_class, {"properties" : set_defaults},
)
- for property, subschema in properties.iteritems():
- if "default" in subschema:
- instance.setdefault(property, subschema["default"])
- DefaultValidatingDraft4Validator = validators.extend(
- Draft4Validator, {"properties" : set_defaults},
- )
+ DefaultValidatingDraft4Validator = extend_with_default(Draft4Validator)
+
See the above-linked document for more info on how this works, but basically,
it just extends the :validator:`properties` validator on a