fix: better doc for calculation with unknown variable
This commit is contained in:
parent
dcb1800346
commit
4bf7274871
3 changed files with 22 additions and 10 deletions
|
|
@ -674,11 +674,13 @@ class VariableCalculation(_VariableCalculation):
|
||||||
) = self.get_variable(objectspace)
|
) = self.get_variable(objectspace)
|
||||||
if (
|
if (
|
||||||
not variable_in_calculation
|
not variable_in_calculation
|
||||||
and self.optional
|
and (self.optional
|
||||||
or (objectspace.force_optional and self.attribute_name == "default")
|
or objectspace.force_optional)
|
||||||
):
|
):
|
||||||
if self.default is not undefined:
|
if self.default is not undefined:
|
||||||
return self.get_default_value_optional(objectspace, self.default)
|
return self.get_default_value_optional(objectspace, self.default)
|
||||||
|
if self.default_values is not None:
|
||||||
|
return self.default_values
|
||||||
raise VariableCalculationDependencyError()
|
raise VariableCalculationDependencyError()
|
||||||
if variable_in_calculation and self.attribute_name == "default":
|
if variable_in_calculation and self.attribute_name == "default":
|
||||||
local_variable = objectspace.paths[self.path]
|
local_variable = objectspace.paths[self.path]
|
||||||
|
|
@ -720,8 +722,8 @@ class VariablePropertyCalculation(_VariableCalculation):
|
||||||
if (
|
if (
|
||||||
# self.default is not undefined and
|
# self.default is not undefined and
|
||||||
not variable_in_calculation
|
not variable_in_calculation
|
||||||
and self.optional
|
and (self.optional
|
||||||
or (objectspace.force_optional)
|
or objectspace.force_optional)
|
||||||
):
|
):
|
||||||
if self.default is undefined:
|
if self.default is undefined:
|
||||||
default = False
|
default = False
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,8 @@ class Common:
|
||||||
for val in value:
|
for val in value:
|
||||||
ret = self.calculation_property(val)
|
ret = self.calculation_property(val)
|
||||||
if isinstance(ret, bool):
|
if isinstance(ret, bool):
|
||||||
properties.append(self.convert_str(property_))
|
if ret:
|
||||||
|
properties.append(self.convert_str(property_))
|
||||||
elif ret is not None:
|
elif ret is not None:
|
||||||
calc_properties.append(ret)
|
calc_properties.append(ret)
|
||||||
if properties or calc_properties:
|
if properties or calc_properties:
|
||||||
|
|
@ -244,6 +245,7 @@ class Common:
|
||||||
return None
|
return None
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
def calc_properties(
|
def calc_properties(
|
||||||
self,
|
self,
|
||||||
prop,
|
prop,
|
||||||
|
|
@ -462,9 +464,14 @@ class Variable(Common):
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
if self.elt.type == "choice":
|
if self.elt.type == "choice":
|
||||||
keys["values"] = self.populate_calculation(
|
try:
|
||||||
self.elt.choices, return_a_tuple=True
|
keys["values"] = self.populate_calculation(
|
||||||
)
|
self.elt.choices, return_a_tuple=True
|
||||||
|
)
|
||||||
|
if keys["values"] == '(,)':
|
||||||
|
keys["values"] = tuple()
|
||||||
|
except VariableCalculationDependencyError:
|
||||||
|
keys["values"] = tuple()
|
||||||
if self.elt.type == "regexp":
|
if self.elt.type == "regexp":
|
||||||
self.object_type = "Regexp_" + self.option_name
|
self.object_type = "Regexp_" + self.option_name
|
||||||
self.tiramisu.text["header"].append(
|
self.tiramisu.text["header"].append(
|
||||||
|
|
@ -537,7 +544,10 @@ class Family(Common):
|
||||||
if self.group_type:
|
if self.group_type:
|
||||||
keys["group_type"] = self.group_type
|
keys["group_type"] = self.group_type
|
||||||
if self.elt.type == "dynamic":
|
if self.elt.type == "dynamic":
|
||||||
keys["identifiers"] = self.populate_calculation(self.elt.dynamic)
|
try:
|
||||||
|
keys["identifiers"] = self.populate_calculation(self.elt.dynamic)
|
||||||
|
except VariableCalculationDependencyError:
|
||||||
|
keys["identifiers"] = []
|
||||||
children = []
|
children = []
|
||||||
for path in self.objectspace.parents[self.elt.path]:
|
for path in self.objectspace.parents[self.elt.path]:
|
||||||
children.append(self.objectspace.paths[path])
|
children.append(self.objectspace.paths[path])
|
||||||
|
|
|
||||||
|
|
@ -433,7 +433,7 @@ class ConvertDynOptionDescription(DynOptionDescription):
|
||||||
if "{{ identifier }}" in display:
|
if "{{ identifier }}" in display:
|
||||||
return display.replace(
|
return display.replace(
|
||||||
"{{ identifier }}",
|
"{{ identifier }}",
|
||||||
self.convert_identifier_to_path(self.get_identifiers(subconfig)[-1]),
|
self.convert_identifier_to_path(self.get_identifiers(subconfig, from_display_name=True)[-1]),
|
||||||
)
|
)
|
||||||
return display
|
return display
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue