def createFolder(EventPath): Folder = {} Logfile.red('Create working environment') Folder['cluster'] = os.path.join(EventPath, 'cluster') if os.access(Folder['cluster'], os.F_OK) is False: os.makedirs(Folder['cluster']) if os.access(os.getcwd(), os.W_OK): basedir = os.path.join(EventPath, 'work') sembdir = os.path.join(basedir, 'semblance') ascdir = os.path.join(basedir, 'asc') mseeddir = os.path.join(basedir, 'mseed') Folder['base'] = basedir Folder['semb'] = sembdir Folder['asc'] = ascdir Folder['mseed'] = mseeddir Folder['event'] = EventPath else: Logfile.abort('create Folder: No write permissions for ' + os.getcwd()) Folder['config'] = os.path.join(os.getcwd(), 'skeleton') return Folder
def checkKeys(conf, keyList, optional=False): if type(keyList) is str: list1 = list(keyList) else: list1 = keyList if not optional: Basic.checkExistsKeys(conf, list1, isAbort=True) eventDir = Globals.EventDir() isOk = True for key in list1: val = conf[key] msg = None if key == duration: msg = Basic.checkGreaterZero(val) elif key in [mindist, maxdist]: msg = Basic.checkNotNegative(val) elif key in [keyfilefolder, metaCatalog]: Basic.checkExistsDir(os.path.join(eventDir, val), isAbort=True) elif key in [blacklist, mail, pwd]: continue if msg is not None: isOk = Logfile.error('Key <' + key + '> in config file: ' + msg) if not isOk: Logfile.abort() return True
def existsHTML_Page(url, text=None, withComment=False, isAbort=False): h = httplib2.Http() try: resp = h.request(url, 'HEAD') status = int(resp[0]['status']) if status < 400: return True # page exists except: status = 104 # error: [Errno 104] Connection reset by peer ??? if withComment: s = 'HTML page not found, error = ' + str(status) if text is None: Logfile.error(s, url) else: Logfile.error(text, s, url) if isAbort: Logfile.abort() return False
def checkExistsDir(dirName, isAbort=False): if os.path.isdir(dirName): return True Logfile.error('Cannot find directory', dirName) if isAbort: Logfile.abort() return False
def checkFileExists(fileName, isAbort=False): if os.path.isfile(fileName): return True Logfile.fileOpenError(fileName) if isAbort: Logfile.abort('') else: return False
def checkExistsKeys(dict, keyList, isAbort=False): isOk = True for key in keyList: if not key in dict: isOk = Logfile.error('Key <' + str(key) + '> missing in config file') if isOk: return True elif isAbort: Logfile.abort() return False
def createDirectory(dirName, optional=False): if os.path.isdir(dirName): return True os.makedirs(dirName) if os.path.isdir(dirName): return True else: Logfile.error('Cannot open directory', dirName) if not optional: Logfile.abort() return False
def writeWaveform(Folder, station, Stream, flag, network): if flag == 'U': s1 = 'unfiltered' elif flag == 'F': s1 = 'filtered' elif flag == 'R': s1 = 'resampled' else: Logfile.abort('writeWaveform: Illegal flag <' + flag + '>') fname = ('%s-%s-%s.mseed') % (network, station, flag) name = os.path.join(Folder['mseed'], fname) Stream.write(name, format='MSEED') Logfile.add('%s stream for station %s written ' % (s1, station))
def run(self): Logfile.init(self.runTimeLog, self.errorLog) Logfile.setStartMsg(self.version) if not self.extern.init(): Logfile.abort() try: ret = self.extern.process() if ret: msg = 'Palantiri finished' else: msg = 'Palantiri finished with error - maybe Sauron looked back?' except KeyboardInterrupt: msg = 'Gandalf made Pippin drop the Palantiri by Control C' ret = False self.extern.finish() Logfile.showLabel(msg) return ret
def _error0(self, msg): Logfile.error(msg) Logfile.abort()