summaryrefslogtreecommitdiff
path: root/buildstream
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2016-11-28 17:28:21 +0000
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2016-11-28 17:37:26 +0000
commit7f54e028605f3c8a5151fabe3190ec5bbb19503a (patch)
treee00eb32833481872d64489f808fdd102a940e8c4 /buildstream
parentc9e2e98f75da7f361125850c143f1a33719ba339 (diff)
downloadbuildstream-7f54e028605f3c8a5151fabe3190ec5bbb19503a.tar.gz
Context: Now use new _yaml module for loading the yaml
Diffstat (limited to 'buildstream')
-rw-r--r--buildstream/context.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/buildstream/context.py b/buildstream/context.py
index 905a89070..39c390066 100644
--- a/buildstream/context.py
+++ b/buildstream/context.py
@@ -37,7 +37,9 @@ The default BuildStream configuration is included here for reference:
"""
from . import _site
-from . import utils
+from . import _yaml
+from ._yaml import CompositeTypeError
+from . import LoadError, LoadErrorReason
class Context():
"""Context of how BuildStream was invoked
@@ -81,10 +83,17 @@ class Context():
# Load default config
#
- defaults = utils.load_yaml_dict(_site.default_config)
+ defaults = _yaml.load(_site.default_config)
if config:
- user_config = utils.load_yaml_dict(config)
- defaults = utils.dictionary_override(defaults, user_config)
+ user_config = _yaml.load(config)
+ try:
+ _yaml.composite_dict(defaults, user_config, typesafe=True)
+ except CompositeTypeError as e:
+ raise LoadError(LoadErrorReason.ILLEGAL_COMPOSITE,
+ "Expected '%s' type for configuration '%s', instead received '%s'" %
+ (e.expected_type.__name__,
+ e.path,
+ e.actual_type.__name__)) from e
# Should have a loop here, but we suck
#