Skip to content

Commit 3286ebb

Browse files
committed
Explicit parameters, feedback, context arguments for processing.run
1 parent 2a1cdea commit 3286ebb

File tree

1 file changed

+14
-40
lines changed

1 file changed

+14
-40
lines changed

python/plugins/processing/core/Processing.py

+14-40
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def removeScripts(folder):
122122
provider.refreshAlgorithms()
123123

124124
@staticmethod
125-
def runAlgorithm(algOrName, onFinish, *args, **kwargs):
125+
def runAlgorithm(algOrName, parameters, onFinish, feedback=None, context=None):
126126
if isinstance(algOrName, QgsProcessingAlgorithm):
127127
alg = algOrName
128128
else:
@@ -134,47 +134,21 @@ def runAlgorithm(algOrName, onFinish, *args, **kwargs):
134134
Processing.tr("Processing"))
135135
return
136136

137-
parameters = {}
138-
if len(args) == 1 and isinstance(args[0], dict):
139-
# Set params by name and try to run the alg even if not all parameter values are provided,
140-
# by using the default values instead.
141-
for (name, value) in list(args[0].items()):
142-
param = alg.parameterDefinition(name)
143-
if param:
144-
parameters[param.name()] = value
145-
continue
146-
# fix_print_with_import
147-
print('Error: Wrong parameter value %s for parameter %s.' % (value, name))
148-
QgsMessageLog.logMessage(
149-
Processing.tr('Error: Wrong parameter value {0} for parameter {1}.').format(value, name),
150-
Processing.tr("Processing"))
151-
QgsMessageLog.logMessage(Processing.tr('Error in {0}. Wrong parameter value {1} for parameter {2}.').format(
152-
alg.name(), value, name
153-
), Processing.tr("Processing"),
154-
QgsMessageLog.CRITICAL
155-
)
156-
return
157-
# check for any manadatory parameters which were not specified
158-
for param in alg.parameterDefinitions():
159-
if param.name() not in parameters:
160-
if not param.flags() & QgsProcessingParameterDefinition.FlagOptional:
161-
# fix_print_with_import
162-
print('Error: Missing parameter value for parameter %s.' % param.name())
163-
QgsMessageLog.logMessage(
164-
Processing.tr('Error: Missing parameter value for parameter {0}.').format(param.name()),
165-
Processing.tr("Processing"))
166-
return
167-
168-
feedback = None
169-
if kwargs is not None and "feedback" in list(kwargs.keys()):
170-
feedback = kwargs["feedback"]
171-
elif iface is not None:
137+
# check for any manadatory parameters which were not specified
138+
for param in alg.parameterDefinitions():
139+
if param.name() not in parameters:
140+
if not param.flags() & QgsProcessingParameterDefinition.FlagOptional:
141+
# fix_print_with_import
142+
print('Error: Missing parameter value for parameter %s.' % param.name())
143+
QgsMessageLog.logMessage(
144+
Processing.tr('Error: Missing parameter value for parameter {0}.').format(param.name()),
145+
Processing.tr("Processing"))
146+
return
147+
148+
if feedback is None:
172149
feedback = MessageBarProgress(alg.displayName())
173150

174-
context = None
175-
if kwargs is not None and 'context' in list(kwargs.keys()):
176-
context = kwargs["context"]
177-
else:
151+
if context is None:
178152
context = dataobjects.createContext(feedback)
179153

180154
ok, msg = alg.checkParameterValues(parameters, context)

0 commit comments

Comments
 (0)