feat: undocumented_modes is now a variable
This commit is contained in:
parent
c064f6519d
commit
a2f5749d12
3 changed files with 50 additions and 26 deletions
|
|
@ -35,8 +35,8 @@ from .__version__ import __version__
|
||||||
|
|
||||||
class RougailOutputConsole:
|
class RougailOutputConsole:
|
||||||
variable_hidden_color = "orange1"
|
variable_hidden_color = "orange1"
|
||||||
variable_advanced_color = "bright_blue"
|
variable_undocumented_color = "bright_blue"
|
||||||
variable_advanced_and_modified_color = "red1"
|
variable_undocumented_and_modified_color = "red1"
|
||||||
value_unmodified_color = "gold1"
|
value_unmodified_color = "gold1"
|
||||||
value_default_color = "green"
|
value_default_color = "green"
|
||||||
|
|
||||||
|
|
@ -54,7 +54,6 @@ class RougailOutputConsole:
|
||||||
) -> None:
|
) -> None:
|
||||||
if rougailconfig is None:
|
if rougailconfig is None:
|
||||||
from rougail import RougailConfig
|
from rougail import RougailConfig
|
||||||
|
|
||||||
rougailconfig = RougailConfig
|
rougailconfig = RougailConfig
|
||||||
self.rougailconfig = rougailconfig
|
self.rougailconfig = rougailconfig
|
||||||
self.config = config
|
self.config = config
|
||||||
|
|
@ -64,10 +63,14 @@ class RougailOutputConsole:
|
||||||
self.is_mandatory = self.rougailconfig["console.mandatory"]
|
self.is_mandatory = self.rougailconfig["console.mandatory"]
|
||||||
self.show_secrets = self.rougailconfig["console.show_secrets"]
|
self.show_secrets = self.rougailconfig["console.show_secrets"]
|
||||||
self.key_is_description = self.rougailconfig["console.key_is_description"]
|
self.key_is_description = self.rougailconfig["console.key_is_description"]
|
||||||
|
try:
|
||||||
|
self.undocumented_modes = set(self.rougailconfig["console.undocumented_modes"])
|
||||||
|
except Exception:
|
||||||
|
self.undocumented_modes = set()
|
||||||
self.variable_default_enable = False
|
self.variable_default_enable = False
|
||||||
self.variable_hidden_enable = False
|
self.variable_hidden_enable = False
|
||||||
self.variable_advanced_enable = False
|
self.variable_undocumented_enable = False
|
||||||
self.variable_advanced_and_modified_enable = False
|
self.variable_undocumented_and_modified_enable = False
|
||||||
self.value_modified_enable = False
|
self.value_modified_enable = False
|
||||||
self.value_unmodified_enable = False
|
self.value_unmodified_enable = False
|
||||||
self.value_default_enable = False
|
self.value_default_enable = False
|
||||||
|
|
@ -139,7 +142,8 @@ class RougailOutputConsole:
|
||||||
if self.is_mandatory:
|
if self.is_mandatory:
|
||||||
ori_properties = self.config.property.exportation()
|
ori_properties = self.config.property.exportation()
|
||||||
self.config.property.read_write()
|
self.config.property.read_write()
|
||||||
self.mandatory()
|
if not self.user_data_errors and not self.errors:
|
||||||
|
self.mandatory()
|
||||||
self.config.property.importation(ori_properties)
|
self.config.property.importation(ori_properties)
|
||||||
warnings = self.user_data_warnings + self.warnings
|
warnings = self.user_data_warnings + self.warnings
|
||||||
if warnings:
|
if warnings:
|
||||||
|
|
@ -218,10 +222,10 @@ class RougailOutputConsole:
|
||||||
caption_line = ""
|
caption_line = ""
|
||||||
if self.variable_default_enable:
|
if self.variable_default_enable:
|
||||||
caption_line += _("Variable") + "\n"
|
caption_line += _("Variable") + "\n"
|
||||||
if self.variable_advanced_enable:
|
if self.variable_undocumented_enable:
|
||||||
caption_line += f'[{self.variable_advanced_color}]{_("Undocumented variable")}[/{self.variable_advanced_color}]\n'
|
caption_line += f'[{self.variable_undocumented_color}]{_("Undocumented variable")}[/{self.variable_undocumented_color}]\n'
|
||||||
if self.variable_advanced_and_modified_enable:
|
if self.variable_undocumented_and_modified_enable:
|
||||||
caption_line += f'[{self.variable_advanced_and_modified_color}]{_("Undocumented but modified variable")}[/{self.variable_advanced_and_modified_color}]\n'
|
caption_line += f'[{self.variable_undocumented_and_modified_color}]{_("Undocumented but modified variable")}[/{self.variable_undocumented_and_modified_color}]\n'
|
||||||
if self.variable_hidden_enable:
|
if self.variable_hidden_enable:
|
||||||
caption_line += f'[{self.variable_hidden_color}]{_("Unmodifiable variable")}[/{self.variable_hidden_color}]\n'
|
caption_line += f'[{self.variable_hidden_color}]{_("Unmodifiable variable")}[/{self.variable_hidden_color}]\n'
|
||||||
header_value = ""
|
header_value = ""
|
||||||
|
|
@ -304,6 +308,7 @@ class RougailOutputConsole:
|
||||||
self,
|
self,
|
||||||
yaml,
|
yaml,
|
||||||
self.key_is_description,
|
self.key_is_description,
|
||||||
|
self.undocumented_modes,
|
||||||
no_icon=True,
|
no_icon=True,
|
||||||
)
|
)
|
||||||
return self.output
|
return self.output
|
||||||
|
|
@ -320,6 +325,7 @@ class OutputFamily:
|
||||||
root,
|
root,
|
||||||
_yaml,
|
_yaml,
|
||||||
key_is_description,
|
key_is_description,
|
||||||
|
undocumented_modes,
|
||||||
*,
|
*,
|
||||||
is_leader: bool = False,
|
is_leader: bool = False,
|
||||||
no_icon: bool = False,
|
no_icon: bool = False,
|
||||||
|
|
@ -346,6 +352,7 @@ class OutputFamily:
|
||||||
self.root = root
|
self.root = root
|
||||||
self._yaml = _yaml
|
self._yaml = _yaml
|
||||||
self.key_is_description = key_is_description
|
self.key_is_description = key_is_description
|
||||||
|
self.undocumented_modes = undocumented_modes
|
||||||
|
|
||||||
def add_family(
|
def add_family(
|
||||||
self,
|
self,
|
||||||
|
|
@ -355,9 +362,9 @@ class OutputFamily:
|
||||||
if "hidden" in properties:
|
if "hidden" in properties:
|
||||||
self.root.variable_hidden_enable = True
|
self.root.variable_hidden_enable = True
|
||||||
color = self.root.variable_hidden_color
|
color = self.root.variable_hidden_color
|
||||||
elif "advanced" in properties:
|
elif self.undocumented_modes & properties:
|
||||||
self.root.variable_advanced_enable = True
|
self.root.variable_undocumented_enable = True
|
||||||
color = self.root.variable_advanced_color
|
color = self.root.variable_undocumented_color
|
||||||
else:
|
else:
|
||||||
self.root.variable_default_enable = True
|
self.root.variable_default_enable = True
|
||||||
color = None
|
color = None
|
||||||
|
|
@ -379,6 +386,7 @@ class OutputFamily:
|
||||||
self.root,
|
self.root,
|
||||||
self._yaml,
|
self._yaml,
|
||||||
self.key_is_description,
|
self.key_is_description,
|
||||||
|
self.undocumented_modes,
|
||||||
)
|
)
|
||||||
|
|
||||||
def add_variable(
|
def add_variable(
|
||||||
|
|
@ -388,21 +396,23 @@ class OutputFamily:
|
||||||
properties = option.property.get()
|
properties = option.property.get()
|
||||||
color = None
|
color = None
|
||||||
variable_color = None
|
variable_color = None
|
||||||
advanced = False
|
undocumented = self.undocumented_modes & properties
|
||||||
|
hidden = False
|
||||||
if "hidden" in properties:
|
if "hidden" in properties:
|
||||||
self.root.variable_hidden_enable = True
|
if undocumented:
|
||||||
variable_color = self.root.variable_hidden_color
|
self.root.variable_undocumented_enable = True
|
||||||
elif "advanced" in properties:
|
variable_color = self.root.variable_undocumented_color
|
||||||
# FIXME "advanced should be an properties example!
|
else:
|
||||||
advanced = True
|
self.root.variable_hidden_enable = True
|
||||||
|
variable_color = self.root.variable_hidden_color
|
||||||
|
elif undocumented:
|
||||||
|
self.root.variable_undocumented_and_modified_enable = True
|
||||||
|
variable_color = self.root.variable_undocumented_and_modified_color
|
||||||
else:
|
else:
|
||||||
self.root.variable_default_enable = True
|
self.root.variable_default_enable = True
|
||||||
values = []
|
values = []
|
||||||
collect_values = []
|
collect_values = []
|
||||||
if not option.owner.isdefault():
|
if not option.owner.isdefault():
|
||||||
if advanced:
|
|
||||||
self.root.variable_advanced_and_modified_enable = True
|
|
||||||
variable_color = self.root.variable_advanced_and_modified_color
|
|
||||||
self.root.value_modified_enable = True
|
self.root.value_modified_enable = True
|
||||||
follower_index = option.index()
|
follower_index = option.index()
|
||||||
if follower_index is not None:
|
if follower_index is not None:
|
||||||
|
|
@ -450,9 +460,6 @@ class OutputFamily:
|
||||||
else:
|
else:
|
||||||
self.root.value_default_enable = True
|
self.root.value_default_enable = True
|
||||||
color = self.root.value_default_color
|
color = self.root.value_default_color
|
||||||
if advanced:
|
|
||||||
self.root.variable_advanced_enable = True
|
|
||||||
variable_color = self.root.variable_advanced_color
|
|
||||||
index = option.index()
|
index = option.index()
|
||||||
parent_option = subconfig.option(option.path(), index)
|
parent_option = subconfig.option(option.path(), index)
|
||||||
if is_root_metaconfig:
|
if is_root_metaconfig:
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,23 @@ console:
|
||||||
{{% endif %}}
|
{{% endif %}}
|
||||||
|
|
||||||
key_is_description: true # {_("In tree the key is the family or variable description inside of it's name")}
|
key_is_description: true # {_("In tree the key is the family or variable description inside of it's name")}
|
||||||
|
|
||||||
|
undocumented_modes:
|
||||||
|
description: {_('Variables with those modes are not documented')}
|
||||||
|
multi: true
|
||||||
|
mandatory: false
|
||||||
|
disabled:
|
||||||
|
jinja: |
|
||||||
|
{{% if not modes_level %}}
|
||||||
|
there is no mode
|
||||||
|
{{% endif %}}
|
||||||
|
description: {_('disabled when there is no mode available')}
|
||||||
|
validators:
|
||||||
|
- jinja: |
|
||||||
|
{{% if _.undocumented_modes not in modes_level %}}
|
||||||
|
this mode is not available
|
||||||
|
{{% endif %}}
|
||||||
|
description: {_('verify if disable modes already exists')}
|
||||||
"""
|
"""
|
||||||
return {
|
return {
|
||||||
"name": "console",
|
"name": "console",
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ excludes = []
|
||||||
#]
|
#]
|
||||||
|
|
||||||
test_ok = get_structures_list(excludes)
|
test_ok = get_structures_list(excludes)
|
||||||
# test_ok = [Path('../rougail-tests/structures/00_2default_calculated_variable')]
|
# test_ok = [Path('../rougail-tests/structures/00_6port')]
|
||||||
|
|
||||||
|
|
||||||
def idfn(fixture_value):
|
def idfn(fixture_value):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue