summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Schubert <contact@benschubert.me>2019-10-15 11:57:45 +0100
committerBenjamin Schubert <contact@benschubert.me>2019-10-16 13:57:13 +0100
commitf0c928ed5e0fb61f3dd4e26891a39def0b40be81 (patch)
tree1574e0ecc458f842fa1cb37c71c3d8d3a49092ff
parentb07ca0c2ba8c6fdaf3e242f6cbcab84d1bef7060 (diff)
downloadbuildstream-f0c928ed5e0fb61f3dd4e26891a39def0b40be81.tar.gz
element.py: remove 'node_subst_member' and replace with 'node_susbst_vars'
-rw-r--r--src/buildstream/element.py36
-rw-r--r--src/buildstream/plugins/elements/import.py4
-rw-r--r--src/buildstream/plugins/elements/script.py4
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([