summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Nezbeda <hn@nezhar.com>2021-07-01 09:04:11 +0200
committerHarald Nezbeda <hn@nezhar.com>2021-07-20 17:08:48 +0200
commitc380b09ea9aeb9eb3a5c8ac92f0245843b113aa7 (patch)
tree564b7471cdf505ef2a0e9aa7ac15996ad7de0a42
parent769478dc39395e16bce1943c691abf5719cf5bb7 (diff)
downloadjsonschema-c380b09ea9aeb9eb3a5c8ac92f0245843b113aa7.tar.gz
Julian/jsonschema#782: Refactor items behavior with prefixItems
-rw-r--r--jsonschema/_validators.py21
1 files changed, 3 insertions, 18 deletions
diff --git a/jsonschema/_validators.py b/jsonschema/_validators.py
index c2c136f..7acd178 100644
--- a/jsonschema/_validators.py
+++ b/jsonschema/_validators.py
@@ -79,26 +79,11 @@ def items(validator, items, instance, schema):
yield ValidationError(
"%r has more items than defined in prefixItems" % instance
)
- else:
- for error in validator.descend(
- instance,
- {'prefixItems': schema['prefixItems']},
- path='items__prefixItems',
- ):
- yield error
else:
- if 'prefixItems' in schema:
- for error in validator.descend(
- instance,
- {'prefixItems': schema['prefixItems']},
- path='items__prefixItems',
- ):
- yield error
-
- # Remove evaluated prefixItems indexes
- del instance[0:len(schema['prefixItems'])]
+ non_prefixed_items = instance[len(schema['prefixItems']):] \
+ if 'prefixItems' in schema else instance
- for index, item in enumerate(instance):
+ for index, item in enumerate(non_prefixed_items):
for error in validator.descend(item, items, path=index):
yield error