summaryrefslogtreecommitdiff
path: root/src/buildstream/_projectrefs.py
diff options
context:
space:
mode:
authorBenjamin Schubert <ben.c.schubert@gmail.com>2019-07-03 10:55:19 +0100
committerbst-marge-bot <marge-bot@buildstream.build>2019-07-15 14:14:03 +0000
commit9e801b5e1c19c46de8b1e88f416e34e180df83e9 (patch)
treed5c4e0a438366889bad95e1a86f60d863c7b4997 /src/buildstream/_projectrefs.py
parent2731d0c634d93bf1381f349e896f266bf34b4987 (diff)
downloadbuildstream-9e801b5e1c19c46de8b1e88f416e34e180df83e9.tar.gz
_yaml: Remove 'node_extend_list' and add 'SequenceNode.append'
There was a single place using 'node_extend_list', which we can replace more easily with 'SequenceNode.append'. Also rewrite _projectrefs.py:_lookup to use the new API more effectively
Diffstat (limited to 'src/buildstream/_projectrefs.py')
-rw-r--r--src/buildstream/_projectrefs.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/buildstream/_projectrefs.py b/src/buildstream/_projectrefs.py
index d10456b14..c3e669c81 100644
--- a/src/buildstream/_projectrefs.py
+++ b/src/buildstream/_projectrefs.py
@@ -121,15 +121,16 @@ class ProjectRefs():
# Looks up a ref node in the project.refs file, creates one if ensure is True.
#
def _lookup(self, toplevel, project, element, source_index, *, ensure=False):
+ projects = toplevel.get_mapping('projects')
+
# Fetch the project
try:
- projects = toplevel.get_mapping('projects')
project_node = projects.get_mapping(project)
except LoadError:
if not ensure:
return None
- project_node = _yaml.new_empty_node(ref_node=projects)
- projects[project] = project_node
+ projects[project] = {}
+ project_node = projects.get_mapping(project)
# Fetch the element
try:
@@ -137,8 +138,8 @@ class ProjectRefs():
except LoadError:
if not ensure:
return None
- element_list = _yaml.new_empty_list_node()
- project_node[element] = element_list
+ project_node[element] = []
+ element_list = project_node.get_sequence(element)
# Fetch the source index
try:
@@ -147,9 +148,7 @@ class ProjectRefs():
if not ensure:
return None
- # Pad the list with empty newly created dictionaries
- _yaml.node_extend_list(project_node, element, source_index + 1, {})
-
- node = project_node.get_sequence(element).mapping_at(source_index)
+ element_list.append({})
+ node = element_list.mapping_at(source_index)
return node