diff options
author | Julian Berman <Julian@GrayVines.com> | 2013-06-14 19:06:24 -0400 |
---|---|---|
committer | Julian Berman <Julian@GrayVines.com> | 2013-06-14 19:06:24 -0400 |
commit | f0bf58c69edad5269bb53b98e3300f152e0d6ab4 (patch) | |
tree | 55ffab227bc132d53a855fe344d18f80765154ba /docs/faq.rst | |
parent | b4028556077920a810a945c440cd16bced7abffa (diff) | |
download | jsonschema-f0bf58c69edad5269bb53b98e3300f152e0d6ab4.tar.gz |
Fix default example.
Diffstat (limited to 'docs/faq.rst')
-rw-r--r-- | docs/faq.rst | 26 |
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 |