def validate_type(validator, types, instance, schema): if instance is None and (schema.get('x-nullable') is True or schema.get('nullable')): return types = _utils.ensure_list(types) if not any(validator.is_type(instance, type) for type in types): yield ValidationError(_utils.types_msg(instance, types))
def type_draft4(validator, types, instance, schema): types = _utils.ensure_list(types) # NOTE(kiall): A datetime object is not a string, but is still valid. if ('format' in schema and schema['format'] == 'date-time' and isinstance(instance, datetime.datetime)): return if not any(validator.is_type(instance, type) for type in types): yield jsonschema.ValidationError(_utils.types_msg(instance, types))
def _type_except_objectid(self, validator, types, instance, schema): """ Had to override the internal type checker to avoid it stopping at ObjectId. There is no other way for ObjectIds to be set in JSON data except for here. """ types = _utils.ensure_list(types) if not any(validator.is_type(instance, _type) for _type in types): if not isinstance(instance, ObjectId): yield ValidationError(_utils.types_msg(instance, types))
def dependencies(validator, dependencies, instance, schema): if not validator.is_type(instance, "object"): return for property, dependency in iteritems(dependencies): if property not in instance: continue if validator.is_type(dependency, "object"): for error in validator.descend(instance, dependency, schema_path=property): yield error else: dependencies = _utils.ensure_list(dependency) for dependency in dependencies: if dependency not in instance: yield ValidationError("%r is a dependency of %r" % (dependency, property))
def type_draft3(validator, types, instance, schema): types = _utils.ensure_list(types) all_errors = [] for index, type in enumerate(types): if validator.is_type(type, "object"): errors = list(validator.descend(instance, type, schema_path=index)) if not errors: return all_errors.extend(errors) else: if validator.is_type(instance, type): return else: yield ValidationError( _utils.types_msg(instance, types), context=all_errors, )
def type_draft3(validator, types, instance, schema): types = _utils.ensure_list(types) # NOTE(kiall): A datetime object is not a string, but is still valid. if ('format' in schema and schema['format'] == 'date-time' and isinstance(instance, datetime.datetime)): return all_errors = [] for index, type in enumerate(types): if type == "any": return if validator.is_type(type, "object"): errors = list(validator.descend(instance, type, schema_path=index)) if not errors: return all_errors.extend(errors) else: if validator.is_type(instance, type): return else: yield jsonschema.ValidationError( _utils.types_msg(instance, types), context=all_errors, )
def type_draft4(validator, types, instance, schema): types = _utils.ensure_list(types) if not any(validator.is_type(instance, type) for type in types): yield ValidationError(_utils.types_msg(instance, types))
def disallow_draft3(validator, disallow, instance, schema): for disallowed in _utils.ensure_list(disallow): if validator.is_valid(instance, {"type" : [disallowed]}): yield ValidationError( "%r is disallowed for %r" % (disallowed, instance) )
def disallow_draft3(validator, disallow, instance, schema): for disallowed in _utils.ensure_list(disallow): if validator.is_valid(instance, {"type": [disallowed]}): yield ValidationError( "tag-msg_dataCheck_value_listBlock.%r is disallowed for tagPara :%r," % (disallowed, instance) )
def disallow_draft3(validator, disallow, instance, schema): for disallowed in _utils.ensure_list(disallow): if validator.is_valid(instance, {"type": [disallowed]}): yield ValidationError("%r is disallowed for %r" % (disallowed, instance))
def type(validator, types, instance, schema): types = _utils.ensure_list(types) if not any(validator.is_type(instance, type) for type in types): nschema = schema.copy() nschema['msg'] = types_msg(instance, types) yield ValidationError(nschema, type='type')
def type(validator, types, instance, schema): types = ensure_list(types) if not any(validator.is_type(instance, type) for type in types): reprs = ", ".join(repr(type) for type in types) yield ValidationError(f"{instance!r} is not of type {reprs}")