impl_get_information and impl_set_information are, now, persistent in storage
[tiramisu.git] / tiramisu / storage / dictionary / value.py
index 9c3e1f9..c1bf2eb 100644 (file)
@@ -22,12 +22,13 @@ from tiramisu.storage.dictionary.storage import Cache
 
 
 class Values(Cache):
 
 
 class Values(Cache):
-    __slots__ = ('_values', '__weakref__')
+    __slots__ = ('_values', '_informations', '__weakref__')
 
     def __init__(self, storage):
         """init plugin means create values storage
         """
         self._values = {}
 
     def __init__(self, storage):
         """init plugin means create values storage
         """
         self._values = {}
+        self._informations = {}
         # should init cache too
         super(Values, self).__init__(storage)
 
         # should init cache too
         super(Values, self).__init__(storage)
 
@@ -72,3 +73,22 @@ class Values(Cache):
         return: owner object
         """
         return self._values.get(path, (default, None))[0]
         return: owner object
         """
         return self._values.get(path, (default, None))[0]
+
+    def set_information(self, key, value):
+        """updates the information's attribute
+        (which is a dictionary)
+
+        :param key: information's key (ex: "help", "doc"
+        :param value: information's value (ex: "the help string")
+        """
+        self._informations[key] = value
+
+    def get_information(self, key):
+        """retrieves one information's item
+
+        :param key: the item string (ex: "help")
+        """
+        if key in self._informations:
+            return self._informations[key]
+        else:
+            raise ValueError("not found")