Skip to content
Browse files

[needs-docs][processing] Monkey patch stable external Processing API …

…into qgis.processing

Instead of encouraging use of the internal Processing modules
(e.g. from import run , import processing, ...)
instead expose all Python specific STABLE processing additions
to the qgis.processing module.

Instead, scripts and plugins should now use

from qgis.processing import run, algorithmHelp,...

This makes a clear distinction between internal Processing python
modules (i.e., everything else!) and the parts of Processing
which are stable and designed to be used by plugins and scripts.

TODO: QGIS 4.0 -- move the internal Processing plugin modules
to __processing, to clearer indicate that this is all internal
  • Loading branch information
nyalldawson committed Mar 28, 2019
1 parent bf7d9cb commit 64387a2254835bb1f91fbbd23f39720ea0c4b4ec
Showing with 11 additions and 0 deletions.
  1. +11 −0 python/plugins/processing/
@@ -31,6 +31,17 @@
from import * # NOQA
from import * # NOQA

# monkey patch Python specific Processing API into stable qgis.processing module
import qgis.processing
qgis.processing.algorithmHelp = algorithmHelp = run
qgis.processing.runAndLoadResults = runAndLoadResults
qgis.processing.createAlgorithmDialog = createAlgorithmDialog
qgis.processing.execAlgorithmDialog = execAlgorithmDialog
qgis.processing.createContext = createContext
qgis.processing.isWindows = isWindows
qgis.processing.isMac = isMac

def classFactory(iface):
from processing.ProcessingPlugin import ProcessingPlugin

2 comments on commit 64387a2


This comment has been minimized.

Copy link

@3nids 3nids replied Oct 15, 2019

@nyalldawson does this need an app to run?
I am asking because I would like to get these in the API docs, but they are not around if you don't start the app I guess.
On way would be to monkey patch them in python/processing/ instead.
Is it possible to move them?


This comment has been minimized.

Copy link

@Gustry Gustry replied Apr 23, 2020

I just got the issue on windows, OSGEO4W, 3.10 and 3.12.
Doing qgis.processing is not calling this file but instead.
So it leads to an ImportError.
Should I open a ticket?

Please sign in to comment.
You can’t perform that action at this time.