Skip to content

Commit 63b6a77

Browse files
committed
[processing] Add API to convert a parameter definition to an equivalent
Python constructor string
1 parent d4b262c commit 63b6a77

File tree

7 files changed

+728
-3
lines changed

7 files changed

+728
-3
lines changed

python/core/auto_generated/processing/qgsprocessing.sip.in

+5
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ and parameters.
3939
TypeMesh
4040
};
4141

42+
enum PythonOutputType
43+
{
44+
PythonQgsProcessingAlgorithmSubclass,
45+
};
46+
4247
static QString sourceTypeToString( SourceType type );
4348
%Docstring
4449
Converts a source ``type`` to a string representation.

python/core/auto_generated/processing/qgsprocessingparameters.sip.in

+46-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,18 @@ The returned value must be correctly escaped - e.g. string values must be wrappe
303303
virtual QString asScriptCode() const;
304304
%Docstring
305305
Returns the parameter definition encoded in a string which can be used within a
306-
Python processing script.
306+
Processing script.
307+
%End
308+
309+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
310+
%Docstring
311+
Returns the parameter definition as a Python command which can be used within a
312+
Python Processing script.
313+
314+
The ``outputType`` argument specifies the desired output format for the Python string,
315+
i.e. the intended end use of the generated Python code.
316+
317+
.. versionadded:: 3.6
307318
%End
308319

309320
virtual QVariantMap toVariantMap() const;
@@ -1172,6 +1183,8 @@ Returns the type name for the parameter class.
11721183

11731184
virtual QString asScriptCode() const;
11741185

1186+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1187+
11751188

11761189
Behavior behavior() const;
11771190
%Docstring
@@ -1245,6 +1258,8 @@ Returns the type name for the parameter class.
12451258

12461259
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
12471260

1261+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1262+
12481263

12491264
QStringList headers() const;
12501265
%Docstring
@@ -1343,6 +1358,8 @@ Returns the type name for the parameter class.
13431358

13441359
virtual QString asScriptCode() const;
13451360

1361+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1362+
13461363

13471364
QgsProcessing::SourceType layerType() const;
13481365
%Docstring
@@ -1440,6 +1457,8 @@ Returns the type name for the parameter class.
14401457

14411458
virtual QString toolTip() const;
14421459

1460+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1461+
14431462

14441463
double minimum() const;
14451464
%Docstring
@@ -1542,6 +1561,8 @@ Returns the type name for the parameter class.
15421561

15431562
virtual QStringList dependsOnOtherParameters() const;
15441563

1564+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1565+
15451566

15461567
QString parentParameterName() const;
15471568
%Docstring
@@ -1614,6 +1635,8 @@ Returns the type name for the parameter class.
16141635

16151636
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
16161637

1638+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1639+
16171640

16181641
QgsProcessingParameterNumber::Type dataType() const;
16191642
%Docstring
@@ -1713,6 +1736,8 @@ Returns the type name for the parameter class.
17131736

17141737
virtual QString asScriptCode() const;
17151738

1739+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1740+
17161741

17171742
QStringList options() const;
17181743
%Docstring
@@ -1785,6 +1810,8 @@ Returns the type name for the parameter class.
17851810

17861811
virtual QString asScriptCode() const;
17871812

1813+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1814+
17881815

17891816
bool multiLine() const;
17901817
%Docstring
@@ -1887,6 +1914,8 @@ Returns the type name for the parameter class.
18871914

18881915
virtual QStringList dependsOnOtherParameters() const;
18891916

1917+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
1918+
18901919

18911920
QString parentLayerParameterName() const;
18921921
%Docstring
@@ -1985,6 +2014,8 @@ Returns the type name for the parameter class.
19852014

19862015
virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
19872016

2017+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2018+
19882019

19892020
virtual QVariantMap toVariantMap() const;
19902021

@@ -2080,6 +2111,8 @@ Returns the type name for the parameter class.
20802111

20812112
virtual QString asScriptCode() const;
20822113

2114+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2115+
20832116
virtual QStringList dependsOnOtherParameters() const;
20842117

20852118

@@ -2171,6 +2204,8 @@ Returns the type name for the parameter class.
21712204

21722205
virtual QString asScriptCode() const;
21732206

2207+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2208+
21742209

21752210
virtual QVariantMap toVariantMap() const;
21762211

@@ -2212,6 +2247,8 @@ output will not be created by default.
22122247

22132248
virtual bool fromVariantMap( const QVariantMap &map );
22142249

2250+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2251+
22152252

22162253
virtual QgsProcessingOutputDefinition *toOutputDefinition() const = 0 /Factory/;
22172254
%Docstring
@@ -2321,6 +2358,8 @@ Returns the type name for the parameter class.
23212358

23222359
virtual QString defaultFileExtension() const;
23232360

2361+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2362+
23242363

23252364
virtual QStringList supportedOutputVectorLayerExtensions() const;
23262365
%Docstring
@@ -2411,6 +2450,8 @@ Returns the type name for the parameter class.
24112450

24122451
virtual QString defaultFileExtension() const;
24132452

2453+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2454+
24142455

24152456
virtual QStringList supportedOutputVectorLayerExtensions() const;
24162457
%Docstring
@@ -2551,6 +2592,8 @@ Returns the type name for the parameter class.
25512592

25522593
virtual QString defaultFileExtension() const;
25532594

2595+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2596+
25542597

25552598
QString fileFilter() const;
25562599
%Docstring
@@ -2658,6 +2701,8 @@ Returns the type name for the parameter class.
26582701

26592702
virtual QStringList dependsOnOtherParameters() const;
26602703

2704+
virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
2705+
26612706

26622707
QString parentLayerParameterName() const;
26632708
%Docstring

src/core/processing/models/qgsprocessingmodelalgorithm.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "qgsexception.h"
2424
#include "qgsvectorlayer.h"
2525
#include "qgsapplication.h"
26+
#include "qgsprocessingparametertype.h"
2627

2728
#include <QFile>
2829
#include <QTextStream>

src/core/processing/qgsprocessing.h

+6
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ class CORE_EXPORT QgsProcessing
5454
TypeMesh = 6 //!< Mesh layers \since QGIS 3.6
5555
};
5656

57+
//! Available Python output types
58+
enum PythonOutputType
59+
{
60+
PythonQgsProcessingAlgorithmSubclass, //!< Full Python QgsProcessingAlgorithm subclass
61+
};
62+
5763
/**
5864
* Converts a source \a type to a string representation.
5965
*

0 commit comments

Comments
 (0)