summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--obmc/utils/pathtree.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/obmc/utils/pathtree.py b/obmc/utils/pathtree.py
index da56cfb..dc48609 100644
--- a/obmc/utils/pathtree.py
+++ b/obmc/utils/pathtree.py
@@ -94,6 +94,7 @@ class PathTreeKeyIterator(PathTreeItemIterator):
class PathTree:
def __init__(self):
self.root = {}
+ self.cache = {}
def _try_delete_parent(self, elements):
if len(elements) == 1:
@@ -131,6 +132,7 @@ class PathTree:
return True
def __delitem__(self, key):
+ del self.cache[key]
kids = 'children'
elements = ['/'] + list(filter(bool, key.split('/')))
d = self.root
@@ -144,6 +146,7 @@ class PathTree:
self._try_delete_parent(elements)
def __setitem__(self, key, value):
+ self.cache[key] = value
kids = 'children'
elements = ['/'] + list(filter(bool, key.split('/')))
d = self.root
@@ -154,7 +157,7 @@ class PathTree:
d[elements[-1]].update({kids: children, 'data': value})
def __getitem__(self, key):
- return self._get_node(key).get('data')
+ return self.cache[key]
def setdefault(self, key, default):
if not self.get(key):
OpenPOWER on IntegriCloud