Source code for resistics.time.utils

import os
from typing import Union

from resistics.time.reader import TimeReader


[docs]def getTimeReader(datapath: str) -> Union[TimeReader, bool]: """Get the data reader for a time data directory (and format) Format is determined through a mix of header and data file extensions. Not perfect, but it saves the user from having to specify each time Parameters ---------- datapath : str Path to data directory Returns ------- dataReader : DataReader (DataReaderATS, DataReaderSPAM, DataReaderInternal, DataReaderPhonix, DataReaderLemiB423, DataReaderLemiB423E) Data reader object """ import glob # Lemi B423 data files headerF = glob.glob(os.path.join(datapath, "*.h423")) if len(headerF) > 0: # then lemi b423 format from resistics.time.reader_lemib423 import TimeReaderLemiB423 return TimeReaderLemiB423(datapath) # Lemi B423E data files headerF = glob.glob(os.path.join(datapath, "*.h423E")) if len(headerF) > 0: from resistics.time.reader_lemib423e import TimeReaderLemiB423E return TimeReaderLemiB423E(datapath) # ATS data files headerF = glob.glob(os.path.join(datapath, "*.xml")) headerF = headerF + glob.glob(os.path.join(datapath, "*.XML")) if len(headerF) > 0: # then ats format from resistics.time.reader_ats import TimeReaderATS return TimeReaderATS(datapath) # SPAM data files with XTRX headers headerF = glob.glob(os.path.join(datapath, "*.xtrx")) headerF = headerF + glob.glob(os.path.join(datapath, "*.XTRX")) if len(headerF) > 0: from resistics.time.reader_spam import TimeReaderSPAM return TimeReaderSPAM(datapath) # SPAM data files with XTR headers headerF = glob.glob(os.path.join(datapath, "*.xtr")) headerF = headerF + glob.glob(os.path.join(datapath, "*.XTR")) if len(headerF) > 0: from resistics.time.reader_spam import TimeReaderSPAM return TimeReaderSPAM(datapath) # Phoenix data files headerF = glob.glob(os.path.join(datapath, "*.tbl")) headerF = headerF + glob.glob(os.path.join(datapath, "*.TBL")) if len(headerF) > 0: from resistics.time.reader_phoenix import TimeReaderPhoenix return TimeReaderPhoenix(datapath) # internal header format headerF = glob.glob(os.path.join(datapath, "*.hdr")) headerF = headerF + glob.glob(os.path.join(datapath, "*.HDR")) if len(headerF) > 0: dataF = glob.glob(os.path.join(datapath, "*.ascii")) if len(dataF) > 0: from resistics.time.reader_ascii import TimeReaderAscii return TimeReaderAscii(datapath) # otherwise assume internal format from resistics.time.reader_internal import TimeReaderInternal return TimeReaderInternal(datapath) # if nothing found, return false return False