diff options
author | Harald Nezbeda <hn@nezhar.com> | 2021-07-01 09:04:11 +0200 |
---|---|---|
committer | Harald Nezbeda <hn@nezhar.com> | 2021-07-20 17:08:48 +0200 |
commit | c380b09ea9aeb9eb3a5c8ac92f0245843b113aa7 (patch) | |
tree | 564b7471cdf505ef2a0e9aa7ac15996ad7de0a42 | |
parent | 769478dc39395e16bce1943c691abf5719cf5bb7 (diff) | |
download | jsonschema-c380b09ea9aeb9eb3a5c8ac92f0245843b113aa7.tar.gz |
Julian/jsonschema#782: Refactor items behavior with prefixItems
-rw-r--r-- | jsonschema/_validators.py | 21 |
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 |