Fix existing Driver.is_me's crashes if path is a directory.
authorW. Trevor King <wking@drexel.edu>
Sun, 15 Aug 2010 12:18:47 +0000 (08:18 -0400)
committerW. Trevor King <wking@drexel.edu>
Sun, 15 Aug 2010 12:18:47 +0000 (08:18 -0400)
I didn't add this at the curve level, since it seems reasonable that
someone might develop a curve format where the 'file' is a directory.

hooke/driver/__init__.py
hooke/driver/hdf5.py
hooke/driver/hemingway.py
hooke/driver/jpk.py
hooke/driver/mcs.py
hooke/driver/mfp1d.py
hooke/driver/mfp1dexport.py
hooke/driver/mfp3d.py
hooke/driver/picoforce.py
hooke/driver/tutorial.py
hooke/driver/wtk.py

index 4e37d79f07e16cf804782ffd70623031e2d8d92c..bc38a24515b78f08dd158a934095ada0927971b7 100644 (file)
@@ -25,6 +25,7 @@ to write your own to handle your lab's specific format.
 """
 
 import logging
+import os.path
 
 from ..config import Setting
 from ..util.pluggable import IsSubclass, construct_graph
index 2614319c01f9fe1dfbd2714a8d1c9a7f9c20dde6..f338324fdb978a45f8f7d6021dab5ea54f2d83c8 100644 (file)
@@ -21,6 +21,8 @@
 """Driver for text-exported HDF5 files from Igor pro
 """
 
+import os.path
+
 from .. import curve as lhc
 from .. import libhooke as lh
 
@@ -40,6 +42,8 @@ class hdf5Driver(lhc.Driver):
         self.filedata.close()
         
     def is_me(self):
+        if os.path.isdir(path):
+            return False
         self.raw_header=self.lines[0]      
                
         if 'IGP-HDF5-Hooke' in self.raw_header:
index 0c8ff36c1fa18a123adb34440f10d0f3df755abd..5803800191d6e8c942b3b1e78c2a888faed2ea17 100644 (file)
@@ -20,6 +20,7 @@
 """Library for interpreting Hemingway force spectroscopy files.
 """
 
+import os.path
 import numpy
 
 from .. import curve as curve
@@ -35,6 +36,8 @@ class HemingwayDriver (Driver):
         super(HemingwayDriver, self).__init__(name='hemingway')
 
     def is_me(self, path):
+        if os.path.isdir(path):
+            return False
         headlines = []
         with Closing(file(path, 'r')) as f:
             for i in range(2):
index 2cbb852d627ec5e93ccbeb928ce1dbce18b54e64..31d98104e0d22e6ba91085e894de3139e7a9db3d 100644 (file)
@@ -39,6 +39,8 @@ class JPKDriver (Driver):
         super(JPKDriver, self).__init__(name='jpk')
 
     def is_me(self, path):
+        if os.path.isdir(path):
+            return False
         if zipfile.is_zipfile(path):  # JPK file versions since at least 0.5
             with Closing(zipfile.ZipFile(path, 'r')) as f:
                 if 'header.properties' not in f.namelist():
index 366e9784938ec5018cec102ee28c8859c7e876f5..50a50292819ab3b943e70143ad9ce87be74c79a4 100644 (file)
@@ -99,6 +99,8 @@ class mcsDriver(lib.driver.Driver):
         return plot
 
     def is_me(self):
+        if os.path.isdir(path):
+            return False
         if self.filename[-3:].lower()=='mcs':
             return True
         else:
index 7f9f2f872e9537d4e606c4b77c6e62dd05327bdd..2c314bdf0407f302ff22ff76e1784eb49319cc33 100644 (file)
@@ -210,6 +210,8 @@ class mfp1dDriver(lib.driver.Driver):
         self.filedata.close()
 
     def is_me(self):
+        if os.path.isdir(path):
+            return False
         if len(self.lines) < 34:
             return False
 
index aefb5a5b12ad98e2f6f570b149e9e713346be3ff..174696b04aa73333ee8e4dcb5c0d65836113e8b1 100644 (file)
@@ -21,6 +21,7 @@
 """
 
 import os
+import os.path
 
 from .. import libhooke as lh
 from .. import curve as lhc
@@ -48,6 +49,8 @@ class mfp1dexportDriver(lhc.Driver):
         self.filedata.close()
 
     def is_me(self):
+        if os.path.isdir(path):
+            return False
         try:
             self.raw_header = self.lines[0:38]
         except:
index 63c1a28ed7f7f5b74e06d0d4fc19278c5218cf98..5e5c58f6ba6c6b6f5f830667c66cba89eba2dce7 100644 (file)
@@ -31,6 +31,7 @@ Hooke submission: Rolf Schmidt, Alberto Gomez-Casado 2009
 """
 
 import copy
+import os.path
 import pprint
 
 import numpy
@@ -53,6 +54,8 @@ class MFP3DDriver (Driver):
     def is_me(self, path):
         """Look for identifying fields in the IBW note.
         """
+        if os.path.isdir(path):
+            return False
         if not path.endswith('.ibw'):
             return False
         targets = ['Version:', 'XOPVersion:', 'ForceNote:']
index 94339d438964b76f97b29e1ee132e5998a5f388f..1f1fefb85c15b050d353491e71a3351456d3f967 100644 (file)
@@ -21,6 +21,7 @@
 """Driver for Veeco PicoForce force spectroscopy files.
 """
 
+import os.path
 import pprint
 import re
 import time
@@ -41,6 +42,8 @@ class PicoForceDriver (Driver):
         super(PicoForceDriver, self).__init__(name='picoforce')
 
     def is_me(self, path):
+        if os.path.isdir(path):
+            return False
         f = file(path, 'r')
         header = f.read(30)
         f.close()
index 7dfb6e84365185e3527fde152ed57d816dedd9b2..7fe529899be5b7c587fb881e795af06d16a5d98a 100644 (file)
@@ -61,6 +61,8 @@ file format is as following::
 that is, two plots with two datasets each.
 """
 
+import os.path
+
 # The following are relative imports.  See PEP 328 for details
 #   http://www.python.org/dev/peps/pep-0328/
 from .. import curve as curve # this module defines data containers.
@@ -105,6 +107,8 @@ class TutorialDriver (Driver):
         Hooke to understand what kind of files we're looking at
         automatically.
         """
+        if os.path.isdir(path):
+            return False
 
         f = open(path, 'r')
         header = f.readline() # we only need the first line
index 2b536fa66dd3511d36e23f7e5757225cf80b0f08..b39bdd95845347178f9c5c1d81d980da3fde6d79 100644 (file)
@@ -74,6 +74,8 @@ class WTKDriver (Driver):
             ]
 
     def is_me(self, path):
+        if os.path.isdir(path):
+            return False
         if not path.endswith('_unfold'):
             return False
         for p in self._paths(path):