[Yt-svn] yt-commit r1597 - trunk/yt/lagos
mturk at wrangler.dreamhost.com
mturk at wrangler.dreamhost.com
Tue Jan 26 09:54:23 PST 2010
Author: mturk
Date: Tue Jan 26 09:54:21 2010
New Revision: 1597
URL: http://yt.enzotools.org/changeset/1597
Log:
Adding parameter "storage_filename" to the EnzoStaticOutput instantiation, in
cases where the output file is not in a writeable directory and you want to
save, for instance, projections
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 Tue Jan 26 09:54:21 2010
@@ -135,16 +135,19 @@
def _initialize_data_storage(self):
if not ytcfg.getboolean('lagos','serialize'): return
- if os.path.isfile(os.path.join(self.directory,
- "%s.yt" % self.pf["CurrentTimeIdentifier"])):
- fn = os.path.join(self.directory,"%s.yt" % self.pf["CurrentTimeIdentifier"])
- else:
- fn = os.path.join(self.directory,
- "%s.yt" % self.parameter_file.basename)
+ fn = self.pf.storage_filename
+ if fn is None:
+ if os.path.isfile(os.path.join(self.directory,
+ "%s.yt" % self.pf["CurrentTimeIdentifier"])):
+ fn = os.path.join(self.directory,"%s.yt" % self.pf["CurrentTimeIdentifier"])
+ else:
+ fn = os.path.join(self.directory,
+ "%s.yt" % self.parameter_file.basename)
+ dir_to_check = os.path.dirname(fn)
if os.path.isfile(fn):
writable = os.access(fn, os.W_OK)
else:
- writable = os.access(self.directory, os.W_OK)
+ writable = os.access(dir_to_check, os.W_OK)
if ytcfg.getboolean('lagos','onlydeserialize') or not writable:
self._data_mode = mode = 'r'
else:
@@ -349,8 +352,11 @@
"%s.hierarchy" % (pf.parameter_filename))
harray_fn = self.hierarchy_filename[:-9] + "harrays"
if os.path.exists(harray_fn):
- harray_fp = h5py.File(harray_fn)
- self.num_grids = harray_fp["/Level"].len()
+ try:
+ harray_fp = h5py.File(harray_fn)
+ self.num_grids = harray_fp["/Level"].len()
+ except h5py.h5.H5Error:
+ pass
elif os.path.getsize(self.hierarchy_filename) == 0:
raise IOError(-1,"File empty", self.hierarchy_filename)
self.directory = os.path.dirname(self.hierarchy_filename)
@@ -489,7 +495,10 @@
def _parse_binary_hierarchy(self):
mylog.info("Getting the binary hierarchy")
- f = h5py.File(self.hierarchy_filename[:-9] + "harrays")
+ try:
+ f = h5py.File(self.hierarchy_filename[:-9] + "harrays")
+ except h5py.h5.H5Error:
+ return False
self.grid_dimensions[:] = f["/ActiveDimensions"][:]
self.grid_left_edge[:] = f["/LeftEdges"][:]
self.grid_right_edge[:] = f["/RightEdges"][:]
@@ -522,7 +531,10 @@
if self._data_mode == 'r': return
if self.data_style != "enzo_packed_3d": return
mylog.info("Storing the binary hierarchy")
- f = h5py.File(self.hierarchy_filename[:-9] + "harrays", "w")
+ try:
+ f = h5py.File(self.hierarchy_filename[:-9] + "harrays", "w")
+ except h5py.h5.FileError:
+ return
f.create_dataset("/LeftEdges", data=self.grid_left_edge)
f.create_dataset("/RightEdges", data=self.grid_right_edge)
parents, procs, levels = [], [], []
Modified: trunk/yt/lagos/OutputTypes.py
==============================================================================
--- trunk/yt/lagos/OutputTypes.py (original)
+++ trunk/yt/lagos/OutputTypes.py Tue Jan 26 09:54:21 2010
@@ -168,7 +168,8 @@
_fieldinfo_class = EnzoFieldContainer
def __init__(self, filename, data_style=None,
parameter_override = None,
- conversion_override = None):
+ conversion_override = None,
+ storage_filename = None):
"""
This class is a stripped down class that simply reads and parses
*filename* without looking at the hierarchy. *data_style* gets passed
@@ -182,6 +183,7 @@
self.__parameter_override = parameter_override
if conversion_override is None: conversion_override = {}
self.__conversion_override = conversion_override
+ self.storage_filename = storage_filename
StaticOutput.__init__(self, filename, data_style)
if "InitialTime" not in self.parameters:
More information about the yt-svn
mailing list