Skip to content

Commit 123f2df

Browse files
committed
[processing] Ensure unset parameters are translated to Python
None values when representing parameters as pythong strings (Cherry picked from d05f95f)
1 parent 28935d1 commit 123f2df

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

src/core/processing/qgsprocessingparameters.cpp

+66
Original file line numberDiff line numberDiff line change
@@ -1217,6 +1217,9 @@ bool QgsProcessingParameterDefinition::checkValueIsAcceptable( const QVariant &i
12171217

12181218
QString QgsProcessingParameterDefinition::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
12191219
{
1220+
if ( !value.isValid() )
1221+
return QStringLiteral( "None" );
1222+
12201223
if ( value.canConvert<QgsProperty>() )
12211224
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
12221225

@@ -1283,6 +1286,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterBoolean::clone() const
12831286

12841287
QString QgsProcessingParameterBoolean::valueAsPythonString( const QVariant &val, QgsProcessingContext & ) const
12851288
{
1289+
if ( !val.isValid() )
1290+
return QStringLiteral( "None" );
1291+
12861292
if ( val.canConvert<QgsProperty>() )
12871293
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
12881294
return val.toBool() ? QStringLiteral( "True" ) : QStringLiteral( "False" );
@@ -1336,6 +1342,9 @@ bool QgsProcessingParameterCrs::checkValueIsAcceptable( const QVariant &input, Q
13361342

13371343
QString QgsProcessingParameterCrs::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
13381344
{
1345+
if ( !value.isValid() )
1346+
return QStringLiteral( "None" );
1347+
13391348
if ( value.canConvert<QgsProperty>() )
13401349
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
13411350

@@ -1397,6 +1406,9 @@ bool QgsProcessingParameterMapLayer::checkValueIsAcceptable( const QVariant &inp
13971406

13981407
QString QgsProcessingParameterMapLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
13991408
{
1409+
if ( !val.isValid() )
1410+
return QStringLiteral( "None" );
1411+
14001412
if ( val.canConvert<QgsProperty>() )
14011413
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
14021414

@@ -1479,6 +1491,9 @@ bool QgsProcessingParameterExtent::checkValueIsAcceptable( const QVariant &input
14791491

14801492
QString QgsProcessingParameterExtent::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
14811493
{
1494+
if ( !value.isValid() )
1495+
return QStringLiteral( "None" );
1496+
14821497
if ( value.canConvert<QgsProperty>() )
14831498
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
14841499

@@ -1566,6 +1581,9 @@ bool QgsProcessingParameterPoint::checkValueIsAcceptable( const QVariant &input,
15661581

15671582
QString QgsProcessingParameterPoint::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
15681583
{
1584+
if ( !value.isValid() )
1585+
return QStringLiteral( "None" );
1586+
15691587
if ( value.canConvert<QgsProperty>() )
15701588
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
15711589

@@ -1706,6 +1724,9 @@ bool QgsProcessingParameterMatrix::checkValueIsAcceptable( const QVariant &input
17061724

17071725
QString QgsProcessingParameterMatrix::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
17081726
{
1727+
if ( !value.isValid() )
1728+
return QStringLiteral( "None" );
1729+
17091730
if ( value.canConvert<QgsProperty>() )
17101731
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
17111732

@@ -1866,6 +1887,9 @@ bool QgsProcessingParameterMultipleLayers::checkValueIsAcceptable( const QVarian
18661887

18671888
QString QgsProcessingParameterMultipleLayers::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
18681889
{
1890+
if ( !value.isValid() )
1891+
return QStringLiteral( "None" );
1892+
18691893
if ( value.canConvert<QgsProperty>() )
18701894
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
18711895

@@ -2017,6 +2041,9 @@ bool QgsProcessingParameterNumber::checkValueIsAcceptable( const QVariant &input
20172041

20182042
QString QgsProcessingParameterNumber::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
20192043
{
2044+
if ( !value.isValid() )
2045+
return QStringLiteral( "None" );
2046+
20202047
if ( value.canConvert<QgsProperty>() )
20212048
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
20222049

@@ -2147,6 +2174,9 @@ bool QgsProcessingParameterRange::checkValueIsAcceptable( const QVariant &input,
21472174

21482175
QString QgsProcessingParameterRange::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
21492176
{
2177+
if ( !value.isValid() )
2178+
return QStringLiteral( "None" );
2179+
21502180
if ( value.canConvert<QgsProperty>() )
21512181
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
21522182

@@ -2233,6 +2263,9 @@ bool QgsProcessingParameterRasterLayer::checkValueIsAcceptable( const QVariant &
22332263

22342264
QString QgsProcessingParameterRasterLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
22352265
{
2266+
if ( !val.isValid() )
2267+
return QStringLiteral( "None" );
2268+
22362269
if ( val.canConvert<QgsProperty>() )
22372270
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
22382271

@@ -2322,6 +2355,9 @@ bool QgsProcessingParameterEnum::checkValueIsAcceptable( const QVariant &input,
23222355

23232356
QString QgsProcessingParameterEnum::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
23242357
{
2358+
if ( !value.isValid() )
2359+
return QStringLiteral( "None" );
2360+
23252361
if ( value.canConvert<QgsProperty>() )
23262362
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
23272363

@@ -2435,6 +2471,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterString::clone() const
24352471

24362472
QString QgsProcessingParameterString::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
24372473
{
2474+
if ( !value.isValid() )
2475+
return QStringLiteral( "None" );
2476+
24382477
if ( value.canConvert<QgsProperty>() )
24392478
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
24402479

@@ -2517,6 +2556,9 @@ QgsProcessingParameterDefinition *QgsProcessingParameterExpression::clone() cons
25172556

25182557
QString QgsProcessingParameterExpression::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
25192558
{
2559+
if ( !value.isValid() )
2560+
return QStringLiteral( "None" );
2561+
25202562
if ( value.canConvert<QgsProperty>() )
25212563
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
25222564

@@ -2605,6 +2647,9 @@ bool QgsProcessingParameterVectorLayer::checkValueIsAcceptable( const QVariant &
26052647

26062648
QString QgsProcessingParameterVectorLayer::valueAsPythonString( const QVariant &val, QgsProcessingContext &context ) const
26072649
{
2650+
if ( !val.isValid() )
2651+
return QStringLiteral( "None" );
2652+
26082653
if ( val.canConvert<QgsProperty>() )
26092654
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( val.value< QgsProperty >().asExpression() );
26102655

@@ -2705,6 +2750,9 @@ bool QgsProcessingParameterField::checkValueIsAcceptable( const QVariant &input,
27052750

27062751
QString QgsProcessingParameterField::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
27072752
{
2753+
if ( !value.isValid() )
2754+
return QStringLiteral( "None" );
2755+
27082756
if ( value.canConvert<QgsProperty>() )
27092757
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
27102758

@@ -2916,6 +2964,9 @@ bool QgsProcessingParameterFeatureSource::checkValueIsAcceptable( const QVariant
29162964

29172965
QString QgsProcessingParameterFeatureSource::valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const
29182966
{
2967+
if ( !value.isValid() )
2968+
return QStringLiteral( "None" );
2969+
29192970
if ( value.canConvert<QgsProperty>() )
29202971
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
29212972

@@ -3087,6 +3138,9 @@ bool QgsProcessingParameterFeatureSink::checkValueIsAcceptable( const QVariant &
30873138

30883139
QString QgsProcessingParameterFeatureSink::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
30893140
{
3141+
if ( !value.isValid() )
3142+
return QStringLiteral( "None" );
3143+
30903144
if ( value.canConvert<QgsProperty>() )
30913145
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
30923146

@@ -3280,6 +3334,9 @@ bool QgsProcessingParameterRasterDestination::checkValueIsAcceptable( const QVar
32803334

32813335
QString QgsProcessingParameterRasterDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
32823336
{
3337+
if ( !value.isValid() )
3338+
return QStringLiteral( "None" );
3339+
32833340
if ( value.canConvert<QgsProperty>() )
32843341
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
32853342

@@ -3365,6 +3422,9 @@ bool QgsProcessingParameterFileDestination::checkValueIsAcceptable( const QVaria
33653422

33663423
QString QgsProcessingParameterFileDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
33673424
{
3425+
if ( !value.isValid() )
3426+
return QStringLiteral( "None" );
3427+
33683428
if ( value.canConvert<QgsProperty>() )
33693429
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
33703430

@@ -3561,6 +3621,9 @@ bool QgsProcessingParameterVectorDestination::checkValueIsAcceptable( const QVar
35613621

35623622
QString QgsProcessingParameterVectorDestination::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
35633623
{
3624+
if ( !value.isValid() )
3625+
return QStringLiteral( "None" );
3626+
35643627
if ( value.canConvert<QgsProperty>() )
35653628
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
35663629

@@ -3733,6 +3796,9 @@ bool QgsProcessingParameterBand::checkValueIsAcceptable( const QVariant &input,
37333796

37343797
QString QgsProcessingParameterBand::valueAsPythonString( const QVariant &value, QgsProcessingContext & ) const
37353798
{
3799+
if ( !value.isValid() )
3800+
return QStringLiteral( "None" );
3801+
37363802
if ( value.canConvert<QgsProperty>() )
37373803
return QStringLiteral( "QgsProperty.fromExpression('%1')" ).arg( value.value< QgsProperty >().asExpression() );
37383804

0 commit comments

Comments
 (0)