fix: dictionary => structure
This commit is contained in:
parent
368f7c2882
commit
264e8f7000
5 changed files with 43 additions and 17 deletions
|
|
@ -107,8 +107,8 @@ class RougailOutputFormatter:
|
|||
)
|
||||
# yaml.top_level_colon_align = True
|
||||
self.main_namespace = normalize_family(self.rougailconfig["main_namespace"])
|
||||
self.has_default_dictionary_format_version = (
|
||||
self.rougailconfig["default_dictionary_format_version"] is not None
|
||||
self.has_default_structural_format_version = (
|
||||
self.rougailconfig["default_structural_format_version"] is not None
|
||||
)
|
||||
self.config = Config()
|
||||
self.config.profile = "jinja"
|
||||
|
|
@ -149,7 +149,7 @@ class RougailOutputFormatter:
|
|||
return self.attributes[type_name]
|
||||
|
||||
def upgrade(self) -> None:
|
||||
filenames = self.rougailconfig["main_dictionaries"]
|
||||
filenames = self.rougailconfig["main_structural_directories"]
|
||||
if len(filenames) > 1:
|
||||
raise Exception(_("only one file is allowed"))
|
||||
filename = Path(filenames[0])
|
||||
|
|
@ -203,7 +203,7 @@ class RougailOutputFormatter:
|
|||
self.families[self.main_namespace].yaml_value_comment_extend(
|
||||
self.version_name, [CommentToken("\n\n", CommentMark(0)), None]
|
||||
)
|
||||
if self.has_default_dictionary_format_version:
|
||||
if self.has_default_structural_format_version:
|
||||
del self.families[self.main_namespace][self.version_name]
|
||||
|
||||
def parse_family(self, path, obj):
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class RougailUpgrade:
|
|||
format_version = str(root.pop("version"))
|
||||
else:
|
||||
version_name = None
|
||||
format_version = self.rougailconfig["default_dictionary_format_version"]
|
||||
format_version = self.rougailconfig["default_structural_format_version"]
|
||||
if format_version not in VERSIONS:
|
||||
raise Exception(f'version "{format_version}" is not a valid version')
|
||||
search_function_name = get_function_name(format_version)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
leadership:
|
||||
description: a leadership
|
||||
type: leadership
|
||||
|
||||
leader: # aleader
|
||||
- a
|
||||
- b
|
||||
|
||||
follower:
|
||||
description: a follower
|
||||
default: value
|
||||
disabled:
|
||||
jinja: |-
|
||||
{% if not index %}
|
||||
the first follower
|
||||
{% endif %}
|
||||
params:
|
||||
index:
|
||||
type: index
|
||||
...
|
||||
|
|
@ -21,7 +21,9 @@ dyn{{ identifier }}:
|
|||
default:
|
||||
jinja: |-
|
||||
{% for val in __.var %}
|
||||
t{{ val }}
|
||||
{% if val is not none %}
|
||||
t{{ val }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
description: add 't' to each var value
|
||||
|
||||
|
|
|
|||
|
|
@ -55,11 +55,11 @@ def test_structural_files_formatter(test_dir):
|
|||
rougailconfig = get_rougail_config(test_dir, namespace)
|
||||
if not rougailconfig:
|
||||
return
|
||||
dirs = rougailconfig['main_dictionaries']
|
||||
dirs = rougailconfig['main_structural_directories']
|
||||
for dir_name in dirs:
|
||||
for file_name in Path(dir_name).iterdir():
|
||||
if file_name.suffix in [".yml", ".yaml"]:
|
||||
rougailconfig["main_dictionaries"] = [str(file_name)]
|
||||
rougailconfig["main_structural_directories"] = [str(file_name)]
|
||||
_test_structural_files(file_name, namespace, rougailconfig)
|
||||
|
||||
|
||||
|
|
@ -68,17 +68,17 @@ def test_structural_files_formatter_namespace(test_dir):
|
|||
rougailconfig = get_rougail_config(test_dir, namespace)
|
||||
if not rougailconfig:
|
||||
return
|
||||
for dir_name in rougailconfig['main_dictionaries']:
|
||||
for dir_name in rougailconfig['main_structural_directories']:
|
||||
for file_name in Path(dir_name).iterdir():
|
||||
if file_name.suffix in [".yml", ".yaml"]:
|
||||
rougailconfig["main_dictionaries"] = [str(file_name)]
|
||||
rougailconfig["main_structural_directories"] = [str(file_name)]
|
||||
_test_structural_files(file_name, namespace, rougailconfig)
|
||||
for namespace, dirs_name in rougailconfig['extra_dictionaries'].items():
|
||||
for namespace, dirs_name in rougailconfig['extra_namespaces'].items():
|
||||
rougailconfig["main_namespace"] = namespace
|
||||
for dir_name in dirs_name:
|
||||
for file_name in Path(dir_name).iterdir():
|
||||
if file_name.suffix in [".yml", ".yaml"]:
|
||||
rougailconfig["main_dictionaries"] = [str(file_name)]
|
||||
rougailconfig["main_structural_directories"] = [str(file_name)]
|
||||
_test_structural_files(file_name, namespace, rougailconfig)
|
||||
|
||||
|
||||
|
|
@ -94,11 +94,11 @@ def test_structural_files_formatter_load(test_dir):
|
|||
config = rougail.run()
|
||||
before_config_dict = dict(config_to_dict(config.value.get()))
|
||||
#
|
||||
rougailconfig['main_dictionaries'] = [str(output_director / Path(dirpath).name) for dirpath in rougailconfig["main_dictionaries"]]
|
||||
extra_dictionaries = {}
|
||||
for ns, dirpaths in rougailconfig['extra_dictionaries'].items():
|
||||
extra_dictionaries[ns] = [str(output_director / Path(dirpath).name) for dirpath in dirpaths]
|
||||
rougailconfig['extra_dictionaries'] = extra_dictionaries
|
||||
rougailconfig['main_structural_directories'] = [str(output_director / Path(dirpath).name) for dirpath in rougailconfig["main_structural_directories"]]
|
||||
extra_namespaces = {}
|
||||
for ns, dirpaths in rougailconfig['extra_namespaces'].items():
|
||||
extra_namespaces[ns] = [str(output_director / Path(dirpath).name) for dirpath in dirpaths]
|
||||
rougailconfig['extra_namespaces'] = extra_namespaces
|
||||
rougail = Rougail(rougailconfig)
|
||||
config = rougail.run()
|
||||
after_config_dict = dict(config_to_dict(config.value.get()))
|
||||
|
|
|
|||
Loading…
Reference in a new issue