Skip to content
Snippets Groups Projects

Extend json-schema model parser

Merged Florian Spreckelsen requested to merge f-enhance-json-parser into dev
3 unresolved threads
1 file
+ 19
2
Compare changes
  • Side-by-side
  • Inline
@@ -814,7 +814,7 @@ class JsonSchemaParser(Parser):
if "patternProperties" in elt:
pattern_property_rts = self_treat_pattern_properties(
pattern_property_rts = self._treat_pattern_properties(
elt["patternProperties"], name_prefix=name)
for ppr in pattern_property_rts:
# add reference to pattern property type. These can never be
@@ -875,12 +875,29 @@ class JsonSchemaParser(Parser):
return pp
def _treat_pattern_properties(self, pattern_elements, name_prefix=""):
"""Special Treatment for pattern properties: A RecordType is created for each pattern property."""
"""Special Treatment for pattern properties: A RecordType is created for
each pattern property.
"""
num_patterns = len(pattern_elements)
pattern_prop = self._get_pattern_prop()
returns = []
for ii, (key, element) in enumerate(pattern_elements.items()):
name_suffix = f"_{ii+1}" if num_patterns > 1 else ""
name = name_prefix + "Element" + name_suffix
pattern_type = self._treat_record_type(element, name)
# Add pattern property and description
pattern_type.add_property(pattern_prop)
if pattern_type.description:
pattern_type.description += f"\n\npattern: {key}"
else:
pattern_type.description = f"pattern: {key}"
model[name] = pattern_type
returns.append(pattern_type)
return returns
if __name__ == "__main__":
Loading