summaryrefslogtreecommitdiff
path: root/src/buildstream/_yaml.pyx
diff options
context:
space:
mode:
authorBenjamin Schubert <ben.c.schubert@gmail.com>2019-07-05 17:59:15 +0100
committerbst-marge-bot <marge-bot@buildstream.build>2019-07-15 14:14:03 +0000
commit695eddc069c9803eca5d004e80ca7be7defdd20c (patch)
tree39869eda62d451bb188925f2947872a006e2128d /src/buildstream/_yaml.pyx
parent2b1c63b50b11293377e87df802f35489e5f86c12 (diff)
downloadbuildstream-695eddc069c9803eca5d004e80ca7be7defdd20c.tar.gz
_yaml: rework 'assert_symbol_names' to not require provenance
Now that we get scalar Nodes, it is easier to just give the node and extract the provenance as needed.
Diffstat (limited to 'src/buildstream/_yaml.pyx')
-rw-r--r--src/buildstream/_yaml.pyx10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/buildstream/_yaml.pyx b/src/buildstream/_yaml.pyx
index 2df6a7d1b..a84c05759 100644
--- a/src/buildstream/_yaml.pyx
+++ b/src/buildstream/_yaml.pyx
@@ -1219,9 +1219,9 @@ cdef Node _new_node_from_list(list inlist, Node ref_node):
# are required to be symbols.
#
# Args:
-# provenance (Provenance): The provenance of the loaded symbol, or None
# symbol_name (str): The loaded symbol name
# purpose (str): The purpose of the string, for an error message
+# ref_node (Node): The node of the loaded symbol, or None
# allow_dashes (bool): Whether dashes are allowed for this symbol
#
# Raises:
@@ -1230,7 +1230,7 @@ cdef Node _new_node_from_list(list inlist, Node ref_node):
# Note that dashes are generally preferred for variable names and
# usage in YAML, but things such as option names which will be
# evaluated with jinja2 cannot use dashes.
-def assert_symbol_name(ProvenanceInformation provenance, str symbol_name, str purpose, *, bint allow_dashes=True):
+def assert_symbol_name(str symbol_name, str purpose, *, Node ref_node=None, bint allow_dashes=True):
cdef str valid_chars = string.digits + string.ascii_letters + '_'
if allow_dashes:
valid_chars += '-'
@@ -1250,8 +1250,10 @@ def assert_symbol_name(ProvenanceInformation provenance, str symbol_name, str pu
detail += " or dashes"
message = "Invalid symbol name for {}: '{}'".format(purpose, symbol_name)
- if provenance is not None:
- message = "{}: {}".format(provenance, message)
+ if ref_node:
+ provenance = node_get_provenance(ref_node)
+ if provenance is not None:
+ message = "{}: {}".format(provenance, message)
raise LoadError(LoadErrorReason.INVALID_SYMBOL_NAME,
message, detail=detail)