[Yt-svn] yt-commit r1373 - trunk/yt/lagos
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Wed Jul 15 10:51:25 PDT 2009
Author: mturk
Date: Wed Jul 15 10:51:24 2009
New Revision: 1373
URL: http://yt.spacepope.org/changeset/1373
Log:
Updates to h5py interface -- if you were having trouble with h5py-1.2.0 this
should fix it, and it should also help with some old .yt files being considered
'corrupt' by automatically wiping some components.
Also, if you don't have hashlib, it will use a different hash than md5 for
parameter files.
Modified:
trunk/yt/lagos/HierarchyType.py
trunk/yt/lagos/OutputTypes.py
Modified: trunk/yt/lagos/HierarchyType.py
==============================================================================
--- trunk/yt/lagos/HierarchyType.py (original)
+++ trunk/yt/lagos/HierarchyType.py Wed Jul 15 10:51:24 2009
@@ -157,14 +157,18 @@
"""
if self._data_mode != 'a': return
+ if "ArgsError" in dir(h5py.h5):
+ exception = h5py.h5.ArgsError
+ else:
+ exception = h5py.h5.H5Error
try:
node_loc = self._data_file[node]
if name in node_loc.listnames() and force:
mylog.info("Overwriting node %s/%s", node, name)
del self._data_file[node][name]
elif name in node_loc.listnames() and passthrough:
- return
- except h5py.h5.ArgsError:
+ return
+ except exception:
pass
myGroup = self._data_file['/']
for q in node.split('/'):
@@ -855,9 +859,9 @@
self.gridLevels[secondGrid] = self.gridLevels[firstGrid]
pTree = [ [ grid.id - 1 for grid in self.gridTree[i] ] for i in range(self.num_grids) ]
self.gridReverseTree[0] = -1
- self.save_data(cPickle.dumps(pTree, protocol=-1), "/", "Tree")
- self.save_data(na.array(self.gridReverseTree), "/", "ReverseTree")
- self.save_data(self.gridLevels, "/", "Levels")
+ self.save_data(cPickle.dumps(pTree, protocol=-1), "/", "Tree", force=True)
+ self.save_data(na.array(self.gridReverseTree), "/", "ReverseTree", force=True)
+ self.save_data(self.gridLevels, "/", "Levels", force=True)
@parallel_blocking_call
def _populate_hierarchy(self):
@@ -881,12 +885,15 @@
self.__setup_grid_tree()
else:
mylog.debug("Grabbing serialized tree data")
- pTree = cPickle.loads(treeArray.value)
- self.gridReverseTree = list(self.get_data("/","ReverseTree"))
- self.gridTree = [ [ weakref.proxy(self.grids[i]) for i in pTree[j] ]
- for j in range(self.num_grids) ]
- self.gridLevels = self.get_data("/","Levels")[:]
- mylog.debug("Grabbed")
+ try:
+ pTree = cPickle.loads(treeArray.value)
+ self.gridReverseTree = list(self.get_data("/","ReverseTree"))
+ self.gridTree = [ [ weakref.proxy(self.grids[i]) for i in pTree[j] ]
+ for j in range(self.num_grids) ]
+ self.gridLevels = self.get_data("/","Levels")[:]
+ mylog.debug("Grabbed")
+ except EOFError:
+ self.__setup_grid_tree()
for i,v in enumerate(self.gridReverseTree):
# For multiple grids on the root level
if v == -1: self.gridReverseTree[i] = None
Modified: trunk/yt/lagos/OutputTypes.py
==============================================================================
--- trunk/yt/lagos/OutputTypes.py (original)
+++ trunk/yt/lagos/OutputTypes.py Wed Jul 15 10:51:24 2009
@@ -84,10 +84,13 @@
return self.basename
def _hash(self):
- import hashlib
s = "%s;%s;%s" % (self.basename,
self["InitialTime"], self["CurrentTimeIdentifier"])
- return hashlib.md5(s).hexdigest()
+ try:
+ import hashlib
+ return hashlib.md5(s).hexdigest()
+ except ImportError:
+ return s.replace(";", "*")
@classmethod
def _is_valid(cls, *args, **kwargs):
More information about the yt-svn
mailing list