#!/usr/bin/env python import abc class FileProcessor: DEFAULT_NUMBER_OF_RETRIES = 0 DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS = 60 def __init__(self): self.configDict = {} @abc.abstractmethod def processFile(self, filePath, daqPath, experiment): return NotImplemented def configure(self): # Use this method for processor configuration pass def setConfigKeyValue(self, key, value): self.configDict[key] = value def getConfigKeyValue(self, key): return self.configDict.get(key) def setNumberOfRetries(self, nRetries): self.configDict['numberOfRetries'] = nRetries def getNumberOfRetries(self): self.configDict.get('numberOfRetries', self.DEFAULT_NUMBER_OF_RETRIES) def setRetryWaitPeriodInSeconds(self, waitPeriod): self.configDict['retryWaitPeriodInSeconds'] = waitPeriod def getRetryWaitPeriodInSeconds(self): self.configDict.get('retryWaitPeriodInSeconds', DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS)