From 4df2b013dfe5ebe6c14a5ecad335b693966077e4 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Tue, 14 Oct 2025 13:57:09 +0200 Subject: [PATCH] feat: keep forced_descriptions information (mostly for rougail-output-doc) --- src/rougail/annotator/family.py | 1 + src/rougail/annotator/variable.py | 1 + src/rougail/convert/convert.py | 1 + src/rougail/user_datas.py | 9 ++------- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/rougail/annotator/family.py b/src/rougail/annotator/family.py index ca6427e11..a5925ce8d 100644 --- a/src/rougail/annotator/family.py +++ b/src/rougail/annotator/family.py @@ -122,6 +122,7 @@ class Annotator(Walk): for family in self.get_families(): if not family.description: family.description = family.name + self.objectspace.forced_descriptions.append(family.path) if family.type == "dynamic" and isinstance( family.dynamic, VariableCalculation ): diff --git a/src/rougail/annotator/variable.py b/src/rougail/annotator/variable.py index 5022a60f7..ed3d83734 100644 --- a/src/rougail/annotator/variable.py +++ b/src/rougail/annotator/variable.py @@ -232,6 +232,7 @@ class Annotator(Walk): # pylint: disable=R0903 # variable without description: description is the name if not variable.description: variable.description = variable.name + self.objectspace.forced_descriptions.append(variable.path) if variable.type is None: variable.type = "string" self.objectspace.informations.add(variable.path, "type", variable.type) diff --git a/src/rougail/convert/convert.py b/src/rougail/convert/convert.py index e5e9b0a06..310f17266 100644 --- a/src/rougail/convert/convert.py +++ b/src/rougail/convert/convert.py @@ -144,6 +144,7 @@ class ParserVariable: self.dynamics_variable = {} self.multis = {} self.default_multi = {} + self.forced_descriptions = [] self.jinja = {} # self.convert_options = list(CONVERT_OPTION) diff --git a/src/rougail/user_datas.py b/src/rougail/user_datas.py index 9e4ca3f96..63cd245cf 100644 --- a/src/rougail/user_datas.py +++ b/src/rougail/user_datas.py @@ -283,8 +283,9 @@ class UserDatas: def _populate_error_warnings(self): # we don't find variable, apply value just to get error or warning messages for path, options in self.values.items(): + if "{{ identifier }}" in path: + continue value = options["values"] - if options.get('secret_manager'): option = self.config.forcepermissive.option(path) else: @@ -431,13 +432,7 @@ class UserDatas: if is_secret_manager and isinstance(value, tuple): # it's a function value = value[0](*value[1:], option=option, warnings=self.warnings, errors=self.errors) - if is_secret_manager and "hidden" in option.property.get(): - option.permissive.add("hidden") - option.permissive.add("frozen") option.value.set(value) - if is_secret_manager and "hidden" in option.property.get(): - option.permissive.remove("hidden") - option.permissive.remove("frozen") def convert_value(option, value):