You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by tv...@apache.org on 2021/02/04 07:24:17 UTC
[buildstream] 02/10: element.py: try-except nicely in
'node_substitute_variables'
This is an automated email from the ASF dual-hosted git repository.
tvb pushed a commit to branch bschubert/more-mypy
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit d513a4c7c486fe10596df48220379da623f5d876
Author: Benjamin Schubert <co...@benschubert.me>
AuthorDate: Thu Oct 10 18:34:54 2019 +0100
element.py: try-except nicely in 'node_substitute_variables'
This adds a nicer try-except around the 'node_substitute_variables' method
in order to get nicer error reporting to users.
---
src/buildstream/element.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index 4e579ff..f95ac9b 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -545,6 +545,9 @@ class Element(Plugin):
Returns:
The value with all variables replaced
+ Raises:
+ :class:`.LoadError`: When the node doesn't contain a string or a variable was not found.
+
**Example:**
.. code:: python
@@ -553,7 +556,11 @@ class Element(Plugin):
# variables in the returned string
name = self.node_substitute_variables(node.get_str('name'))
"""
- return self.__variables.subst(node.as_str())
+ try:
+ return self.__variables.subst(node.as_str())
+ except LoadError as e:
+ 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