Source code for pypore.i_o

# TODO implement tests for this!
[docs]def get_reader_from_filename(filename): """ Returns an instance of an implementation of :py:class:`pypore.i_o.abstract_reader.AbstractReader` based on the extension of filename. :param string filename: Filename to get the reader for. :returns: An open reader of an implementation of :py:class:`pypore.i_o.abstract_reader.AbstractReader` based on the\ extension of filename, for the following extensions. - '.h5' extension: returns an instance of :py:class:`pypore.i_o.data_file_reader.DataFileReader`. - '.log' extension: returns :py:class:`pypore.i_o.chimera_reader.ChimeraReader`. If the file extension is not in the above list, None is returned. :raise: Exception - this method opens a reader, which could throw an exception. >>> reader = get_reader_from_filename('test.h5') # Returns an open DataFileReader >>> data = reader.get_all_data() """ # TODO implement for other file types # if '.h5' in filename: # return open_pypore_file(filename, decimate) if '.h5' in filename: from data_file_reader import DataFileReader as ReaderClass elif '.log' in filename: from chimera_reader import ChimeraReader as ReaderClass else: raise ValueError( "No default match for the extension of {0}. Default extensions include '.h5', '.log'.".format(filename)) reader = ReaderClass(filename) return reader # elif '.hkd' in filename: # return open_heka_file(filename, decimate) # elif '.mat' in filename: # return open_gabys_file(filename, decimate) # # return {'error': 'File not specified with correct extension. Possibilities are: \'.log\', \'.hkd\''}