def executeRun(self): inData = self.getInData() hasValidInDataSchema = False hasValidOutDataSchema = False if self.getInDataSchema() is not None: instance = inData schema = self.getInDataSchema() try: jsonschema.validate(instance=instance, schema=schema) hasValidInDataSchema = True except Exception as e: logger.exception(e) else: hasValidInDataSchema = True if hasValidInDataSchema: self._workingDirectory = UtilsPath.getWorkingDirectory( self, inData, workingDirectorySuffix=self._workingDirectorySuffix) self.writeInputData(inData) self._oldDir = os.getcwd() os.chdir(str(self._workingDirectory)) outData = self.run(inData) os.chdir(self._oldDir) else: raise RuntimeError("Schema validation error for inData") if self.getOutDataSchema() is not None: instance = outData schema = self.getOutDataSchema() try: jsonschema.validate(instance=instance, schema=schema) hasValidOutDataSchema = True except Exception as e: logger.exception(e) else: hasValidOutDataSchema = True if hasValidOutDataSchema: self.writeOutputData(outData) else: raise RuntimeError("Schema validation error for outData") if not os.listdir(str(self._workingDirectory)): os.rmdir(str(self._workingDirectory))
def setWorkingDirectory(self, inData): self._workingDirectory = UtilsPath.getWorkingDirectory(self, inData)