This is an automated email from the ASF dual-hosted git repository. not-in-ldap pushed a commit to branch bschubert/more-mypy in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 5cd1cce5af0bf3dee0dd9c33d4c82be23247d130 Author: Benjamin Schubert <[email protected]> AuthorDate: Tue Oct 15 11:51:54 2019 +0100 _options/option.py: Pass the node instead of the str to 'transform' This is in order to consolidate how we substitute variables. _project: use 'node_substitute_variable' instead of '_subst_list' as the first one expects a node. --- src/buildstream/_options/optionbool.py | 2 +- src/buildstream/_options/optionenum.py | 6 ++++-- src/buildstream/_options/optionflags.py | 5 +++-- src/buildstream/_project.py | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/buildstream/_options/optionbool.py b/src/buildstream/_options/optionbool.py index af67df6..f91cb25 100644 --- a/src/buildstream/_options/optionbool.py +++ b/src/buildstream/_options/optionbool.py @@ -37,7 +37,7 @@ class OptionBool(Option): def load_value(self, node, *, transform=None): if transform: - self.set_value(transform(node.get_str(self.name))) + self.set_value(transform(node.get_scalar(self.name))) else: self.value = node.get_bool(self.name) diff --git a/src/buildstream/_options/optionenum.py b/src/buildstream/_options/optionenum.py index be9799a..4a09413 100644 --- a/src/buildstream/_options/optionenum.py +++ b/src/buildstream/_options/optionenum.py @@ -56,9 +56,11 @@ class OptionEnum(Option): def load_value(self, node, *, transform=None): value_node = node.get_scalar(self.name) - self.value = value_node.as_str() if transform: - self.value = transform(self.value) + self.value = transform(value_node) + else: + self.value = value_node.as_str() + self.validate(self.value, value_node) def set_value(self, value): diff --git a/src/buildstream/_options/optionflags.py b/src/buildstream/_options/optionflags.py index 0ce9957..e5217a7 100644 --- a/src/buildstream/_options/optionflags.py +++ b/src/buildstream/_options/optionflags.py @@ -58,9 +58,10 @@ class OptionFlags(Option): def load_value(self, node, *, transform=None): value_node = node.get_sequence(self.name) - self.value = value_node.as_str_list() if transform: - self.value = [transform(x) for x in self.value] + self.value = [transform(x) for x in value_node] + else: + self.value = value_node.as_str_list() self.value = sorted(self.value) self.validate(self.value, value_node) diff --git a/src/buildstream/_project.py b/src/buildstream/_project.py index 7ba93bb..0c63e33 100644 --- a/src/buildstream/_project.py +++ b/src/buildstream/_project.py @@ -789,7 +789,7 @@ class Project(): output.options.load(options_node) if self.junction: # load before user configuration - output.options.load_yaml_values(self.junction.options, transform=self.junction._subst_string) + output.options.load_yaml_values(self.junction.options, transform=self.junction.node_substitute_variables) # Collect option values specified in the user configuration overrides = self._context.get_overrides(self.name)
