[processing] minor fix in parameter parsing in scripts

This commit is contained in:
volaya 2015-11-06 14:02:38 +01:00
parent 227af8ac8e
commit 9f3bd1d46d

View File

@ -145,20 +145,20 @@ class ScriptAlgorithm(GeoAlgorithm):
if tokens[1].lower().strip() == 'name': if tokens[1].lower().strip() == 'name':
self.name = self.i18n_name = tokens[0] self.name = self.i18n_name = tokens[0]
return return
if tokens[1].lower().strip().startswith('output'): if tokens[1].lower().strip().startswith('output'):
outToken = tokens[1].strip()[len('output') + 1:] outToken = tokens[1].strip()[len('output') + 1:]
out = self.processOutputParameterToken(outToken) out = self.processOutputParameterToken(outToken)
elif tokens[1].lower().strip().startswith('optional'): elif tokens[1].lower().strip().startswith('optional'):
optToken = tokens[1].strip()[len('optional') + 1:] optToken = tokens[1].strip()[len('optional') + 1:]
param = self.processInputParameterToken(optToken, tokens[0]) param = self.processInputParameterToken(optToken, tokens[0])
if param: if param:
param.optional = True param.optional = True
else: else:
param = self.processInputParameterToken(tokens[1], tokens[0]) param = self.processInputParameterToken(tokens[1], tokens[0])
if param is not None: if param is not None:
self.addParameter(param) self.addParameter(param)
@ -173,9 +173,9 @@ class ScriptAlgorithm(GeoAlgorithm):
def processInputParameterToken(self, token, name): def processInputParameterToken(self, token, name):
param = None param = None
descName = self.createDescriptiveName(name) descName = self.createDescriptiveName(name)
if token.lower().strip() == 'raster': if token.lower().strip() == 'raster':
param = ParameterRaster(name, descName, False) param = ParameterRaster(name, descName, False)
elif token.lower().strip() == 'vector': elif token.lower().strip() == 'vector':
@ -204,7 +204,7 @@ class ScriptAlgorithm(GeoAlgorithm):
options = token.strip()[len('selectionfromfile '):].split(';') options = token.strip()[len('selectionfromfile '):].split(';')
param = ParameterSelection(name, descName, options, isSource=True) param = ParameterSelection(name, descName, options, isSource=True)
elif token.lower().strip().startswith('selection'): elif token.lower().strip().startswith('selection'):
options = tokens[1].strip()[len('selection '):].split(';') options = token.strip()[len('selection '):].split(';')
param = ParameterSelection(name, descName, options) param = ParameterSelection(name, descName, options)
elif token.lower().strip().startswith('boolean'): elif token.lower().strip().startswith('boolean'):
default = token.strip()[len('boolean') + 1:] default = token.strip()[len('boolean') + 1:]
@ -238,12 +238,12 @@ class ScriptAlgorithm(GeoAlgorithm):
if not default: if not default:
default = 'EPSG:4326' default = 'EPSG:4326'
param = ParameterCrs(name, descName, default) param = ParameterCrs(name, descName, default)
return param return param
def processOutputParameterToken(self, token): def processOutputParameterToken(self, token):
out = None out = None
if token.lower().strip().startswith('raster'): if token.lower().strip().startswith('raster'):
out = OutputRaster() out = OutputRaster()
elif token.lower().strip().startswith('vector'): elif token.lower().strip().startswith('vector'):
@ -263,7 +263,7 @@ class ScriptAlgorithm(GeoAlgorithm):
out = OutputNumber() out = OutputNumber()
elif token.lower().strip().startswith('string'): elif token.lower().strip().startswith('string'):
out = OutputString() out = OutputString()
return out return out
def processDescriptionParameterLine(self, line): def processDescriptionParameterLine(self, line):