Browse Source

SettingsError exception class implementation

Yann Weber 9 years ago
parent
commit
6297a2c67c
2 changed files with 32 additions and 1 deletions
  1. 7
    1
      lodel/leapi/datahandlers/references.py
  2. 25
    0
      lodel/settings/utils.py

+ 7
- 1
lodel/leapi/datahandlers/references.py View File

@@ -74,4 +74,10 @@ class Hierarch(MultipleRef):
74 74
     # @param max_depth int | None :  limit of depth
75 75
     # @param max_childs int | Nine : maximum number of childs by nodes
76 76
     def __init__(self, back_reference, max_depth = None, max_childs = None, **kwargs):
77
-        super().__init__(back_reference = back_reference)
77
+        super().__init__(back_reference = back_reference, max_depth = max_depth, )
78
+
79
+    def _check_data_value(self, value):
80
+        value, expt = super()._check_data_value(value)
81
+        if isinstance(expt, Exception):
82
+            return None, expt
83
+        # determine depth with datasource

+ 25
- 0
lodel/settings/utils.py View File

@@ -0,0 +1,25 @@
1
+#-*- coding: utf-8 -*-
2
+
3
+## @brief Error class for settings errors
4
+class SettingsError(Exception):
5
+    
6
+    ## @brief Instanciate a new SettingsError
7
+    # @param msg str : Error message
8
+    # @param key_id str : The key concerned by the error
9
+    def __init__(self, msg = "Unknown error", key_id = None, filename = None):
10
+        self.__msg = msg
11
+        self.__key_id = key_id
12
+        self.__filename = filename
13
+
14
+    def __repr__(self): return str(self)
15
+
16
+    def __str__(self):
17
+        res = "Error "
18
+        if self.__filename is not None:
19
+            res += "in file '%s' " % self.__filename
20
+        if self.__key_id is not None:
21
+            res += "for key '%s'" % self.__key_id
22
+
23
+        res += ": %s" % (self.__msg)
24
+        return res
25
+        

Loading…
Cancel
Save