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
|
# yaml.top_level_colon_align = True
|
||||||
self.main_namespace = normalize_family(self.rougailconfig["main_namespace"])
|
self.main_namespace = normalize_family(self.rougailconfig["main_namespace"])
|
||||||
self.has_default_dictionary_format_version = (
|
self.has_default_structural_format_version = (
|
||||||
self.rougailconfig["default_dictionary_format_version"] is not None
|
self.rougailconfig["default_structural_format_version"] is not None
|
||||||
)
|
)
|
||||||
self.config = Config()
|
self.config = Config()
|
||||||
self.config.profile = "jinja"
|
self.config.profile = "jinja"
|
||||||
|
|
@ -149,7 +149,7 @@ class RougailOutputFormatter:
|
||||||
return self.attributes[type_name]
|
return self.attributes[type_name]
|
||||||
|
|
||||||
def upgrade(self) -> None:
|
def upgrade(self) -> None:
|
||||||
filenames = self.rougailconfig["main_dictionaries"]
|
filenames = self.rougailconfig["main_structural_directories"]
|
||||||
if len(filenames) > 1:
|
if len(filenames) > 1:
|
||||||
raise Exception(_("only one file is allowed"))
|
raise Exception(_("only one file is allowed"))
|
||||||
filename = Path(filenames[0])
|
filename = Path(filenames[0])
|
||||||
|
|
@ -203,7 +203,7 @@ class RougailOutputFormatter:
|
||||||
self.families[self.main_namespace].yaml_value_comment_extend(
|
self.families[self.main_namespace].yaml_value_comment_extend(
|
||||||
self.version_name, [CommentToken("\n\n", CommentMark(0)), None]
|
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]
|
del self.families[self.main_namespace][self.version_name]
|
||||||
|
|
||||||
def parse_family(self, path, obj):
|
def parse_family(self, path, obj):
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ class RougailUpgrade:
|
||||||
format_version = str(root.pop("version"))
|
format_version = str(root.pop("version"))
|
||||||
else:
|
else:
|
||||||
version_name = None
|
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:
|
if format_version not in VERSIONS:
|
||||||
raise Exception(f'version "{format_version}" is not a valid version')
|
raise Exception(f'version "{format_version}" is not a valid version')
|
||||||
search_function_name = get_function_name(format_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:
|
default:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{% for val in __.var %}
|
{% for val in __.var %}
|
||||||
t{{ val }}
|
{% if val is not none %}
|
||||||
|
t{{ val }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
description: add 't' to each var value
|
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)
|
rougailconfig = get_rougail_config(test_dir, namespace)
|
||||||
if not rougailconfig:
|
if not rougailconfig:
|
||||||
return
|
return
|
||||||
dirs = rougailconfig['main_dictionaries']
|
dirs = rougailconfig['main_structural_directories']
|
||||||
for dir_name in dirs:
|
for dir_name in dirs:
|
||||||
for file_name in Path(dir_name).iterdir():
|
for file_name in Path(dir_name).iterdir():
|
||||||
if file_name.suffix in [".yml", ".yaml"]:
|
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)
|
_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)
|
rougailconfig = get_rougail_config(test_dir, namespace)
|
||||||
if not rougailconfig:
|
if not rougailconfig:
|
||||||
return
|
return
|
||||||
for dir_name in rougailconfig['main_dictionaries']:
|
for dir_name in rougailconfig['main_structural_directories']:
|
||||||
for file_name in Path(dir_name).iterdir():
|
for file_name in Path(dir_name).iterdir():
|
||||||
if file_name.suffix in [".yml", ".yaml"]:
|
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)
|
_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
|
rougailconfig["main_namespace"] = namespace
|
||||||
for dir_name in dirs_name:
|
for dir_name in dirs_name:
|
||||||
for file_name in Path(dir_name).iterdir():
|
for file_name in Path(dir_name).iterdir():
|
||||||
if file_name.suffix in [".yml", ".yaml"]:
|
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)
|
_test_structural_files(file_name, namespace, rougailconfig)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -94,11 +94,11 @@ def test_structural_files_formatter_load(test_dir):
|
||||||
config = rougail.run()
|
config = rougail.run()
|
||||||
before_config_dict = dict(config_to_dict(config.value.get()))
|
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"]]
|
rougailconfig['main_structural_directories'] = [str(output_director / Path(dirpath).name) for dirpath in rougailconfig["main_structural_directories"]]
|
||||||
extra_dictionaries = {}
|
extra_namespaces = {}
|
||||||
for ns, dirpaths in rougailconfig['extra_dictionaries'].items():
|
for ns, dirpaths in rougailconfig['extra_namespaces'].items():
|
||||||
extra_dictionaries[ns] = [str(output_director / Path(dirpath).name) for dirpath in dirpaths]
|
extra_namespaces[ns] = [str(output_director / Path(dirpath).name) for dirpath in dirpaths]
|
||||||
rougailconfig['extra_dictionaries'] = extra_dictionaries
|
rougailconfig['extra_namespaces'] = extra_namespaces
|
||||||
rougail = Rougail(rougailconfig)
|
rougail = Rougail(rougailconfig)
|
||||||
config = rougail.run()
|
config = rougail.run()
|
||||||
after_config_dict = dict(config_to_dict(config.value.get()))
|
after_config_dict = dict(config_to_dict(config.value.get()))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue