Skip to content
Snippets Groups Projects
fileProcessor.py 2.13 KiB
Newer Older
#!/usr/bin/env python

import abc
class FileProcessor:

    DEFAULT_NUMBER_OF_RETRIES = 0
    DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS = 60

    def __init__(self, dependsOn=[]):
        self.configDict = {}
        self.processorName = self.__class__.__name__
        self.dependsOn = dependsOn

    @abc.abstractmethod
    def processDirectory(self, directoryInfo):
        return NotImplemented

    @abc.abstractmethod
        return NotImplemented

    def replaceTemplates(self, inputString, fileInfo):
sveseli's avatar
sveseli committed
        experimentName = fileInfo.get('experimentName', '')
        outputString = inputString.replace('EXPERIMENT_NAME', experimentName)
        return outputString
    
    def checkUploadFilesForProcessing(self, filePathsDict, uploadInfo):
        return {}
            
    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 setNumberOfRetriesIfNotSet(self, nRetries):
        if not self.configDict.has_key('numberOfRetries'):
            self.configDict['numberOfRetries'] = nRetries

    def setNumberOfRetries(self, nRetries):
        self.configDict['numberOfRetries'] = nRetries

    def getNumberOfRetries(self):
        return self.configDict.get('numberOfRetries', self.DEFAULT_NUMBER_OF_RETRIES)
    def setRetryWaitPeriodInSecondsIfNotSet(self, waitPeriod):
        if not self.configDict.has_key('retryWaitPeriodInSeconds'):
            self.configDict['retryWaitPeriodInSeconds'] = waitPeriod

    def setRetryWaitPeriodInSeconds(self, waitPeriod):
        self.configDict['retryWaitPeriodInSeconds'] = waitPeriod

    def getRetryWaitPeriodInSeconds(self):
        return self.configDict.get('retryWaitPeriodInSeconds', self.DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS)
    def setSkipOnFailure(self, skipOnFailure):
        self.configDict['skipOnFailure'] = skipOnFailure
        
    def getSkipOnFailure(self):
        return self.configDict.get('skipOnFailure', False)