Class: QgsProcessingModelAlgorithm

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

Bases: qgis._core.QgsProcessingAlgorithm

Constructor for QgsProcessingModelAlgorithm.

Model based algorithm with processing.

New in version 3.0: Enums

Methods

activateChildAlgorithm

Attempts to activate the child algorithm with matching id.

addChildAlgorithm

Adds a new child algorithm to the model.

addModelParameter

Adds a new parameter to the model, with the specified definition and graphical component.

addOutput

addParameter

asPythonCode

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

asPythonCommand

availableSourcesForChild

Returns a list of possible sources which can be used for the parameters for a child algorithm in the model.

canExecute

childAlgorithm

Returns the child algorithm with matching id.

childAlgorithms

Returns the map of child algorithms contained in the model.

childAlgorithmsDependOnParameter

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

createExpressionContext

createExpressionContextScopeForChildAlgorithm

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

createInstance

deactivateChildAlgorithm

Deactivates the child algorithm with matching id.

dependentChildAlgorithms

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

dependsOnChildAlgorithms

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

displayName

flags

fromFile

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

group

groupId

helpContent

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

helpUrl

icon

initAlgorithm

invalidRasterError

invalidSinkError

invalidSourceError

loadVariant

Loads this model from a QVariantMap, wrapped in a QVariant variant.

name

otherParametersDependOnParameter

Returns True if any other model parameters depend on the parameter with the specified name (e.g.

parameterAsBool

parameterAsBoolean

parameterAsCompatibleSourceLayerPath

parameterAsCrs

parameterAsDouble

parameterAsEnum

parameterAsEnums

parameterAsExpression

parameterAsExtent

parameterAsExtentCrs

parameterAsExtentGeometry

parameterAsFields

parameterAsFile

parameterAsFileOutput

parameterAsInt

parameterAsInts

parameterAsLayer

parameterAsLayerList

parameterAsLayout

parameterAsLayoutItem

parameterAsMatrix

parameterAsMeshLayer

parameterAsOutputLayer

parameterAsPoint

parameterAsPointCrs

parameterAsRange

parameterAsRasterLayer

parameterAsSink

parameterAsSource

parameterAsString

parameterAsVectorLayer

parameterComponent

Returns the parameter component with matching name.

parameterComponents

Returns the map of parameter components used by the model.

postProcessAlgorithm

prepareAlgorithm

processAlgorithm

removeChildAlgorithm

Attempts to remove the child algorithm with matching id.

removeModelParameter

Removes an existing model parameter by name.

removeParameter

setChildAlgorithm

Sets the child algorithm within the model.

setChildAlgorithms

Sets the map of child algorithms contained in the model.

setGroup

Sets the model group.

setHelpContent

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

setName

Sets the model name.

setParameterComponent

Sets a parameter component for the model.

setParameterComponents

Sets the map of parameter components used by the model.

setSourceFilePath

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

setVariables

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

shortDescription

shortHelpString

sourceFilePath

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

supportInPlaceEdit

svgIconPath

toFile

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

toVariant

Saves this model to a QVariantMap, wrapped in a QVariant.

updateDestinationParameters

Updates the model’s parameter definitions to include all relevant destination parameters as required by child algorithm ModelOutputs.

updateModelParameter

Replaces the definition of an existing parameter (by parameter name) with a new definition.

variables

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

variablesForChildAlgorithm

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

Signals

Attributes

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.

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.

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()

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.

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.

asPythonCommand(self, parameters: Dict[str, Any], context: QgsProcessingContext) → 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.

canExecute(self) → 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.

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()

childAlgorithmsDependOnParameter(self, name: str) → bool

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

createExpressionContext(self, parameters: Dict[str, Any], context: QgsProcessingContext, source: QgsProcessingFeatureSource = None) → 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.

createInstance(self) → 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.

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

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

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.

displayName(self) → str
flags(self) → QgsProcessingAlgorithm.Flags
fromFile(self, path: str) → bool

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

See also

toFile()

group(self) → str
groupId(self) → 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()

helpUrl(self) → str
icon(self) → QIcon
initAlgorithm(self, configuration: Dict[str, Any] = {})
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.

name(self) → 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).

parameterAsBool()
parameterAsBoolean()
parameterAsCompatibleSourceLayerPath()
parameterAsCrs()
parameterAsDouble()
parameterAsEnum()
parameterAsEnums()
parameterAsExpression()
parameterAsExtent()
parameterAsExtentCrs()
parameterAsExtentGeometry()
parameterAsFields()
parameterAsFile()
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.

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() ).

postProcessAlgorithm()
prepareAlgorithm()
processAlgorithm(self, parameters: Dict[str, Any], context: QgsProcessingContext, feedback: QgsProcessingFeedback) → 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).

removeModelParameter(self, name: str)

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

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.

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()

setGroup(self, group: str)

Sets the model group.

See also

group()

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()

setName(self, name: str)

Sets the model name.

See also

name()

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.

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.

setSourceFilePath(self, path: str)

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

See also

sourceFilePath()

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.

shortDescription(self) → str
shortHelpString(self) → str
sourceFilePath(self) → str

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

supportInPlaceEdit()
svgIconPath(self) → str
toFile(self, path: str) → bool

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

See also

fromFile()

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.

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.

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.

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.