summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngelos Evripiotis <jevripiotis@bloomberg.net>2019-03-12 17:19:14 +0000
committerJürg Billeter <j@bitron.ch>2019-03-14 16:21:43 +0000
commitd8fc3e8f6e3d20860d71eb847a05ed795c46e935 (patch)
tree347d01de26787175cd544b86e30a100dc116ab1c
parente23f6b397e07df6043bf7dbb64ef5426c3459aef (diff)
downloadbuildstream-d8fc3e8f6e3d20860d71eb847a05ed795c46e935.tar.gz
Element.__init_defaults: init if no plugin_conf
Still initialize `Element.__defaults` as usual, even if a `plugin_conf` is not specified. As part of the work on !1101 to introduce `ArtifactElement`s, a special case for `__init_defaults` was made, such that none of the usual defaults would be loaded. This seems to be because it has no config and none of the defaults are required by ArtifactElement, although they don't seem to adversely affect it. Instead, treat a 'None' `plugin_conf` in the same way as the existing case of a missing file. This avoids the appearance of having plugin-specific behaviour in the base-class, and is perhaps less puzzling to new contributors.
-rw-r--r--buildstream/element.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/buildstream/element.py b/buildstream/element.py
index 72b44aa9a..5d1f0622b 100644
--- a/buildstream/element.py
+++ b/buildstream/element.py
@@ -2369,20 +2369,18 @@ class Element(Plugin):
defaults['public'] = element_public
def __init_defaults(self, plugin_conf):
- if plugin_conf is None:
- return
-
# Defaults are loaded once per class and then reused
#
if not self.__defaults_set:
-
- # Load the plugin's accompanying .yaml file if one was provided
defaults = {}
- try:
- defaults = _yaml.load(plugin_conf, os.path.basename(plugin_conf))
- except LoadError as e:
- if e.reason != LoadErrorReason.MISSING_FILE:
- raise e
+
+ if plugin_conf is not None:
+ # Load the plugin's accompanying .yaml file if one was provided
+ try:
+ defaults = _yaml.load(plugin_conf, os.path.basename(plugin_conf))
+ except LoadError as e:
+ if e.reason != LoadErrorReason.MISSING_FILE:
+ raise e
# Special case; compose any element-wide split-rules declarations
self.__compose_default_splits(defaults)