Class: QgsExpressionContextUtils

Contains utilities for working with QgsExpressionContext objects, including methods for creating scopes for specific uses (e.g., project scopes, layer scopes).

List of all members, including inherited members

Static Methods

atlasScope

Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas.

createFeatureBasedContext

Helper function for creating an expression context which contains just a feature and fields collection.

formScope

Creates a new scope which contains functions and variables from the current attribute form/table formFeature.

globalProjectLayerScopes

Creates a list of three scopes: global, layer's project and layer.

globalScope

Creates a new scope which contains variables and functions relating to the global QGIS context.

layerScope

Creates a new scope which contains variables and functions relating to a QgsMapLayer.

layoutItemScope

Creates a new scope which contains variables and functions relating to a QgsLayoutItem.

layoutScope

Creates a new scope which contains variables and functions relating to a QgsLayout layout.

mapLayerPositionScope

Sets the expression context variables which are available for expressions triggered by moving the mouse over a feature of the currently selected layer.

mapSettingsScope

Creates a new scope which contains variables and functions relating to a QgsMapSettings object.

mapToolCaptureScope

Sets the expression context variables which are available for expressions triggered by a map tool capture like add feature.

meshExpressionScope

Creates a new scope which contains functions relating to mesh layer element elementType

multiFrameScope

Creates a new scope which contains variables and functions relating to a QgsLayoutMultiFrame.

notificationScope

Creates a new scope which contains variables and functions relating to provider notifications

parentFormScope

Creates a new scope which contains functions and variables from the current parent attribute form/table formFeature.

processingAlgorithmScope

Creates a new scope which contains variables and functions relating to a processing algorithm, when used with the specified parameters and context.

processingModelAlgorithmScope

Creates a new scope which contains variables and functions relating to a processing model algorithm, when used with the specified parameters and context.

projectScope

Creates a new scope which contains variables and functions relating to a QGIS project.

registerContextFunctions

Registers all known core functions provided by QgsExpressionContextScope objects.

removeGlobalVariable

Remove a global context variable.

removeProjectVariable

Remove project context variable.

setGlobalVariable

Sets a global context variable.

setGlobalVariables

Sets all global context variables.

setLayerVariable

Sets a layer context variable.

setLayerVariables

Sets all layer context variables.

setLayoutItemVariable

Sets a layout item context variable, with the given name and value.

setLayoutItemVariables

Sets all layout item context variables for an item.

setLayoutMultiFrameVariable

Sets a layout multi frame context variable, with the given name and value.

setLayoutMultiFrameVariables

Sets all layout multiframe context variables for an frame.

setLayoutVariable

Sets a layout context variable.

setLayoutVariables

Sets all layout context variables.

setProjectVariable

Sets a project context variable.

setProjectVariables

Sets all project context variables.

updateSymbolScope

Updates a symbol scope related to a QgsSymbol to an expression context.

class qgis.core.QgsExpressionContextUtils[source]

Bases: object

static atlasScope(atlas: QgsLayoutAtlas | None) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas. For instance, current page name and number.

Parameters:

atlas (Optional[QgsLayoutAtlas]) – source atlas. If None, a set of default atlas variables will be added to the scope.

Return type:

Optional[QgsExpressionContextScope]

static createFeatureBasedContext(feature: QgsFeature, fields: QgsFields) QgsExpressionContext[source]

Helper function for creating an expression context which contains just a feature and fields collection. Generally this method should not be used as the created context does not include standard scopes such as the global and project scopes.

Parameters:
Return type:

QgsExpressionContext

static formScope(formFeature: QgsFeature = QgsFeature(), formMode: str | None = '') QgsExpressionContextScope | None[source]

Creates a new scope which contains functions and variables from the current attribute form/table formFeature. The variables and values in this scope will reflect the current state of the form/row being edited. The formMode (SingleEditMode etc.) is passed as text

Added in version 3.2.

Parameters:
Return type:

Optional[QgsExpressionContextScope]

static globalProjectLayerScopes(layer: QgsMapLayer | None) list[QgsExpressionContextScope]

Creates a list of three scopes: global, layer’s project and layer.

Parameters:

layer (Optional[QgsMapLayer])

Return type:

list[QgsExpressionContextScope]

static globalScope() QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to the global QGIS context. For instance, QGIS version numbers and variables specified through QGIS options.

Return type:

Optional[QgsExpressionContextScope]

static layerScope(layer: QgsMapLayer | None) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QgsMapLayer. For instance, layer name, id and fields.

Parameters:

layer (Optional[QgsMapLayer])

Return type:

Optional[QgsExpressionContextScope]

static layoutItemScope(item: QgsLayoutItem | None) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QgsLayoutItem. For instance, item size and position.

Parameters:

item (Optional[QgsLayoutItem])

Return type:

Optional[QgsExpressionContextScope]

static layoutScope(layout: QgsLayout | None) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QgsLayout layout. For instance, number of pages and page sizes.

Parameters:

layout (Optional[QgsLayout])

Return type:

Optional[QgsExpressionContextScope]

static mapLayerPositionScope(position: QgsPointXY) QgsExpressionContextScope | None[source]

Sets the expression context variables which are available for expressions triggered by moving the mouse over a feature of the currently selected layer.

Parameters:

position (QgsPointXY) – map coordinates of the current pointer position in the CRS of the layer which triggered the action.

Added in version 3.30.

Return type:

Optional[QgsExpressionContextScope]

static mapSettingsScope(mapSettings: QgsMapSettings) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QgsMapSettings object. For instance, map scale and rotation.

Parameters:

mapSettings (QgsMapSettings)

Return type:

Optional[QgsExpressionContextScope]

static mapToolCaptureScope(matches: Iterable[QgsPointLocator.Match]) QgsExpressionContextScope | None[source]

Sets the expression context variables which are available for expressions triggered by a map tool capture like add feature.

Parameters:

matches (Iterable[QgsPointLocator.Match])

Return type:

Optional[QgsExpressionContextScope]

static meshExpressionScope(elementType: QgsMesh.ElementType) QgsExpressionContextScope | None[source]

Creates a new scope which contains functions relating to mesh layer element elementType

Added in version 3.22.

Parameters:

elementType (QgsMesh.ElementType)

Return type:

Optional[QgsExpressionContextScope]

static multiFrameScope(frame: QgsLayoutMultiFrame | None) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QgsLayoutMultiFrame.

Added in version 3.10.

Parameters:

frame (Optional[QgsLayoutMultiFrame])

Return type:

Optional[QgsExpressionContextScope]

static notificationScope(message: str | None = '') QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to provider notifications

Parameters:

message (Optional[str] = '') – the notification message

Return type:

Optional[QgsExpressionContextScope]

static parentFormScope(formFeature: QgsFeature = QgsFeature(), formMode: str | None = '') QgsExpressionContextScope | None[source]

Creates a new scope which contains functions and variables from the current parent attribute form/table formFeature. The variables and values in this scope will reflect the current state of the parent form/row being edited. The formMode (SingleEditMode etc.) is passed as text

Added in version 3.14.

Parameters:
Return type:

Optional[QgsExpressionContextScope]

static processingAlgorithmScope(algorithm: QgsProcessingAlgorithm | None, parameters: dict[str | None, Any], context: QgsProcessingContext) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a processing algorithm, when used with the specified parameters and context. For instance, algorithm name and parameter functions.

Parameters:
Return type:

Optional[QgsExpressionContextScope]

static processingModelAlgorithmScope(model: QgsProcessingModelAlgorithm | None, parameters: dict[str | None, Any], context: QgsProcessingContext) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a processing model algorithm, when used with the specified parameters and context. For instance, model name and path variables.

Added in version 3.6.

Parameters:
Return type:

Optional[QgsExpressionContextScope]

static projectScope(project: QgsProject | None) QgsExpressionContextScope | None[source]

Creates a new scope which contains variables and functions relating to a QGIS project. For instance, project path and title, and variables specified through the project properties.

Parameters:

project (Optional[QgsProject]) – What project to use

Return type:

Optional[QgsExpressionContextScope]

static registerContextFunctions()[source]

Registers all known core functions provided by QgsExpressionContextScope objects.

static removeGlobalVariable(name: str | None)[source]

Remove a global context variable.

Parameters:

name (Optional[str]) – variable name

See also

globalScope()

static removeProjectVariable(project: QgsProject | None, name: str | None)[source]

Remove project context variable.

Parameters:

See also

projectScope()

static setGlobalVariable(name: str | None, value: Any)[source]

Sets a global context variable. This variable will be contained within scopes retrieved via globalScope().

Parameters:
  • name (Optional[str]) – variable name

  • value (Any) – variable value

See also

globalScope()

static setGlobalVariables(variables: dict[str | None, Any])[source]

Sets all global context variables. Existing global variables will be removed and replaced with the variables specified.

Parameters:

variables (dict[Optional[str], Any]) – new set of global variables

See also

globalScope()

static setLayerVariable(layer: QgsMapLayer | None, name: str | None, value: Any)[source]

Sets a layer context variable. This variable will be contained within scopes retrieved via layerScope().

Parameters:

See also

layerScope()

static setLayerVariables(layer: QgsMapLayer | None, variables: dict[str | None, Any])[source]

Sets all layer context variables. Existing layer variables will be removed and replaced with the variables specified.

Parameters:

See also

layerScope()

static setLayoutItemVariable(item: QgsLayoutItem | None, name: str | None, value: Any)[source]

Sets a layout item context variable, with the given name and value. This variable will be contained within scopes retrieved via layoutItemScope().

Parameters:
static setLayoutItemVariables(item: QgsLayoutItem | None, variables: dict[str | None, Any])[source]

Sets all layout item context variables for an item. Existing variables will be removed and replaced with the variables specified.

Parameters:
static setLayoutMultiFrameVariable(frame: QgsLayoutMultiFrame | None, name: str | None, value: Any)[source]

Sets a layout multi frame context variable, with the given name and value. This variable will be contained within scopes retrieved via multiFrameScope().

Added in version 3.10.

Parameters:
static setLayoutMultiFrameVariables(frame: QgsLayoutMultiFrame | None, variables: dict[str | None, Any])[source]

Sets all layout multiframe context variables for an frame. Existing variables will be removed and replaced with the variables specified.

Added in version 3.10.

Parameters:
static setLayoutVariable(layout: QgsLayout | None, name: str | None, value: Any)[source]

Sets a layout context variable. This variable will be contained within scopes retrieved via layoutScope().

Parameters:

See also

layoutScope()

static setLayoutVariables(layout: QgsLayout | None, variables: dict[str | None, Any])[source]

Sets all layout context variables. Existing layout variables will be removed and replaced with the variables specified.

Parameters:

See also

layoutScope()

static setProjectVariable(project: QgsProject | None, name: str | None, value: Any)[source]

Sets a project context variable. This variable will be contained within scopes retrieved via projectScope().

Parameters:

See also

projectScope()

static setProjectVariables(project: QgsProject | None, variables: dict[str | None, Any])[source]

Sets all project context variables. Existing project variables will be removed and replaced with the variables specified.

Parameters:

See also

projectScope()

static updateSymbolScope(symbol: QgsSymbol | None, symbolScope: QgsExpressionContextScope | None = None) QgsExpressionContextScope | None[source]

Updates a symbol scope related to a QgsSymbol to an expression context.

Parameters:
Return type:

Optional[QgsExpressionContextScope]