Skip to content

Commit bb3dd0b

Browse files
committed
items
1 parent bd448b6 commit bb3dd0b

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

jsonschema/_validators.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,31 @@ def additionalProperties(validator, aP, instance, schema):
4646
yield ValidationError(error % _utils.extras_msg(extras))
4747

4848

49+
def items_draft3_draft4(validator, items, instance, schema):
50+
if not validator.is_type(instance, "array"):
51+
return
52+
53+
if validator.is_type(items, "object"):
54+
for index, item in enumerate(instance):
55+
for error in validator.descend(item, items, path=index):
56+
yield error
57+
else:
58+
for (index, item), subschema in zip(enumerate(instance), items):
59+
for error in validator.descend(
60+
item, subschema, path=index, schema_path=index,
61+
):
62+
yield error
63+
64+
4965
def items(validator, items, instance, schema):
5066
if not validator.is_type(instance, "array"):
5167
return
5268

69+
if items is True:
70+
items = {}
71+
elif items is False:
72+
items = {"not": {}}
73+
5374
if validator.is_type(items, "object"):
5475
for index, item in enumerate(instance):
5576
for error in validator.descend(item, items, path=index):

jsonschema/validators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def extend(validator, validators, version=None):
193193
u"enum": _validators.enum,
194194
u"extends": _validators.extends_draft3,
195195
u"format": _validators.format,
196-
u"items": _validators.items,
196+
u"items": _validators.items_draft3_draft4,
197197
u"maxItems": _validators.maxItems,
198198
u"maxLength": _validators.maxLength,
199199
u"maximum": _validators.maximum_draft3_draft4,
@@ -221,7 +221,7 @@ def extend(validator, validators, version=None):
221221
u"dependencies": _validators.dependencies,
222222
u"enum": _validators.enum,
223223
u"format": _validators.format,
224-
u"items": _validators.items,
224+
u"items": _validators.items_draft3_draft4,
225225
u"maxItems": _validators.maxItems,
226226
u"maxLength": _validators.maxLength,
227227
u"maxProperties": _validators.maxProperties_draft4,

0 commit comments

Comments
 (0)