From de2aa5474a07f3cd749a079bf254cb0b606abbf4 Mon Sep 17 00:00:00 2001 From: mikemoritz Date: Mon, 15 Dec 2025 12:22:35 -0800 Subject: [PATCH] check for empty pattern prop --- fastjsonschema/draft04.py | 5 ++++- tests/test_pattern_properties.py | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/fastjsonschema/draft04.py b/fastjsonschema/draft04.py index 7581ae1..430f262 100644 --- a/fastjsonschema/draft04.py +++ b/fastjsonschema/draft04.py @@ -530,7 +530,10 @@ def generate_pattern_properties(self): self.create_variable_is_dict() with self.l('if {variable}_is_dict:'): self.create_variable_keys() - for pattern, definition in self._definition['patternProperties'].items(): + pattern_prop_definition = self._definition['patternProperties'] + if pattern_prop_definition == {}: + return + for pattern, definition in pattern_prop_definition.items(): self._compile_regexps[pattern] = re.compile(pattern) with self.l('for {variable}_key, {variable}_val in {variable}.items():'): for pattern, definition in self._definition['patternProperties'].items(): diff --git a/tests/test_pattern_properties.py b/tests/test_pattern_properties.py index 945315b..3c07aff 100644 --- a/tests/test_pattern_properties.py +++ b/tests/test_pattern_properties.py @@ -69,3 +69,10 @@ def test_pattern_with_escape_no_warnings(asserter): '\\w+': {'type': 'object'} } }, value, value) + +def test_empty_pattern(asserter): + value = {} + asserter({ + 'type': 'object', + 'patternProperties': {} + }, value, value)