Class: QgsProcessingProvider

Abstract base class for processing providers.

An algorithm provider is a set of related algorithms, typically from the same external application or related to a common area of analysis.

Note

This is an abstract class, with methods which must be implemented by a subclass.

The following methods must be implemented: id(), loadAlgorithms(), name()

Class Hierarchy

Inheritance diagram of qgis.core.QgsProcessingProvider

Base classes

QObject

Subclasses

Qgs3DAlgorithms

QGIS 3D processing algorithm provider.

QgsNativeAlgorithms

Native c++ processing algorithm provider.

Enums

Flag

alias of ProcessingProviderFlag

Abstract Methods

id

Returns the unique provider id, used for identifying the provider.

loadAlgorithms

Loads all algorithms belonging to this provider.

name

Returns the provider name, which is used to describe the provider within the GUI.

Methods

addAlgorithm

Adds an algorithm to the provider.

algorithm

Returns the matching algorithm by name, or None if no matching algorithm is contained by this provider.

algorithms

Returns a list of algorithms supplied by this provider.

refreshAlgorithms

Refreshes the algorithms available from the provider, causing it to re-populate with all associated algorithms.

Virtual Methods

In PyQGIS, only methods marked as virtual can be safely overridden in a Python subclass of QgsProcessingProvider. See the FAQ for more details.

canBeActivated

Returns True if the provider can be activated, or False if it cannot be activated (e.g. due to missing external dependencies).

defaultPointCloudFileExtension

Returns the default file extension to use for point cloud outputs created by the provider.

defaultRasterFileExtension

Returns the default file extension to use for raster outputs created by the provider.

defaultVectorFileExtension

Returns the default file extension to use for vector outputs created by the provider.

defaultVectorTileFileExtension

Returns the default file extension to use for vector tile outputs created by the provider.

flags

Returns the flags indicating how and when the provider operates and should be exposed to users.

helpId

Returns the provider help id string, used for creating QgsHelp urls for algorithms belong to this provider.

icon

Returns an icon for the provider.

isActive

Returns True if the provider is active and able to run algorithms.

isSupportedOutputValue

Returns True if the specified outputValue is of a supported file format for the given destination parameter.

load

Loads the provider.

longName

Returns the longer version of the provider name, which can include extra details such as version numbers.

supportedOutputPointCloudLayerExtensions

Returns a list of the point cloud format file extensions supported by this provider.

supportedOutputRasterLayerExtensions

Returns a list of the raster format file extensions supported by this provider.

supportedOutputTableExtensions

Returns a list of the table (geometry-less vector layers) file extensions supported by this provider.

supportedOutputVectorLayerExtensions

Returns a list of the vector format file extensions supported by this provider.

supportedOutputVectorTileLayerExtensions

Returns a list of the vector tile format file extensions supported by this provider.

supportsNonFileBasedOutput

Returns True if the provider supports non-file based outputs (such as memory layers or direct database outputs).

svgIconPath

Returns a path to an SVG version of the provider's icon.

unload

Unloads the provider.

versionInfo

Returns a version information string for the provider, or an empty string if this is not applicable (e.g. for inbuilt Processing providers).

warningMessage

Returns an optional warning message to show users when running algorithms from this provider.

Signals

algorithmsLoaded

Emitted when the provider has loaded (or refreshed) its list of available algorithms.

class qgis.core.QgsProcessingProvider[source]

Bases: QObject

__init__(parent: QObject | None = None)

Constructor for QgsProcessingProvider.

Parameters:

parent (Optional[QObject] = None)

Flag

alias of ProcessingProviderFlag

Flags

alias of ProcessingProviderFlags

addAlgorithm(self, algorithm: QgsProcessingAlgorithm | None) bool[source]

Adds an algorithm to the provider. Ownership of the algorithm is transferred to the provider.

Parameters:

algorithm (Optional[QgsProcessingAlgorithm])

Return type:

bool

algorithm(self, name: str | None) QgsProcessingAlgorithm | None[source]

Returns the matching algorithm by name, or None if no matching algorithm is contained by this provider.

See also

algorithms()

Parameters:

name (Optional[str])

Return type:

Optional[QgsProcessingAlgorithm]

algorithms(self) List[QgsProcessingAlgorithm]

Returns a list of algorithms supplied by this provider.

See also

algorithm()

Return type:

List[QgsProcessingAlgorithm]

signal algorithmsLoaded[source]

Emitted when the provider has loaded (or refreshed) its list of available algorithms.

virtual canBeActivated(self) bool[source]

Returns True if the provider can be activated, or False if it cannot be activated (e.g. due to missing external dependencies).

See also

isActive()

Return type:

bool

virtual defaultPointCloudFileExtension(self) str[source]

Returns the default file extension to use for point cloud outputs created by the provider.

The default implementation returns the user’s default Processing point cloud output format setting, if it’s supported by the provider (see supportedOutputPointCloudLayerExtensions()). Otherwise the first reported supported point cloud format will be used.

Added in version 3.24.

Return type:

str

virtual defaultRasterFileExtension(self) str[source]

Returns the default file extension to use for raster outputs created by the provider.

The default implementation returns the user’s default Processing raster output format setting, if it’s supported by the provider (see supportedOutputRasterLayerExtensions()). Otherwise the first reported supported raster format will be used.

Return type:

str

virtual defaultVectorFileExtension(self, hasGeometry: bool = True) str[source]

Returns the default file extension to use for vector outputs created by the provider.

If hasGeometry is True then the output file format must have support for geometry. If hasGeometry is False then non-spatial formats can be used.

The default implementation returns the user’s default Processing vector output format setting, if it’s supported by the provider (see supportedOutputVectorLayerExtensions()). Otherwise the first reported supported vector format will be used.

Parameters:

hasGeometry (bool = True)

Return type:

str

virtual defaultVectorTileFileExtension(self) str[source]

Returns the default file extension to use for vector tile outputs created by the provider.

The default implementation returns the user’s default Processing vector tile output format setting, if it’s supported by the provider (see supportedOutputVectorTileLayerExtensions()). Otherwise the first reported supported vector tile format will be used.

Added in version 3.32.

Return type:

str

virtual flags(self) Qgis.ProcessingProviderFlags[source]

Returns the flags indicating how and when the provider operates and should be exposed to users. Default is no flags.

Added in version 3.14.

Return type:

Qgis.ProcessingProviderFlags

virtual helpId(self) str[source]

Returns the provider help id string, used for creating QgsHelp urls for algorithms belong to this provider. By default, this returns an empty string, meaning that no QgsHelp url should be created for the provider’s algorithms.

See also

id()

Return type:

str

virtual icon(self) QIcon[source]

Returns an icon for the provider.

See also

svgIconPath()

Return type:

QIcon

abstract id(self) str[source]

Returns the unique provider id, used for identifying the provider. This string should be a unique, short, character only string, eg “qgis” or “gdal”. This string should not be localised.

See also

name()

See also

helpId()

Return type:

str

virtual isActive(self) bool[source]

Returns True if the provider is active and able to run algorithms.

Return type:

bool

virtual isSupportedOutputValue(self, outputValue: Any, parameter: QgsProcessingDestinationParameter | None, context: QgsProcessingContext)[source]

Returns True if the specified outputValue is of a supported file format for the given destination parameter.

If the output value is not supported, error will be set to a descriptive message explaining why.

Added in version 3.6.

Parameters:
virtual load(self) bool[source]

Loads the provider. This will be called when the plugin is being loaded, and any general setup actions should occur in an overridden version of this method. Subclasses should not individually load any algorithms in their load() implementations, as that must occur within the loadAlgorithms() method. Instead, subclasses should call refreshAlgorithms() from any overloaded load() method to trigger an initial load of the provider’s algorithms.

Return type:

bool

Returns:

True if provider could be successfully loaded

See also

unload()

abstract loadAlgorithms(self)[source]

Loads all algorithms belonging to this provider. Subclasses should implement this, calling addAlgorithm() to register all their associated algorithms.

virtual longName(self) str[source]

Returns the longer version of the provider name, which can include extra details such as version numbers. E.g. “Lastools LIDAR tools (version 2.2.1)”. This string should be localised.

The default implementation returns the same string as name().

See also

name()

See also

id()

Return type:

str

abstract name(self) str[source]

Returns the provider name, which is used to describe the provider within the GUI. This string should be short (e.g. “Lastools”) and localised.

See also

longName()

See also

id()

Return type:

str

refreshAlgorithms(self)[source]

Refreshes the algorithms available from the provider, causing it to re-populate with all associated algorithms.

virtual supportedOutputPointCloudLayerExtensions(self) List[str][source]

Returns a list of the point cloud format file extensions supported by this provider.

Added in version 3.24.

Return type:

List[str]

virtual supportedOutputRasterLayerExtensions(self) List[str][source]

Returns a list of the raster format file extensions supported by this provider.

Return type:

List[str]

virtual supportedOutputTableExtensions(self) List[str][source]

Returns a list of the table (geometry-less vector layers) file extensions supported by this provider.

By default this is the same as supportedOutputVectorLayerExtensions(). Providers which utilize different formats for geometry-less layers can override this method to return a different list of supported formats.

Added in version 3.4.3.

Return type:

List[str]

virtual supportedOutputVectorLayerExtensions(self) List[str][source]

Returns a list of the vector format file extensions supported by this provider.

Return type:

List[str]

virtual supportedOutputVectorTileLayerExtensions(self) List[str][source]

Returns a list of the vector tile format file extensions supported by this provider.

By default returns a list containing only “mbtiles” extension.

Added in version 3.32.

Return type:

List[str]

virtual supportsNonFileBasedOutput(self) bool[source]

Returns True if the provider supports non-file based outputs (such as memory layers or direct database outputs). If a provider returns False for this method than it indicates that none of the outputs from any of the provider’s algorithms have support for non-file based outputs. Returning True indicates that the algorithm’s parameters will each individually declare their non-file based support.

The default behavior for providers is to support non-file based outputs, and most providers which rely solely on QGIS API (and which do not depend on third-party scripts or external dependencies) will automatically support this.

Return type:

bool

virtual svgIconPath(self) str[source]

Returns a path to an SVG version of the provider’s icon.

See also

icon()

Return type:

str

virtual unload(self)[source]

Unloads the provider. Any tear-down steps required by the provider should be implemented here.

See also

load()

virtual versionInfo(self) str[source]

Returns a version information string for the provider, or an empty string if this is not applicable (e.g. for inbuilt Processing providers).

For plugin based providers, this should return the plugin’s version identifier.

Added in version 3.8.

Return type:

str

virtual warningMessage(self) str[source]

Returns an optional warning message to show users when running algorithms from this provider.

This can be used to return a translated warning message which should be shown to users of this provider. It’s intended for use in cases such as a provider which relies on a 3rd-party backend, where the version of the backend software is not officially supported, or for alerting users to providers in a “beta” or “untrustworthy” state.

Added in version 3.10.1.

Return type:

str