code: def open_acqdata(filename, user='unknown', filemode='w-'):
      
      if filename.lower().endswith((".hdf5", ".h5")):
          return HDF5Data(filename, user, filemode)
      elif filename.lower().endswith((".pst", ".raw")):
          return BatlabData(filename, user, filemode)
      else:
          print "File format not supported: ", filename
docs: Opens and returns the correct AcquisitionData object according to filename extention.
  
      Supported extentions:
      * .hdf5, .h5 for sparkle data
      * .pst, .raw for batlab data. Both the .pst and .raw file must be co-located and share the same base file name, but only one should be provided to this function
      
      see :class:`AcquisitionData<sparkle.data.acqdata.AcquisitionData>`
  
      examples (if data file already exists)::
  
          data = open_acqdata('myexperiment.hdf5', filemode='r')
          print data.dataset_names()
  
      for batlab data::
  
          data = open('mouse666.raw', filemode='r')
          print data.dataset_names()