# HG changeset patch # User casties # Date 1383662305 -3600 # Node ID d4216a848547fcdfcf6fbd95c800e97497ae27a2 # Parent afc96bc56817032e2a271352d4251ce348d79dc2 fixed problem that reading the project tree changes it. diff -r afc96bc56817 -r d4216a848547 HashTree.py --- 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: diff -r afc96bc56817 -r d4216a848547 MPIWGProjects.py --- 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'):