def properties_draft3(validator, properties, instance, schema): if not validator.is_type(instance, "object"): return if validator._serialize: validated_instance = validator._validated[-1] for property, subschema in iteritems(properties): if property in instance: if validator._serialize: lv = len(validator._validated) for error in validator.descend( instance[property], subschema, path=property, schema_path=property, ): yield error if validator._serialize: validated_instance[property] = validator._validated[lv] del validator._validated[lv:] else: if validator._serialize: if "default" in subschema: validated_instance[property] = deepcopy(subschema["default"]) if "serverDefault" in subschema: default = validator.server_default(instance, subschema) if default is not NO_DEFAULT: validated_instance[property] = default if subschema.get("required", False): error = ValidationError("%r is a required property" % property) error._set( validator="required", validator_value=subschema["required"], instance=instance, schema=schema, ) error.path.appendleft(property) error.schema_path.extend([property, "required"]) yield error
def properties_draft3(validator, properties, instance, schema): if not validator.is_type(instance, "object"): return for property, subschema in iteritems(properties): if property in instance: for error in validator.descend( instance[property], subschema, path=property, schema_path=property, ): yield error elif subschema.get("required", False): error = ValidationError("%r is a required property" % property) error._set( validator="required", validator_value=subschema["required"], instance=instance, schema=schema, ) error.path.appendleft(property) error.schema_path.extend([property, "required"]) yield error