summaryrefslogtreecommitdiff
path: root/src/buildstream/element.py
diff options
context:
space:
mode:
authorBenjamin Schubert <contact@benschubert.me>2019-06-09 14:22:35 +0100
committerbst-marge-bot <marge-bot@buildstream.build>2019-07-15 14:14:02 +0000
commitfcef3658433f74a2f396ed353bb3534f0001f3d8 (patch)
treea3c74347254332f06583fbdc1c6a6fc4411d21aa /src/buildstream/element.py
parentf6616bc9d51a791aba1e177c61e27f768bebd9cb (diff)
downloadbuildstream-fcef3658433f74a2f396ed353bb3534f0001f3d8.tar.gz
_yaml: add 'get_mapping()' to MappingNode
This allows to get a mapping node from another 'MappingNode', replacing 'node_get(my_mapping, key, type=dict)' Also changes all places where 'node_get' was called like that by the new API.
Diffstat (limited to 'src/buildstream/element.py')
-rw-r--r--src/buildstream/element.py35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index 9e6e7a81f..be5a17575 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -895,7 +895,7 @@ class Element(Plugin):
if self.__dynamic_public is None:
self.__load_public_data()
- data = _yaml.node_get(self.__dynamic_public, dict, domain, default_value=None)
+ data = self.__dynamic_public.get_mapping(domain, default=None)
if data is not None:
data = _yaml.node_copy(data)
@@ -2534,9 +2534,9 @@ class Element(Plugin):
@classmethod
def __compose_default_splits(cls, project, defaults, is_junction):
- element_public = _yaml.node_get(defaults, dict, 'public', default_value={})
- element_bst = _yaml.node_get(element_public, dict, 'bst', default_value={})
- element_splits = _yaml.node_get(element_bst, dict, 'split-rules', default_value={})
+ element_public = defaults.get_mapping("public", default={})
+ element_bst = element_public.get_mapping("bst", default={})
+ element_splits = element_bst.get_mapping("split-rules", default={})
if is_junction:
splits = _yaml.node_copy(element_splits)
@@ -2576,7 +2576,7 @@ class Element(Plugin):
else:
elements = project.element_overrides
- overrides = _yaml.node_get(elements, dict, kind, default_value=None)
+ overrides = elements.get_mapping(kind, default=None)
if overrides:
_yaml.composite(defaults, overrides)
@@ -2588,7 +2588,7 @@ class Element(Plugin):
#
@classmethod
def __extract_environment(cls, project, meta):
- default_env = _yaml.node_get(cls.__defaults, dict, 'environment', default_value={})
+ default_env = cls.__defaults.get_mapping("environment", default={})
if meta.is_junction:
environment = _yaml.new_empty_node()
@@ -2634,8 +2634,7 @@ class Element(Plugin):
#
@classmethod
def __extract_variables(cls, project, meta):
- default_vars = _yaml.node_get(cls.__defaults, dict, 'variables',
- default_value={})
+ default_vars = cls.__defaults.get_mapping('variables', default={})
if meta.is_junction:
variables = _yaml.node_copy(project.first_pass_config.base_variables)
@@ -2662,7 +2661,7 @@ class Element(Plugin):
def __extract_config(cls, meta):
# The default config is already composited with the project overrides
- config = _yaml.node_get(cls.__defaults, dict, 'config', default_value={})
+ config = cls.__defaults.get_mapping('config', default={})
config = _yaml.node_copy(config)
_yaml.composite(config, meta.config)
@@ -2688,7 +2687,7 @@ class Element(Plugin):
host_os = platform.get_host_os()
# The default config is already composited with the project overrides
- sandbox_defaults = _yaml.node_get(cls.__defaults, dict, 'sandbox', default_value={})
+ sandbox_defaults = cls.__defaults.get_mapping('sandbox', default={})
sandbox_defaults = _yaml.node_copy(sandbox_defaults)
_yaml.composite(sandbox_config, sandbox_defaults)
@@ -2715,15 +2714,15 @@ class Element(Plugin):
#
@classmethod
def __extract_public(cls, meta):
- base_public = _yaml.node_get(cls.__defaults, dict, 'public', default_value={})
+ base_public = cls.__defaults.get_mapping('public', default={})
base_public = _yaml.node_copy(base_public)
- base_bst = _yaml.node_get(base_public, dict, 'bst', default_value={})
- base_splits = _yaml.node_get(base_bst, dict, 'split-rules', default_value={})
+ base_bst = base_public.get_mapping('bst', default={})
+ base_splits = base_bst.get_mapping('split-rules', default={})
element_public = _yaml.node_copy(meta.public)
- element_bst = _yaml.node_get(element_public, dict, 'bst', default_value={})
- element_splits = _yaml.node_get(element_bst, dict, 'split-rules', default_value={})
+ element_bst = element_public.get_mapping('bst', default={})
+ element_splits = element_bst.get_mapping('split-rules', default={})
# Allow elements to extend the default splits defined in their project or
# element specific defaults
@@ -2738,8 +2737,8 @@ class Element(Plugin):
# Expand the splits in the public data using the Variables in the element
def __expand_splits(self, element_public):
- element_bst = _yaml.node_get(element_public, dict, 'bst', default_value={})
- element_splits = _yaml.node_get(element_bst, dict, 'split-rules', default_value={})
+ element_bst = element_public.get_mapping('bst', default={})
+ element_splits = element_bst.get_mapping('split-rules', default={})
# Resolve any variables in the public split rules directly
for domain, splits in self.node_items(element_splits):
@@ -2753,7 +2752,7 @@ class Element(Plugin):
def __init_splits(self):
bstdata = self.get_public_data('bst')
- splits = self.node_get_member(bstdata, dict, 'split-rules')
+ splits = bstdata.get_mapping('split-rules')
self.__splits = {
domain: re.compile('^(?:' + '|'.join([utils._glob2re(r) for r in rules]) + ')$')
for domain, rules in self.node_items(splits)