Skip to content

Commit 4899de0

Browse files
author
cpolymeris@gmail.com
committed
runalg arguments by name
git-svn-id: http://sextante.googlecode.com/svn/trunk/soft/bindings/qgis-plugin@253 881b9c09-3ef8-f3c2-ec3d-21d735c97f4d
1 parent 1c0820b commit 4899de0

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

src/sextante/core/Sextante.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,20 +255,30 @@ def runalg(name, *args):
255255
return
256256

257257
alg = alg.getCopy()#copy.deepcopy(alg)
258-
i = 0
259-
for param in alg.parameters:
260-
if not param.setValue(args[i]):
261-
print ("Error: Wrong parameter value: " + args[i])
258+
if isinstance(args, dict):
259+
# set params by name
260+
for name, value in args.items():
261+
if alg.getParameterFromName(name).setValue(value):
262+
continue;
263+
if alg.getOutputFromName(name).setValue(value):
264+
continue;
265+
print ("Error: Wrong parameter value %s for parameter %s." % (value, name))
262266
return
263-
i = i +1
264-
265-
for output in alg.outputs:
266-
if not output.hidden:
267-
if not output.setValue(args[i]):
268-
print ("Error: Wrong output value: " + args[i])
267+
else:
268+
i = 0
269+
for param in alg.parameters:
270+
if not param.setValue(args[i]):
271+
print ("Error: Wrong parameter value: " + args[i])
269272
return
270273
i = i +1
271274

275+
for output in alg.outputs:
276+
if not output.hidden:
277+
if not output.setValue(args[i]):
278+
print ("Error: Wrong output value: " + args[i])
279+
return
280+
i = i +1
281+
272282
msg = alg.checkParameterValuesBeforeExecuting()
273283
if msg:
274284
print ("Unable to execute algorithm\n" + msg)

0 commit comments

Comments
 (0)