diff options
author | Benjamin Schubert <contact@benschubert.me> | 2019-10-15 11:57:45 +0100 |
---|---|---|
committer | Benjamin Schubert <contact@benschubert.me> | 2019-10-16 13:57:13 +0100 |
commit | f0c928ed5e0fb61f3dd4e26891a39def0b40be81 (patch) | |
tree | 1574e0ecc458f842fa1cb37c71c3d8d3a49092ff /src/buildstream | |
parent | b07ca0c2ba8c6fdaf3e242f6cbcab84d1bef7060 (diff) | |
download | buildstream-f0c928ed5e0fb61f3dd4e26891a39def0b40be81.tar.gz |
element.py: remove 'node_subst_member' and replace with 'node_susbst_vars'
Diffstat (limited to 'src/buildstream')
-rw-r--r-- | src/buildstream/element.py | 36 | ||||
-rw-r--r-- | src/buildstream/plugins/elements/import.py | 4 | ||||
-rw-r--r-- | src/buildstream/plugins/elements/script.py | 4 |
3 files changed, 7 insertions, 37 deletions
diff --git a/src/buildstream/element.py b/src/buildstream/element.py index 8953ac245..e6278b1e0 100644 --- a/src/buildstream/element.py +++ b/src/buildstream/element.py @@ -98,7 +98,7 @@ from . import _cachekey from . import _signals from . import _site from ._platform import Platform -from .node import Node, _sentinel as _node_sentinel +from .node import Node from .plugin import Plugin from .sandbox import SandboxFlags, SandboxCommandError from .sandbox._config import SandboxConfig @@ -562,36 +562,6 @@ class Element(Plugin): provenance = node.get_provenance() raise LoadError('{}: {}'.format(provenance, e), e.reason, detail=e.detail) from e - def node_subst_member(self, node: 'MappingNode[str, Any]', member_name: str, default: str = _node_sentinel) -> Any: - """Fetch the value of a string node member, substituting any variables - in the loaded value with the element contextual variables. - - Args: - node: A MappingNode loaded from YAML - member_name: The name of the member to fetch - default: A value to return when *member_name* is not specified in *node* - - Returns: - The value of *member_name* in *node*, otherwise *default* - - Raises: - :class:`.LoadError`: When *member_name* is not found and no *default* was provided - - **Example:** - - .. code:: python - - # Expect a string 'name' in 'node', substituting any - # variables in the returned string - name = self.node_subst_member(node, 'name') - """ - value = node.get_str(member_name, default) - try: - return self.__variables.subst(value) - except LoadError as e: - provenance = node.get_scalar(member_name).get_provenance() - raise LoadError('{}: {}'.format(provenance, e), e.reason, detail=e.detail) from e - def node_subst_list(self, node: 'MappingNode[str, Any]', member_name: str) -> List[Any]: """Fetch a list from a node member, substituting any variables in the list @@ -2722,8 +2692,8 @@ class Element(Plugin): def __expand_environment(self, environment): # Resolve variables in environment value strings final_env = {} - for key in environment.keys(): - final_env[key] = self.node_subst_member(environment, key) + for key, value in environment.items(): + final_env[key] = self.node_subst_vars(value) return final_env diff --git a/src/buildstream/plugins/elements/import.py b/src/buildstream/plugins/elements/import.py index 9568bd08e..404a0f4ee 100644 --- a/src/buildstream/plugins/elements/import.py +++ b/src/buildstream/plugins/elements/import.py @@ -49,8 +49,8 @@ class ImportElement(Element): 'source', 'target' ]) - self.source = self.node_subst_member(node, 'source') - self.target = self.node_subst_member(node, 'target') + self.source = self.node_subst_vars(node.get_scalar('source')) + self.target = self.node_subst_vars(node.get_scalar('target')) def preflight(self): # Assert that we have at least one source to fetch. diff --git a/src/buildstream/plugins/elements/script.py b/src/buildstream/plugins/elements/script.py index a7b53e422..c63d0a04e 100644 --- a/src/buildstream/plugins/elements/script.py +++ b/src/buildstream/plugins/elements/script.py @@ -47,8 +47,8 @@ class ScriptElement(buildstream.ScriptElement): def configure(self, node): for n in node.get_sequence('layout', []): - dst = self.node_subst_member(n, 'destination') - elm = self.node_subst_member(n, 'element', None) + dst = self.node_subst_vars(n.get_scalar('destination')) + elm = self.node_subst_vars(n.get_scalar('element', None)) self.layout_add(elm, dst) node.validate_keys([ |