Forked from
DM / dm-docs
261 commits behind, 654 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
fileProcessor.py 1.53 KiB
#!/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
def processFile(self, fileInfo):
return NotImplemented
def replaceTemplates(self, inputString, fileInfo):
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 setNumberOfRetries(self, nRetries):
self.configDict['numberOfRetries'] = nRetries
def getNumberOfRetries(self):
return self.configDict.get('numberOfRetries', self.DEFAULT_NUMBER_OF_RETRIES)
def setRetryWaitPeriodInSeconds(self, waitPeriod):
self.configDict['retryWaitPeriodInSeconds'] = waitPeriod
def getRetryWaitPeriodInSeconds(self):
return self.configDict.get('retryWaitPeriodInSeconds', self.DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS)