Merge pull request #1145 from pypeclub/feature/anatomy_schema_modifications

Anatomy schema modifications 1st step
This commit is contained in:
Milan Kolar 2021-03-18 17:21:07 +01:00 committed by GitHub
commit 36ef3ec849
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 375 additions and 136 deletions

View file

@ -727,7 +727,7 @@ class Templates:
key_2: "value_2"
key_4: "value_3/value_2"
"""
default_key_values = {}
default_key_values = templates.pop("defaults", {})
for key, value in tuple(templates.items()):
if isinstance(value, dict):
continue
@ -740,6 +740,19 @@ class Templates:
key_values.update(sub_value)
keys_by_subkey[sub_key] = cls.prepare_inner_keys(key_values)
other_templates = templates.get("others") or {}
for sub_key, sub_value in other_templates.items():
if sub_key in keys_by_subkey:
log.warning((
"Key \"{}\" is duplicated in others. Skipping."
).format(sub_key))
continue
key_values = {}
key_values.update(default_key_values)
key_values.update(sub_value)
keys_by_subkey[sub_key] = cls.prepare_inner_keys(key_values)
default_keys_by_subkeys = cls.prepare_inner_keys(default_key_values)
for key, value in default_keys_by_subkeys.items():