Mercurial > hg > MPIWGWeb
changeset 229:d4216a848547
fixed problem that reading the project tree changes it.
author | casties |
---|---|
date | Tue, 05 Nov 2013 15:38:25 +0100 |
parents | afc96bc56817 |
children | feb2cb6241be |
files | HashTree.py MPIWGProjects.py |
diffstat | 2 files changed, 15 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/HashTree.py Tue Nov 05 13:58:45 2013 +0100 +++ b/HashTree.py Tue Nov 05 15:38:25 2013 +0100 @@ -13,20 +13,32 @@ self.value = value self.children = children - def setValue(self, val, append=True): + + def setValue(self, val, append=True, unique=False): """set or append to the value""" if (self.value is not None) or append: if isinstance(self.value, list): # old value is list + if unique and val in self.value: + logging.debug("setValue: list HAS SAME: %s"%repr(val)) + return + self.value.append(val) + elif self.value is not None: # old value is scalar + if unique and val == self.value: + logging.debug("setValue: scalar IS SAME: %s"%repr(val)) + return + self.value = [self.value, val] + else: # old value is None self.value = val else: + # old value is None self.value = val @@ -36,7 +48,7 @@ if onlyFirst and not asList: return self.value[0] else: - return self.value + return self.value[:] else: if asList: if self.value is None:
--- a/MPIWGProjects.py Tue Nov 05 13:58:45 2013 +0100 +++ b/MPIWGProjects.py Tue Nov 05 15:38:25 2013 +0100 @@ -1876,7 +1876,7 @@ """Return the project hierarchy tree (and cache it). Returns HashTree instance.""" - tree = self._v_projectTree + tree = self._v_projectTree if tree is None: tree = HashTree(keySeparator='.', keyFn=getInt) for p in self.objectValues(spec='MPIWGProject'):