def buildParametersDialog(self): for input in self.process.inputs: inputType = type(input) if inputType == VectorInput: self.addParameter( ParameterVector(str(input.identifier), str(input.title), ParameterVector.VECTOR_TYPE_ANY, input.minOccurs == 0)) elif inputType == MultipleVectorInput: self.addParameter( ParameterMultipleInput(str(input.identifier), str(input.title), ParameterVector.VECTOR_TYPE_ANY, input.minOccurs == 0)) elif inputType == StringInput: self.addParameter( ParameterString(str(input.identifier), str(input.title))) elif inputType == TextInput: self.addParameter( ParameterString(str(input.identifier), str(input.title))) elif inputType == RasterInput: self.addParameter( ParameterRaster(str(input.identifier), str(input.title), input.minOccurs == 0)) elif inputType == MultipleRasterInput: self.addParameter( ParameterMultipleInput(str(input.identifier), str(input.title), ParameterMultipleInput.TYPE_RASTER, input.minOccurs == 0)) elif inputType == FileInput: #self.addParameter(ParameterFile(str(input.identifier), str(input.title), False, input.minOccurs == 0)) self.addParameter( ParameterFile(str(input.identifier), str(input.title))) elif inputType == MultipleFileInput: pass #Not supported elif inputType == SelectionInput: self.addParameter( ParameterSelection(str(input.identifier), str(input.title), input.valList)) elif inputType == ExtentInput: self.addParameter( ParameterExtent(str(input.identifier), str(input.title))) elif inputType == CrsInput: self.addParameter( ParameterCrs(str(input.identifier), "Projection", None)) for output in self.process.outputs: outputType = type(output) if outputType == VectorOutput: self.addOutput( OutputVector(str(output.identifier), str(output.title))) elif outputType == RasterOutput: self.addOutput( OutputRaster(str(output.identifier), str(output.title))) elif outputType == StringOutput: self.addOutput( OutputString(str(output.identifier), str(output.title)))
def defineCharacteristics(self): self.name = 'Evaluate Novel Conditions' self.cmdName = 'novelcondition' self.group = 'Data Analysis' self.addParameter( ParameterMultipleInput(self.REFERENCE, 'Reference layers', ParameterMultipleInput.TYPE_RASTER, False)) self.addParameter( ParameterMultipleInput(self.PROJECTION, 'Projection layers', ParameterMultipleInput.TYPE_RASTER, False)) self.addOutput(OutputRaster(self.RESULT, 'Novel Conditions Map'))
def defineCharacteristics(self): self.name = "Merge" self.group = "[GDAL] Miscellaneous" self.addParameter(ParameterMultipleInput(merge.INPUT, "Input layers", ParameterMultipleInput.TYPE_RASTER)) self.addParameter(ParameterBoolean(merge.PCT, "Grab pseudocolor table from first layer", False)) self.addParameter(ParameterBoolean(merge.SEPARATE, "Layer stack", False)) self.addOutput(OutputRaster(merge.OUTPUT, "Output layer"))
def defineCharacteristics(self): self.name = 'Unify Environmental Layers' self.cmdName = 'unification' self.group = 'Data Preperation' self.addParameter(ParameterMultipleInput(self.ENV,'Environmental layers',ParameterMultipleInput.TYPE_RASTER, False)) self.addParameter(ParameterNumber(self.NA, "Nodata value", -9999 , None, -9999)) self.addParameter(ParameterString(self.OUTDIR, 'Output folder'))
def defineCharacteristics(self): self.name = "nviz" self.group = "Visualization(NVIZ)" self.addParameter( ParameterMultipleInput(nviz.ELEVATION, "Elevation layers", ParameterMultipleInput.TYPE_RASTER, True)) self.addParameter( ParameterMultipleInput(nviz.VECTOR, "Vector layers", ParameterMultipleInput.TYPE_VECTOR_ANY, True)) self.addParameter( ParameterExtent(nviz.GRASS_REGION_EXTENT_PARAMETER, "GRASS region extent")) self.addParameter( ParameterNumber(self.GRASS_REGION_CELLSIZE_PARAMETER, "GRASS region cellsize (leave 0 for default)", 0, None, 0.0))
def defineCharacteristics(self): self.name = 'Maximum Entropy Modelling' self.cmdName = 'maxent' self.group = 'Species Distribution Modelling' self.addParameter(ParameterVector(self.SPECIES, 'Species localities',[ParameterVector.VECTOR_TYPE_POINT,ParameterTable],False)) # Allow point self.addParameter(ParameterTableField(Maxent.SPEC_COL, "Species Name", Maxent.SPECIES)) self.addParameter(ParameterMultipleInput(self.ENV,'Environmental layers',ParameterMultipleInput.TYPE_RASTER, False)) self.addParameter(ParameterTable(self.PARAM, '(Optional) MAXENT parameter file'))
def defineCharacteristics(self): self.name = 'Calculate Niche Overlap Statistics' self.cmdName = 'nicheoverlap' self.group = 'Data Analysis' self.addParameter( ParameterMultipleInput(self.ENV, 'Prediction layers', ParameterMultipleInput.TYPE_RASTER, False)) self.addParameter(ParameterSelection(self.METRIC, "Metric", self.m, 0)) self.addOutput(OutputTable(self.RESULTS, 'Result output'))
def defineCharacteristics(self): self.name = 'Merge' self.group = '[GDAL] Miscellaneous' self.addParameter( ParameterMultipleInput(merge.INPUT, 'Input layers', ParameterMultipleInput.TYPE_RASTER)) self.addParameter( ParameterBoolean(merge.PCT, 'Grab pseudocolor table from first layer', False)) self.addParameter( ParameterBoolean(merge.SEPARATE, 'Layer stack', False)) self.addOutput(OutputRaster(merge.OUTPUT, 'Output layer'))
def defineCharacteristics(self): self.name = 'nviz' self.group = 'Visualization(NVIZ)' self.addParameter( ParameterMultipleInput(nviz.ELEVATION, 'Raster file(s) for elevation', ParameterMultipleInput.TYPE_RASTER, True)) self.addParameter( ParameterMultipleInput(nviz.VECTOR, 'Vector lines/areas overlay file(s)', ParameterMultipleInput.TYPE_VECTOR_ANY, True)) self.addParameter( ParameterMultipleInput(nviz.COLOR, 'Raster file(s) for color', ParameterMultipleInput.TYPE_RASTER, True)) self.addParameter( ParameterExtent(nviz.GRASS_REGION_EXTENT_PARAMETER, 'GRASS region extent')) self.addParameter( ParameterNumber(self.GRASS_REGION_CELLSIZE_PARAMETER, 'GRASS region cellsize (leave 0 for default)', 0, None, 0.0))
def defineCharacteristics(self): self.name = 'Raster calculator' self.cmdname = 'Grid Calculator' self.undecoratedGroup = "grid_calculus" self.group = SagaGroupNameDecorator.getDecoratedName( self.undecoratedGroup) grids = ParameterRaster(self.GRIDS, 'Input layers', True) grids.hidden = True self.addParameter(grids) self.addParameter( ParameterMultipleInput(self.XGRIDS, 'Input layers', ParameterMultipleInput.TYPE_RASTER, False)) self.addParameter(ParameterString(self.FORMULA, "Formula")) self.addOutput(OutputRaster(self.RESULT, "Result"))
def defineCharacteristics(self): self.name = 'Multivariate Environmental Similarity Surfaces' self.cmdName = 'mess' self.group = 'Data Analysis' self.addParameter( ParameterVector( self.SPECIES, 'Species localities', [ParameterVector.VECTOR_TYPE_POINT, ParameterTable], False)) self.addParameter( ParameterMultipleInput(self.ENV, 'Environmental layers', ParameterMultipleInput.TYPE_RASTER, False)) self.addOutput(OutputRaster(self.RESULTS, 'MESS'))
def defineCharacteristics(self): self.name = 'Logistic Regression' self.cmdName = 'logisticreg' self.group = 'Species Distribution Modelling' self.addParameter( ParameterVector( self.SPECIES, 'Species localities', [ParameterVector.VECTOR_TYPE_POINT, ParameterTable], False)) # Allow point self.addParameter( ParameterMultipleInput(self.ENV, 'Environmental layers', ParameterMultipleInput.TYPE_RASTER, False)) self.addOutput(OutputRaster(self.OUT_PRED, 'Output Prediction')) self.addOutput(OutputTable(self.OUT_PRED_RES, 'Stats'))
def processParameterLine(self, line): param = None out = None line = line.replace('#', '') # If the line is in the format of the text description files for # normal algorithms, then process it using parameter and output # factories if '|' in line: self.processDescriptionParameterLine(line) return if line == "nomodeler": self.showInModeler = False tokens = line.split('=', 1) desc = self.createDescriptiveName(tokens[0]) if tokens[1].lower().strip() == 'group': self.group = tokens[0] return if tokens[1].lower().strip() == 'name': self.name = tokens[0] return if tokens[1].lower().strip() == 'raster': param = ParameterRaster(tokens[0], desc, False) elif tokens[1].lower().strip() == 'vector': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_ANY]) elif tokens[1].lower().strip() == 'vector point': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_POINT]) elif tokens[1].lower().strip() == 'vector line': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_LINE]) elif tokens[1].lower().strip() == 'vector polygon': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_POLYGON]) elif tokens[1].lower().strip() == 'table': param = ParameterTable(tokens[0], desc, False) elif tokens[1].lower().strip() == 'multiple raster': param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_RASTER) param.optional = False elif tokens[1].lower().strip() == 'multiple vector': param = ParameterMultipleInput( tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY) param.optional = False elif tokens[1].lower().strip().startswith('selection'): options = tokens[1].strip()[len('selection '):].split(';') param = ParameterSelection(tokens[0], desc, options) elif tokens[1].lower().strip().startswith('boolean'): default = tokens[1].strip()[len('boolean') + 1:] param = ParameterBoolean(tokens[0], desc, default) elif tokens[1].lower().strip() == 'extent': param = ParameterExtent(tokens[0], desc) elif tokens[1].lower().strip() == 'file': param = ParameterFile(tokens[0], desc, False) elif tokens[1].lower().strip() == 'folder': param = ParameterFile(tokens[0], desc, True) elif tokens[1].lower().strip().startswith('number'): default = tokens[1].strip()[len('number') + 1:] param = ParameterNumber(tokens[0], desc, default=default) elif tokens[1].lower().strip().startswith('field'): field = tokens[1].strip()[len('field') + 1:] found = False for p in self.parameters: if p.name == field: found = True break if found: param = ParameterTableField(tokens[0], desc, field) elif tokens[1].lower().strip().startswith('string'): default = tokens[1].strip()[len('string') + 1:] param = ParameterString(tokens[0], desc, default) elif tokens[1].lower().strip().startswith('longstring'): default = tokens[1].strip()[len('longstring') + 1:] param = ParameterString(tokens[0], desc, default, multiline=True) elif tokens[1].lower().strip().startswith('crs'): default = tokens[1].strip()[len('crs') + 1:] if not default: default = 'EPSG:4326' param = ParameterCrs(tokens[0], desc, default) elif tokens[1].lower().strip().startswith('output raster'): out = OutputRaster() elif tokens[1].lower().strip().startswith('output vector'): out = OutputVector() elif tokens[1].lower().strip().startswith('output table'): out = OutputTable() elif tokens[1].lower().strip().startswith('output html'): out = OutputHTML() elif tokens[1].lower().strip().startswith('output file'): out = OutputFile() subtokens = tokens[1].split(' ') if len(subtokens > 2): out.ext = subtokens[2] elif tokens[1].lower().strip().startswith('output directory'): out = OutputDirectory() elif tokens[1].lower().strip().startswith('output number'): out = OutputNumber() elif tokens[1].lower().strip().startswith('output string'): out = OutputString() if param is not None: self.addParameter(param) elif out is not None: out.name = tokens[0] out.description = desc self.addOutput(out) else: raise WrongScriptException( 'Could not load script:' + self.descriptionFile or '' + '.\n Problem with line "' + line + '"')
def processParameterLine(self, line): param = None out = None line = line.replace('#', '') if line.lower().strip().startswith('report'): self.report = True self.addOutput(OutputHTML(RAlgorithm.KNITR_REPORT, 'HTML Report')) return if line.lower().strip().startswith('showplots'): self.showPlots = True self.addOutput(OutputHTML(RAlgorithm.RPLOTS, 'R Plots')) return if line.lower().strip().startswith('dontuserasterpackage'): self.useRasterPackage = False return if line.lower().strip().startswith('passfilenames'): self.passFileNames = True return if line.lower().strip().startswith('shapefilespackage'): self.useShapefilesPackage = True return tokens = line.split('=') desc = self.createDescriptiveName(tokens[0]) if tokens[1].lower().strip() == 'group': self.group = tokens[0] return if tokens[1].lower().strip().startswith('raster'): param = ParameterRaster(tokens[0], desc, False) elif tokens[1].lower().strip() == 'vector': param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_ANY]) elif tokens[1].lower().strip() == 'table': param = ParameterTable(tokens[0], desc, False) elif tokens[1].lower().strip().startswith('multiple raster'): param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_RASTER) param.optional = False elif tokens[1].lower().strip() == 'multiple vector': param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY) param.optional = False elif tokens[1].lower().strip().startswith('selection'): options = tokens[1].strip()[len('selection'):].split(';') param = ParameterSelection(tokens[0], desc, options) elif tokens[1].lower().strip().startswith('boolean'): default = tokens[1].strip()[len('boolean') + 1:] param = ParameterBoolean(tokens[0], desc, default) elif tokens[1].lower().strip().startswith('number'): try: default = float(tokens[1].strip()[len('number') + 1:]) param = ParameterNumber(tokens[0], desc, default=default) except: raise WrongScriptException('Could not load R script:' + self.descriptionFile + '.\n Problem with line "' + line + '"') elif tokens[1].lower().strip().startswith('field'): field = tokens[1].strip()[len('field') + 1:] found = False for p in self.parameters: if p.name == field: found = True break if found: param = ParameterTableField(tokens[0], desc, field) elif tokens[1].lower().strip() == 'extent': param = ParameterExtent(tokens[0], desc) elif tokens[1].lower().strip() == 'file': param = ParameterFile(tokens[0], desc, False) elif tokens[1].lower().strip() == 'folder': param = ParameterFile(tokens[0], desc, True) elif tokens[1].lower().strip().startswith('string'): default = tokens[1].strip()[len('string') + 1:] param = ParameterString(tokens[0], desc, default) elif tokens[1].lower().strip().startswith('output raster'): out = OutputRaster() elif tokens[1].lower().strip().startswith('output vector'): out = OutputVector() elif tokens[1].lower().strip().startswith('output table'): out = OutputTable() elif tokens[1].lower().strip().startswith('output file'): out = OutputFile() elif tokens[1].lower().strip().startswith('output string'): out = OutputString() self.outputStringExist = True self.outputStringName = tokens[0] elif tokens[1].lower().strip().startswith('output number'): out = OutputNumber() self.outputNumberBool = True self.outputNumberName = tokens[0] if param is not None: self.addParameter(param) elif out is not None: out.name = tokens[0] out.description = tokens[0] self.addOutput(out) else: raise WrongScriptException('Could not load R script:' + self.descriptionFile + '.\n Problem with line "' + line + '"' )
def processParameterLine(self, line): param = None out = None line = line.replace("#", "") # If the line is in the format of the text description files for normal algorithms, # then process it using parameter and output factories if '|' in line: self.processDescriptionParameterLine(line) return tokens = line.split("=") desc = self.createDescriptiveName(tokens[0]) if tokens[1].lower().strip() == "group": self.group = tokens[0] return if tokens[1].lower().strip() == "name": self.name = tokens[0] return if tokens[1].lower().strip() == "raster": param = ParameterRaster(tokens[0], desc, False) elif tokens[1].lower().strip() == "vector": param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_ANY]) elif tokens[1].lower().strip() == "table": param = ParameterTable(tokens[0], desc, False) elif tokens[1].lower().strip() == "multiple raster": param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_RASTER) param.optional = False elif tokens[1].lower().strip() == "multiple vector": param = ParameterMultipleInput( tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY) param.optional = False elif tokens[1].lower().strip().startswith("selection"): options = tokens[1].strip()[len("selection"):].split(";") param = ParameterSelection(tokens[0], desc, options) elif tokens[1].lower().strip().startswith("boolean"): default = tokens[1].strip()[len("boolean") + 1:] param = ParameterBoolean(tokens[0], desc, default) elif tokens[1].lower().strip() == "extent": param = ParameterExtent(tokens[0], desc) elif tokens[1].lower().strip() == "file": param = ParameterFile(tokens[0], desc, False) elif tokens[1].lower().strip() == "folder": param = ParameterFile(tokens[0], desc, True) elif tokens[1].lower().strip().startswith("number"): default = tokens[1].strip()[len("number") + 1:] param = ParameterNumber(tokens[0], desc, default=default) elif tokens[1].lower().strip().startswith("field"): field = tokens[1].strip()[len("field") + 1:] found = False for p in self.parameters: if p.name == field: found = True break if found: param = ParameterTableField(tokens[0], tokens[0], field) elif tokens[1].lower().strip().startswith("string"): default = tokens[1].strip()[len("string") + 1:] param = ParameterString(tokens[0], desc, default) elif tokens[1].lower().strip().startswith("output raster"): out = OutputRaster() elif tokens[1].lower().strip().startswith("output vector"): out = OutputVector() elif tokens[1].lower().strip().startswith("output table"): out = OutputTable() elif tokens[1].lower().strip().startswith("output html"): out = OutputHTML() elif tokens[1].lower().strip().startswith("output file"): out = OutputFile() elif tokens[1].lower().strip().startswith("output number"): out = OutputNumber() elif tokens[1].lower().strip().startswith("output string"): out = OutputString() if param != None: self.addParameter(param) elif out != None: out.name = tokens[0] out.description = tokens[0] self.addOutput(out) else: raise WrongScriptException("Could not load script:" + self.descriptionFile + ".\n Problem with line \"" + line + "\"")
def processParameterLine(self, line): param = None out = None line = line.replace("#", "") if line.lower().strip().startswith("showplots"): self.showPlots = True self.addOutput(OutputHTML(RAlgorithm.RPLOTS, "R Plots")) return if line.lower().strip().startswith("dontuserasterpackage"): self.useRasterPackage = False return if line.lower().strip().startswith("passfilenames"): self.passFileNames = True return tokens = line.split("=") desc = self.createDescriptiveName(tokens[0]) if tokens[1].lower().strip() == "group": self.group = tokens[0] return if tokens[1].lower().strip().startswith("raster"): param = ParameterRaster(tokens[0], desc, False) elif tokens[1].lower().strip() == "vector": param = ParameterVector(tokens[0], desc, [ParameterVector.VECTOR_TYPE_ANY]) elif tokens[1].lower().strip() == "table": param = ParameterTable(tokens[0], desc, False) elif tokens[1].lower().strip().startswith("multiple raster"): param = ParameterMultipleInput(tokens[0], desc, ParameterMultipleInput.TYPE_RASTER) param.optional = False elif tokens[1].lower().strip() == "multiple vector": param = ParameterMultipleInput( tokens[0], desc, ParameterMultipleInput.TYPE_VECTOR_ANY) param.optional = False elif tokens[1].lower().strip().startswith("selection"): options = tokens[1].strip()[len("selection"):].split(";") param = ParameterSelection(tokens[0], desc, options) elif tokens[1].lower().strip().startswith("boolean"): default = tokens[1].strip()[len("boolean") + 1:] param = ParameterBoolean(tokens[0], desc, default) elif tokens[1].lower().strip().startswith("number"): try: default = float(tokens[1].strip()[len("number") + 1:]) param = ParameterNumber(tokens[0], desc, default=default) except: raise WrongScriptException("Could not load R script:" + self.descriptionFile + ".\n Problem with line \"" + line + "\"") elif tokens[1].lower().strip().startswith("field"): field = tokens[1].strip()[len("field") + 1:] found = False for p in self.parameters: if p.name == field: found = True break if found: param = ParameterTableField(tokens[0], tokens[0], field) elif tokens[1].lower().strip() == "extent": param = ParameterExtent(tokens[0], desc) elif tokens[1].lower().strip() == "file": param = ParameterFile(tokens[0], desc, False) elif tokens[1].lower().strip() == "folder": param = ParameterFile(tokens[0], desc, True) elif tokens[1].lower().strip().startswith("string"): default = tokens[1].strip()[len("string") + 1:] param = ParameterString(tokens[0], desc, default) elif tokens[1].lower().strip().startswith("output raster"): out = OutputRaster() elif tokens[1].lower().strip().startswith("output vector"): out = OutputVector() elif tokens[1].lower().strip().startswith("output table"): out = OutputTable() elif tokens[1].lower().strip().startswith("output file"): out = OutputFile() if param != None: self.addParameter(param) elif out != None: out.name = tokens[0] out.description = tokens[0] self.addOutput(out) else: raise WrongScriptException("Could not load R script:" + self.descriptionFile + ".\n Problem with line \"" + line + "\"")
def okPressed(self): description = unicode(self.nameTextBox.text()) if description.strip() == "": QMessageBox.critical(self, "Unable to define parameter", "Invalid parameter name") return if self.param is None: validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" safeName = ''.join(c for c in description if c in validChars) name = self.paramType.upper().replace(" ", "") + "_" + safeName.upper() else: name = self.param.name if self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BOOLEAN or isinstance( self.param, ParameterBoolean): self.param = ParameterBoolean(name, description, self.yesNoCombo.currentIndex() == 0) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE_FIELD or isinstance( self.param, ParameterTableField): if self.parentCombo.currentIndex() < 0: QMessageBox.critical(self, "Unable to define parameter", "Wrong or missing parameter values") return parent = self.parentCombo.itemData(self.parentCombo.currentIndex()) self.param = ParameterTableField(name, description, parent) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_RASTER or isinstance( self.param, ParameterRaster): self.param = ParameterRaster(name, description, self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_TABLE or isinstance( self.param, ParameterTable): self.param = ParameterTable(name, description, self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_VECTOR or isinstance( self.param, ParameterVector): self.param = ParameterVector( name, description, [self.shapetypeCombo.currentIndex() - 1], self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_MULTIPLE or isinstance( self.param, ParameterMultipleInput): self.param = ParameterMultipleInput( name, description, self.datatypeCombo.currentIndex() - 1, self.yesNoCombo.currentIndex() == 1) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_NUMBER or isinstance( self.param, ParameterNumber): try: vmin = str(self.minTextBox.text()).strip() if vmin == "": vmin = None else: vmin = float(vmin) vmax = str(self.maxTextBox.text()).strip() if vmax == "": vmax = None else: vmax = float(vmax) self.param = ParameterNumber( name, description, vmin, vmax, float(str(self.defaultTextBox.text()))) except: QMessageBox.critical(self, "Unable to define parameter", "Wrong or missing parameter values") return elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_STRING or isinstance( self.param, ParameterString): self.param = ParameterString(name, description, str(self.defaultTextBox.text())) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_EXTENT or isinstance( self.param, ParameterExtent): self.param = ParameterExtent(name, description) elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_FILE or isinstance( self.param, ParameterFile): isFolder = self.fileFolderCombo.currentIndex() == 1 self.param = ParameterFile(name, description, isFolder=isFolder) self.close()