Improve prettyprint message for empty HDF5 files.
authorW. Trevor King <wking@drexel.edu>
Fri, 16 Mar 2012 12:57:41 +0000 (08:57 -0400)
committerW. Trevor King <wking@drexel.edu>
Fri, 16 Mar 2012 12:57:41 +0000 (08:57 -0400)
h5config/storage/hdf5.py

index 34f4faea4f55423ab0ccdad97aa2b85632d99762..6af6b2decfe64a96e80fddf79f6c0fd4e29ead8d 100644 (file)
@@ -18,6 +18,7 @@
 """HDF5 backend implementation
 """
 
+import os.path as _os_path
 import types as _types
 
 import h5py as _h5py
@@ -32,9 +33,16 @@ def pprint_HDF5(*args, **kwargs):
     print pformat_HDF5(*args, **kwargs)
 
 def pformat_HDF5(filename, group='/'):
-    with _h5py.File(filename, 'r') as f:
-        cwg = f[group]
-        ret = '\n'.join(_pformat_hdf5(cwg))
+    try:
+        with _h5py.File(filename, 'r') as f:
+            cwg = f[group]
+            ret = '\n'.join(_pformat_hdf5(cwg))
+    except IOError, e:
+        if 'unable to open' in e.message:
+            if _os_path.getsize(filename) == 0:
+                return 'EMPTY'
+            return None
+        raise
     return ret
 
 def _pformat_hdf5(cwg, depth=0):