feat: doc transitive properties

This commit is contained in:
egarette@silique.fr 2026-01-21 08:34:43 +01:00
parent 0024c2cb2a
commit 42053d0e0d
63 changed files with 26 additions and 6 deletions

View file

@ -39,6 +39,8 @@ HIDDEN_PROPERTIES = [
"disabled", "disabled",
] ]
DISABLED_PROPERTIES = ["disabled"]
class RougailOutputDoc(Examples, Changelog): class RougailOutputDoc(Examples, Changelog):
"""Rougail Output Doc: """Rougail Output Doc:
@ -619,9 +621,9 @@ class RougailOutputDoc(Examples, Changelog):
elif child.information.get(f"{prop}_calculation", False): elif child.information.get(f"{prop}_calculation", False):
annotation = self._to_string(child, prop) annotation = self._to_string(child, prop)
if annotation is None or isinstance(annotation, bool): if annotation is None or isinstance(annotation, bool):
if annotation is None and prop in HIDDEN_PROPERTIES: if (annotation is None and prop in HIDDEN_PROPERTIES) or (annotation is True and prop in DISABLED_PROPERTIES):
return False, {} return False, {}
if not annotation: if not annotation or prop in DISABLED_PROPERTIES:
continue continue
prop_obj = { prop_obj = {
"type": "property", "type": "property",
@ -851,20 +853,26 @@ class RougailOutputDoc(Examples, Changelog):
description = self._convert_description(option.description(uncalculated=True), "description", its_a_path=False) description = self._convert_description(option.description(uncalculated=True), "description", its_a_path=False)
variables = [[variable_path, description, None]] variables = [[variable_path, description, None]]
for cpath, description, identifiers in variables: for cpath, description, identifiers in variables:
if calculation["propertyerror"] == "transitive":
if not cpath: if not cpath:
return True
else:
print(variable_path)
continue
pass
elif not cpath:
# we cannot access to this variable so try with permissive
variable = self.true_config.forcepermissive.option(variable_path) variable = self.true_config.forcepermissive.option(variable_path)
try: try:
variable_value = self._get_unmodified_default_value(variable) variable_value = self._get_unmodified_default_value(variable)
except PropertiesOptionError as err: except PropertiesOptionError as err:
if calculation["propertyerror"]: if calculation["propertyerror"] is True:
raise err from err raise err from err
variable_value = value variable_value = value
except VariableCalculationDependencyError: except VariableCalculationDependencyError:
values.append(_("depends on an undocumented variable")) values.append(_("depends on an undocumented variable"))
continue continue
except AttributeError as err: except AttributeError as err:
# if err.code != "option-not-found" or not calculation.get("optional", False):
# raise err from err
return calculation.get("default", False) return calculation.get("default", False)
if ( if (
condition == "when" condition == "when"

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1 @@
[]