This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch aevri/provenance_scope
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit b2fa43d65ca551ab8f13e56e010489fb26faed61
Author: Angelos Evripiotis <[email protected]>
AuthorDate: Fri Mar 15 16:27:05 2019 +0000

    WIP: _options: use context_for_bsterror
---
 buildstream/_options/optionenum.py  | 18 +++++++++---------
 buildstream/_options/optionflags.py | 17 ++++++++---------
 2 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/buildstream/_options/optionenum.py 
b/buildstream/_options/optionenum.py
index 095b9c3..d7c6ccc 100644
--- a/buildstream/_options/optionenum.py
+++ b/buildstream/_options/optionenum.py
@@ -18,7 +18,7 @@
 #        Tristan Van Berkom <[email protected]>
 
 from .. import _yaml
-from .._exceptions import LoadError, LoadErrorReason
+from .._exceptions import LoadError, LoadErrorReason, context_for_bsterror
 from .option import Option, OPTION_SYMBOLS
 
 
@@ -52,7 +52,9 @@ class OptionEnum(Option):
         self.value = _yaml.node_get(node, str, self.name)
         if transform:
             self.value = transform(self.value)
-        self.validate(self.value, _yaml.node_get_provenance(node, self.name))
+
+        with context_for_bsterror(_yaml.node_get_provenance(node, self.name)):
+            self.validate(self.value)
 
     def set_value(self, value):
         self.validate(value)
@@ -61,17 +63,15 @@ class OptionEnum(Option):
     def get_value(self):
         return self.value
 
-    def validate(self, value, provenance=None):
+    def validate(self, value):
         if value not in self.values:
-            prefix = ""
-            if provenance:
-                prefix = "{}: ".format(provenance)
             raise LoadError(LoadErrorReason.INVALID_DATA,
-                            "{}Invalid value for {} option '{}': {}\n"
-                            .format(prefix, self.OPTION_TYPE, self.name, 
value) +
+                            "Invalid value for {} option '{}': {}\n"
+                            .format(self.OPTION_TYPE, self.name, value) +
                             "Valid values: {}".format(", ".join(self.values)))
 
     def load_default_value(self, node):
         value = _yaml.node_get(node, str, 'default')
-        self.validate(value, _yaml.node_get_provenance(node, 'default'))
+        with context_for_bsterror(_yaml.node_get_provenance(node, 'default')):
+            self.validate(value)
         return value
diff --git a/buildstream/_options/optionflags.py 
b/buildstream/_options/optionflags.py
index 0271208..598111a 100644
--- a/buildstream/_options/optionflags.py
+++ b/buildstream/_options/optionflags.py
@@ -18,7 +18,7 @@
 #        Tristan Van Berkom <[email protected]>
 
 from .. import _yaml
-from .._exceptions import LoadError, LoadErrorReason
+from .._exceptions import LoadError, LoadErrorReason, context_for_bsterror
 from .option import Option, OPTION_SYMBOLS
 
 
@@ -47,14 +47,16 @@ class OptionFlags(Option):
                             .format(_yaml.node_get_provenance(node), 
self.OPTION_TYPE, self.name))
 
         self.value = _yaml.node_get(node, list, 'default', default_value=[])
-        self.validate(self.value, _yaml.node_get_provenance(node, 'default'))
+        with context_for_bsterror(_yaml.node_get_provenance(node, 'default')):
+            self.validate(self.value)
 
     def load_value(self, node, *, transform=None):
         self.value = _yaml.node_get(node, list, self.name)
         if transform:
             self.value = [transform(x) for x in self.value]
         self.value = sorted(self.value)
-        self.validate(self.value, _yaml.node_get_provenance(node, self.name))
+        with context_for_bsterror(_yaml.node_get_provenance(node, self.name)):
+            self.validate(self.value)
 
     def set_value(self, value):
         # Strip out all whitespace, allowing: "value1, value2 , value3"
@@ -69,15 +71,12 @@ class OptionFlags(Option):
     def get_value(self):
         return ",".join(self.value)
 
-    def validate(self, value, provenance=None):
+    def validate(self, value):
         for flag in value:
             if flag not in self.values:
-                prefix = ""
-                if provenance:
-                    prefix = "{}: ".format(provenance)
                 raise LoadError(LoadErrorReason.INVALID_DATA,
-                                "{}Invalid value for flags option '{}': {}\n"
-                                .format(prefix, self.name, value) +
+                                "Invalid value for flags option '{}': {}\n"
+                                .format(self.name, value) +
                                 "Valid values: {}".format(", 
".join(self.values)))
 
     def load_valid_values(self, node):

Reply via email to