Class: QgsProcessingModelAlgorithm

class qgis.core.QgsProcessingModelAlgorithm(name: str = '', group: str = '', groupId: str = '')

Bases: QgsProcessingAlgorithm

Constructor for QgsProcessingModelAlgorithm.

Model based algorithm with processing.

New in version 3.0.

Parameters
  • name (str = '') –

  • group (str = '') –

  • groupId

class VariableDefinition(value: Any = None, source: QgsProcessingModelChildParameterSource = QgsProcessingModelChildParameterSource.fromStaticValue(QVariant()), description: str = '')

Bases: sip.wrapper

Constructor for a new VariableDefinition with the specified value and original parameter source, and description.

QgsProcessingModelAlgorithm.VariableDefinition(QgsProcessingModelAlgorithm.VariableDefinition)

Definition of a expression context variable available during model execution.

New in version 3.0.

Parameters
description
source
value
activateChildAlgorithm(self, id: str) → bool

Attempts to activate the child algorithm with matching id. If any child algorithms on which the child depends are not active, then the child will not be activated and False will be returned.

Parameters

id (str) –

Return type

bool

addChildAlgorithm(self, algorithm: QgsProcessingModelChildAlgorithm) → str

Adds a new child algorithm to the model. If a child algorithm already exists in the model with the same child ID then algorithm will be assigned a new autogenerated unique ID. The assigned child ID will be returned.

See also

childAlgorithm()

Parameters

algorithm (QgsProcessingModelChildAlgorithm) –

Return type

str

addModelParameter(self, definition: QgsProcessingParameterDefinition, component: QgsProcessingModelParameter)

Adds a new parameter to the model, with the specified definition and graphical component. Ownership of definition is transferred to the model.

Parameters
addOutput()
addParameter()
asPythonCode(self, outputType: QgsProcessing.PythonOutputType, indentSize: int) → List[str]

Attempts to convert the model to executable Python code, and returns the generated lines of code.

The outputType argument dictates the desired script type.

The indentSize arguments specifies the size of indented lines.

Parameters
Return type

List[str]

asPythonCommand(self, parameters: Dict[str, Any], context: QgsProcessingContext) → str
Parameters
Return type

str

availableSourcesForChild(self, childId: str, parameterTypes: Iterable[str] = [], outputTypes: Iterable[str] = [], dataTypes: Iterable[int] = []) → List[QgsProcessingModelChildParameterSource]

Returns a list of possible sources which can be used for the parameters for a child algorithm in the model. Returned sources are those which match either one of the specified parameterTypes (see QgsProcessingParameterDefinition.type() ) or one of the specified outputTypes (see QgsProcessingOutputDefinition.type() ). If specified, an optional list of dataTypes can be used to filter the returned sources to those with compatible data types for the parameter/outputs.

Parameters
  • childId (str) –

  • parameterTypes (Iterable[str] = []) –

  • outputTypes (Iterable[str] = []) –

  • dataTypes (Iterable[int] = []) –

Return type

List[QgsProcessingModelChildParameterSource]

canExecute(self) → Tuple[bool, str]
Return type

Tuple[bool, str]

childAlgorithm(self, id: str) → QgsProcessingModelChildAlgorithm

Returns the child algorithm with matching id. If no child algorithm exists with this ID a new algorithm will be added to the model and returned.

Parameters

id (str) –

Return type

QgsProcessingModelChildAlgorithm

childAlgorithms(self) → Dict[str, QgsProcessingModelChildAlgorithm]

Returns the map of child algorithms contained in the model. The keys are the child algorithm ids (see QgsProcessingModelAlgorithm.ChildAlgorithm.childId()).

See also

childAlgorithm()

Return type

Dict[str, QgsProcessingModelChildAlgorithm]

childAlgorithmsDependOnParameter(self, name: str) → bool

Returns True if any child algorithms depend on the model parameter with the specified name.

Parameters

name (str) –

Return type

bool

createExpressionContext(self, parameters: Dict[str, Any], context: QgsProcessingContext, source: QgsProcessingFeatureSource = None) → QgsExpressionContext
Parameters
Return type

QgsExpressionContext

createExpressionContextScopeForChildAlgorithm(self, childId: str, context: QgsProcessingContext, modelParameters: Dict[str, Any] = {}, results: Dict[str, Any] = {}) → QgsExpressionContextScope

Creates a new expression context scope for a child algorithm within the model.

Parameters
  • childId (str) –

  • context (QgsProcessingContext) –

  • modelParameters (Dict[str) –

  • results (Dict[str) –

Return type

QgsExpressionContextScope

createInstance(self) → QgsProcessingAlgorithm
Return type

QgsProcessingAlgorithm

deactivateChildAlgorithm(self, id: str)

Deactivates the child algorithm with matching id. All other child algorithms which depend on the child algorithm will also be deactivated.

Parameters

id (str) –

dependentChildAlgorithms(self, childId: str) → Set[str]

Returns a list of the child algorithm IDs depending on the child algorithm with the specified childId.

Parameters

childId (str) –

Return type

Set[str]

dependsOnChildAlgorithms(self, childId: str) → Set[str]

Returns a list of the child algorithm IDs on which the child algorithm with the specified childId depends upon.

Parameters

childId (str) –

Return type

Set[str]

displayName(self) → str
Return type

str

flags(self) → QgsProcessingAlgorithm.Flags
Return type

QgsProcessingAlgorithm.Flags

fromFile(self, path: str) → bool

Reads the model from a file, at the specified path.

See also

toFile()

Parameters

path (str) –

Return type

bool

group(self) → str
Return type

str

groupId(self) → str
Return type

str

helpContent(self) → Dict[str, Any]

Returns the model’s help contents (a free-form map of values describing the algorithm’s use and metadata).

See also

setHelpContent()

Return type

Dict[str, Any]

helpUrl(self) → str
Return type

str

icon(self) → QIcon
Return type

QIcon

initAlgorithm(self, configuration: Dict[str, Any] = {})
Parameters

configuration (Dict[str) –

invalidRasterError()
invalidSinkError()
invalidSourceError()
loadVariant(self, variant: Any) → bool

Loads this model from a QVariantMap, wrapped in a QVariant variant. You can use QgsXmlUtils.readVariant to load it from an XML document.

See also

toVariant()

New in version 3.4.

Parameters

variant (Any) –

Return type

bool

name(self) → str
Return type

str

otherParametersDependOnParameter(self, name: str) → bool

Returns True if any other model parameters depend on the parameter with the specified name (e.g. field parameters where name is the parent layer parameter).

Parameters

name (str) –

Return type

bool

parameterAsBool()
parameterAsBoolean()
parameterAsColor()
parameterAsCompatibleSourceLayerPath()
parameterAsCompatibleSourceLayerPathAndLayerName()
parameterAsCrs()
parameterAsDouble()
parameterAsEnum()
parameterAsEnums()
parameterAsExpression()
parameterAsExtent()
parameterAsExtentCrs()
parameterAsExtentGeometry()
parameterAsFields()
parameterAsFile()
parameterAsFileList()
parameterAsFileOutput()
parameterAsInt()
parameterAsInts()
parameterAsLayer()
parameterAsLayerList()
parameterAsLayout()
parameterAsLayoutItem()
parameterAsMatrix()
parameterAsMeshLayer()
parameterAsOutputLayer()
parameterAsPoint()
parameterAsPointCrs()
parameterAsRange()
parameterAsRasterLayer()
parameterAsSink()
parameterAsSource()
parameterAsString()
parameterAsVectorLayer()
parameterComponent(self, name: str) → QgsProcessingModelParameter

Returns the parameter component with matching name. If no parameter component exists with this name a new component will be added to the model and returned.

Parameters

name (str) –

Return type

QgsProcessingModelParameter

parameterComponents(self) → Dict[str, QgsProcessingModelParameter]

Returns the map of parameter components used by the model. The keys should match the algorithm’s parameter names (see parameterDefinitions() ).

Return type

Dict[str, QgsProcessingModelParameter]

postProcessAlgorithm()
prepareAlgorithm()
processAlgorithm(self, parameters: Dict[str, Any], context: QgsProcessingContext, feedback: QgsProcessingFeedback) → Dict[str, Any]
Parameters
Return type

Dict[str, Any]

removeChildAlgorithm(self, id: str) → bool

Attempts to remove the child algorithm with matching id. Returns True if the algorithm could be removed, or False if the algorithm could not be removed (e.g. due to other child algorithms depending on it).

Parameters

id (str) –

Return type

bool

removeModelParameter(self, name: str)

Removes an existing model parameter by name. The definition of the matching parameter is deleted.

Parameters

name (str) –

removeParameter()
setChildAlgorithm(self, algorithm: QgsProcessingModelChildAlgorithm)

Sets the child algorithm within the model. If a child algorithm already exists in the model with the same child ID then that algorithm will be replaced.

Parameters

algorithm (QgsProcessingModelChildAlgorithm) –

setChildAlgorithms(self, childAlgorithms: Dict[str, QgsProcessingModelChildAlgorithm])

Sets the map of child algorithms contained in the model. The keys are the child algorithm ids (see QgsProcessingModelAlgorithm.ChildAlgorithm.childId()). All existing child algorithms will be replaced.

See also

childAlgorithm()

Parameters

childAlgorithms (Dict[str) –

setGroup(self, group: str)

Sets the model group.

See also

group()

Parameters

group (str) –

setHelpContent(self, contents: Dict[str, Any])

Sets the model’s help contents (a free-form map of values describing the algorithm’s use and metadata).

See also

helpContent()

Parameters

contents (Dict[str) –

setName(self, name: str)

Sets the model name.

See also

name()

Parameters

name (str) –

setParameterComponent(self, component: QgsProcessingModelParameter)

Sets a parameter component for the model. If a parameter component already exists in the model with the same parameter name then that component will be replaced.

Parameters

component (QgsProcessingModelParameter) –

setParameterComponents(self, parameterComponents: Dict[str, QgsProcessingModelParameter])

Sets the map of parameter components used by the model. The keys should match the algorithm’s parameter names (see parameterDefinitions() ). All existing parameter components will be replaced.

Parameters

parameterComponents (Dict[str) –

setSourceFilePath(self, path: str)

Sets the source file path for the model, if available.

See also

sourceFilePath()

Parameters

path (str) –

setVariables(self, variables: Dict[str, Any])

Sets the map of custom expression context variables for this model.

These variables are added to the model’s expression context scope, allowing for preset “constant” expression variables to be utilized within the model.

See also

variables()

New in version 3.8.

Parameters

variables (Dict[str) –

shortDescription(self) → str
Return type

str

shortHelpString(self) → str
Return type

str

sourceFilePath(self) → str

Returns the source file path for the model, if available.

Return type

str

supportInPlaceEdit()
svgIconPath(self) → str
Return type

str

toFile(self, path: str) → bool

Writes the model to a file, at the specified path.

See also

fromFile()

Parameters

path (str) –

Return type

bool

toVariant(self) → Any

Saves this model to a QVariantMap, wrapped in a QVariant. You can use QgsXmlUtils.writeVariant to save it to an XML document.

See also

loadVariant()

New in version 3.4.

Return type

Any

updateDestinationParameters(self)

Updates the model’s parameter definitions to include all relevant destination parameters as required by child algorithm ModelOutputs. Must be called whenever child algorithm ModelOutputs are altered.

updateModelParameter(self, definition: QgsProcessingParameterDefinition)

Replaces the definition of an existing parameter (by parameter name) with a new definition. Ownership of definition is transferred to the model, and any existing parameter is deleted.

Parameters

definition (QgsProcessingParameterDefinition) –

variables(self) → Dict[str, Any]

Returns the map of custom expression context variables defined for this model.

These variables are added to the model’s expression context scope, allowing for preset “constant” expression variables to be utilized within the model.

See also

setVariables()

New in version 3.8.

Return type

Dict[str, Any]

variablesForChildAlgorithm(self, childId: str, context: QgsProcessingContext, modelParameters: Dict[str, Any] = {}, results: Dict[str, Any] = {}) → Dict[str, QgsProcessingModelAlgorithm.VariableDefinition]

Returns a map of variable name to variable definition for expression context variables which are available for use by child algorithm during model execution.

The child algorithm childId and processing context are manadatory. If modelParameters and results are not specified, then only the variable names and sources will be returned, but all variable values will be null. This can be used to determine in advance which variables will be available for a specific child algorithm, e.g. for use in expression builder widgets.

In order to calculate the actual variable value, the input model modelParameters and already executed child algorithm results must be passed.

Parameters
  • childId (str) –

  • context (QgsProcessingContext) –

  • modelParameters (Dict[str) –

  • results (Dict[str) –

Return type

Dict[str, QgsProcessingModelAlgorithm.VariableDefinition]