Python jsonschema.validators.extend() Examples
The following are 18
code examples of jsonschema.validators.extend().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
jsonschema.validators
, or try the search function
.
Example #1
Source File: load_schema.py From pyramid_swagger with BSD 3-Clause "New" or "Revised" License | 6 votes |
def get_body_validator(models): """Returns a validator for the request body, based on a :class:`jsonschema.validators.Draft4Validator`, with extra validations added for swaggers extensions to jsonschema. :param models: a mapping of reference to models :returns: a :class:`jsonschema.validators.Validator` which can validate the request body. """ return validators.extend( Draft4Validator, { 'paramType': ignore, 'name': ignore, 'type': build_swagger_type_validator(models), 'required': required_validator, } )
Example #2
Source File: kafka-monitor.py From openslack-crawler with Apache License 2.0 | 6 votes |
def extend_with_default(self, validator_class): ''' Method to add default fields to our schema validation ( From the docs ) ''' 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}, )
Example #3
Source File: utils.py From watcher with Apache License 2.0 | 6 votes |
def extend_with_strict_schema(validator_class): validate_properties = validator_class.VALIDATORS["properties"] def strict_schema(validator, properties, instance, schema): if instance is None: return for para in instance.keys(): if para not in properties.keys(): raise exception.AuditParameterNotAllowed(parameter=para) for error in validate_properties( validator, properties, instance, schema ): yield error return validators.extend(validator_class, {"properties": strict_schema})
Example #4
Source File: utils.py From watcher with Apache License 2.0 | 6 votes |
def extend_with_default(validator_class): validate_properties = validator_class.VALIDATORS["properties"] def set_defaults(validator, properties, instance, schema): for prop, subschema in properties.items(): if "default" in subschema and instance is not None: instance.setdefault(prop, subschema["default"]) for error in validate_properties( validator, properties, instance, schema ): yield error return validators.extend(validator_class, {"properties": set_defaults}) # Parameter strict check extension as jsonschema doesn't support it
Example #5
Source File: check_tap.py From singer-tools with Apache License 2.0 | 6 votes |
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 prop, subschema in properties.items(): if "format" in subschema: if subschema['format'] == 'date-time' and instance.get(prop) is not None: try: datetime.utcfromtimestamp(rfc3339_to_timestamp(instance[prop])) except Exception: raise Exception('Error parsing property {}, value {}' .format(prop, instance[prop])) return validators.extend(validator_class, {"properties": set_defaults})
Example #6
Source File: kafka_monitor.py From scrapy-cluster with MIT License | 6 votes |
def extend_with_default(self, validator_class): ''' Method to add default fields to our schema validation ( From the docs ) ''' 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 list(properties.items()): if "default" in subschema: instance.setdefault(property, subschema["default"]) return validators.extend( validator_class, {"properties": set_defaults}, )
Example #7
Source File: rest_service.py From scrapy-cluster with MIT License | 6 votes |
def _extend_with_default(self, validator_class): ''' Method to add default fields to our schema validation ( From the docs ) ''' 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 list(properties.items()): if "default" in subschema: instance.setdefault(property, subschema["default"]) return validators.extend( validator_class, {"properties": set_defaults}, )
Example #8
Source File: client.py From pantalaimon with Apache License 2.0 | 5 votes |
def extend_with_default(validator_class): validate_properties = validator_class.VALIDATORS["properties"] def set_defaults(validator, properties, instance, schema): for prop, subschema in properties.items(): if "default" in subschema: instance.setdefault(prop, subschema["default"]) for error in validate_properties(validator, properties, instance, schema): yield error return validators.extend(validator_class, {"properties": set_defaults})
Example #9
Source File: validator.py From cti-stix-validator with BSD 3-Clause "New" or "Revised" License | 5 votes |
def list_json_files(directory, recursive=False): """Return a list of file paths for JSON files within `directory`. Args: directory: A path to a directory. recursive: If ``True``, this function will descend into all subdirectories. Returns: A list of JSON file paths directly under `directory`. """ json_files = [] for top, dirs, files in os.walk(directory): dirs.sort() # Get paths to each file in `files` paths = (os.path.join(top, f) for f in sorted(files)) # Add all the .json files to our return collection json_files.extend(x for x in paths if is_json(x)) if not recursive: break return json_files
Example #10
Source File: validator.py From cti-stix-validator with BSD 3-Clause "New" or "Revised" License | 5 votes |
def get_json_files(files, recursive=False): """Return a list of files to validate from `files`. If a member of `files` is a directory, its children with a ``.json`` extension will be added to the return value. Args: files: A list of file paths and/or directory paths. recursive: If ``true``, this will descend into any subdirectories of input directories. Returns: A list of file paths to validate. """ json_files = [] if not files: return json_files for fn in files: if os.path.isdir(fn): children = list_json_files(fn, recursive) json_files.extend(children) elif is_json(fn): json_files.append(fn) else: continue if not json_files: raise NoJSONFileFoundError("No JSON files found!") return json_files
Example #11
Source File: schema.py From mailur with GNU General Public License v3.0 | 5 votes |
def fill_defaults(validator_class): validate_props = validator_class.VALIDATORS['properties'] def set_defaults(validator, props, instance, schema): for prop, subschema in props.items(): if isinstance(instance, dict) and 'default' in subschema: instance.setdefault(prop, subschema['default']) for error in validate_props(validator, props, instance, schema): yield error return validators.extend(validator_class, {'properties': set_defaults})
Example #12
Source File: validate.py From aiohttp_apiset with Apache License 2.0 | 5 votes |
def _raises(raises): r = [ConvertTo, WithMessages] if isinstance(raises, (list, tuple)): r.extend(raises) else: r.append(raises) return tuple(r)
Example #13
Source File: load_schema.py From pyramid_swagger with BSD 3-Clause "New" or "Revised" License | 5 votes |
def from_schema(cls, schema, resolver, validator_class): type_checker = deepcopy(validator_class.TYPE_CHECKER) type_checker.redefine_many({ type_name: lambda checker, value: all(check(value) for check in checks) for type_name, checks in iteritems(EXTENDED_TYPES) }) extended_validator_class = jsonschema.validators.extend( validator_class, type_checker=type_checker, ) return cls( schema, extended_validator_class(schema, resolver=resolver))
Example #14
Source File: validator.py From boundary-layer with Apache License 2.0 | 5 votes |
def extend_with_default(validator_class): validate_properties = validator_class.VALIDATORS["properties"] def set_defaults(validator, properties, instance, schema): for _property, subschema in six.iteritems(properties): if "default" in subschema: instance.setdefault(_property, subschema["default"]) for error in validate_properties( validator, properties, instance, schema): yield error return validators.extend( validator_class, {"properties": set_defaults}, )
Example #15
Source File: base.py From zeus with Apache License 2.0 | 5 votes |
def extend_with_default(validator_class): validate_properties = validator_class.VALIDATORS["properties"] def set_defaults(validator, properties, instance, schema): for property, subschema in properties.items(): if "default" in subschema: instance.setdefault(property, subschema["default"]) for error in validate_properties(validator, properties, instance, schema): yield error return validators.extend(validator_class, {"properties": set_defaults})
Example #16
Source File: validate.py From aiohttp_apiset with Apache License 2.0 | 5 votes |
def factory(cls, *args, **kwargs): factory = extend(Draft4Validator, dict(required=cls._required)) return factory(*args, format_checker=cls.format_checker, **kwargs)
Example #17
Source File: factories.py From openapi-spec-validator with Apache License 2.0 | 5 votes |
def from_resolver(cls, spec_resolver): """Creates a customized Draft4ExtendedValidator. :param spec_resolver: resolver for the spec :type resolver: :class:`jsonschema.RefResolver` """ spec_validators = cls._get_spec_validators(spec_resolver) return validators.extend(Draft4Validator, spec_validators)
Example #18
Source File: validate.py From timeflux with MIT License | 5 votes |
def extend_with_defaults(validator_class): """Extends the validator class to set defaults automatically.""" validate_properties = validator_class.VALIDATORS["properties"] def set_defaults(validator, properties, instance, schema): for property, subschema in properties.items(): if "default" in subschema: instance.setdefault(property, subschema["default"]) for error in validate_properties(validator, properties, instance, schema,): yield error return validators.extend(validator_class, {"properties": set_defaults},)