Skip to content

Commit c31cd9d

Browse files
committed
Move a processing enum to enum class in Qgis
1 parent b626705 commit c31cd9d

File tree

14 files changed

+141
-105
lines changed

14 files changed

+141
-105
lines changed

python/PyQt6/core/auto_additions/qgis.py

+16
Original file line numberDiff line numberDiff line change
@@ -2783,6 +2783,22 @@
27832783
Qgis.HistoryProviderBackends = lambda flags=0: Qgis.HistoryProviderBackend(flags)
27842784
Qgis.HistoryProviderBackends.baseClass = Qgis
27852785
HistoryProviderBackends = Qgis # dirty hack since SIP seems to introduce the flags in module
2786+
QgsProcessingFeatureSourceDefinition.Flag = Qgis.ProcessingFeatureSourceDefinitionFlag
2787+
# monkey patching scoped based enum
2788+
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck = Qgis.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck
2789+
QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck = Qgis.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck
2790+
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck.is_monkey_patched = True
2791+
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck.__doc__ = "If set, the default geometry check method (as dictated by QgsProcessingContext) will be overridden for this source"
2792+
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature = Qgis.ProcessingFeatureSourceDefinitionFlag.CreateIndividualOutputPerInputFeature
2793+
QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature = Qgis.ProcessingFeatureSourceDefinitionFlag.CreateIndividualOutputPerInputFeature
2794+
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature.is_monkey_patched = True
2795+
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature.__doc__ = "If set, every feature processed from this source will be placed into its own individually created output destination. Support for this flag depends on how an algorithm is executed."
2796+
Qgis.ProcessingFeatureSourceDefinitionFlag.__doc__ = "Flags which control behavior for a Processing feature source.\n\n.. note::\n\n Prior to QGIS 3.36 this was available as :py:class:`QgsProcessingFeatureSourceDefinition`.Flag\n\n.. versionadded:: 3.36\n\n" + '* ``FlagOverrideDefaultGeometryCheck``: ' + Qgis.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck.__doc__ + '\n' + '* ``FlagCreateIndividualOutputPerInputFeature``: ' + Qgis.ProcessingFeatureSourceDefinitionFlag.CreateIndividualOutputPerInputFeature.__doc__
2797+
# --
2798+
Qgis.ProcessingFeatureSourceDefinitionFlag.baseClass = Qgis
2799+
Qgis.ProcessingFeatureSourceDefinitionFlags = lambda flags=0: Qgis.ProcessingFeatureSourceDefinitionFlag(flags)
2800+
Qgis.ProcessingFeatureSourceDefinitionFlags.baseClass = Qgis
2801+
ProcessingFeatureSourceDefinitionFlags = Qgis # dirty hack since SIP seems to introduce the flags in module
27862802
# monkey patching scoped based enum
27872803
Qgis.ProcessingModelChildParameterSource.ModelParameter.__doc__ = "Parameter value is taken from a parent model parameter"
27882804
Qgis.ProcessingModelChildParameterSource.ChildOutput.__doc__ = "Parameter value is taken from an output generated by a child algorithm"

python/PyQt6/core/auto_additions/qgsprocessingparameters.py

-10
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,4 @@
11
# The following has been generated automatically from src/core/processing/qgsprocessingparameters.h
2-
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck = QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck
3-
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature = QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature
4-
QgsProcessingFeatureSourceDefinition.Flags = lambda flags=0: QgsProcessingFeatureSourceDefinition.Flag(flags)
5-
def _force_int(v): return v if isinstance(v, int) else int(v.value)
6-
7-
8-
QgsProcessingFeatureSourceDefinition.Flag.__bool__ = lambda flag: _force_int(flag)
9-
QgsProcessingFeatureSourceDefinition.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
10-
QgsProcessingFeatureSourceDefinition.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
11-
QgsProcessingFeatureSourceDefinition.Flag.__or__ = lambda flag1, flag2: QgsProcessingFeatureSourceDefinition.Flag(_force_int(flag1) | _force_int(flag2))
122
QgsProcessingParameterDefinition.FlagAdvanced = QgsProcessingParameterDefinition.Flag.FlagAdvanced
133
QgsProcessingParameterDefinition.FlagHidden = QgsProcessingParameterDefinition.Flag.FlagHidden
144
QgsProcessingParameterDefinition.FlagOptional = QgsProcessingParameterDefinition.Flag.FlagOptional

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

+5-15
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,8 @@ Encapsulates settings relating to a feature source input to a processing algorit
2525
%End
2626
public:
2727

28-
enum Flag
29-
{
30-
FlagOverrideDefaultGeometryCheck,
31-
FlagCreateIndividualOutputPerInputFeature,
32-
};
33-
typedef QFlags<QgsProcessingFeatureSourceDefinition::Flag> Flags;
34-
35-
3628
QgsProcessingFeatureSourceDefinition( const QString &source = QString(), bool selectedFeaturesOnly = false, long long featureLimit = -1,
37-
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
29+
Qgis::ProcessingFeatureSourceDefinitionFlags flags = Qgis::ProcessingFeatureSourceDefinitionFlags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
3830
%Docstring
3931
Constructor for QgsProcessingFeatureSourceDefinition, accepting a static string ``source``.
4032

@@ -48,12 +40,12 @@ to filter the features read from the source.
4840

4941
The ``flags`` argument can be used to specify flags which dictate the source behavior.
5042

51-
If the QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
43+
If the :py:class:`Qgis`.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
5244
the default geometry check method (as dictated by :py:class:`QgsProcessingContext`) for this source.
5345
%End
5446

5547
QgsProcessingFeatureSourceDefinition( const QgsProperty &source, bool selectedFeaturesOnly = false, long long featureLimit = -1,
56-
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
48+
Qgis::ProcessingFeatureSourceDefinitionFlags flags = Qgis::ProcessingFeatureSourceDefinitionFlags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
5749
%Docstring
5850
Constructor for QgsProcessingFeatureSourceDefinition, accepting a QgsProperty source.
5951

@@ -67,7 +59,7 @@ to filter the features read from the source.
6759

6860
The ``flags`` argument can be used to specify flags which dictate the source behavior.
6961

70-
If the QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
62+
If the :py:class:`Qgis`.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
7163
the default geometry check method (as dictated by :py:class:`QgsProcessingContext`) for this source.
7264
%End
7365

@@ -79,7 +71,7 @@ the default geometry check method (as dictated by :py:class:`QgsProcessingContex
7971

8072
QString filterExpression;
8173

82-
Flags flags;
74+
Qgis::ProcessingFeatureSourceDefinitionFlags flags;
8375

8476
Qgis::InvalidGeometryCheck geometryCheck;
8577

@@ -111,8 +103,6 @@ You can use :py:class:`QgsXmlUtils`.readVariant to load it from an XML document.
111103

112104
};
113105

114-
QFlags<QgsProcessingFeatureSourceDefinition::Flag> operator|(QgsProcessingFeatureSourceDefinition::Flag f1, QFlags<QgsProcessingFeatureSourceDefinition::Flag> f2);
115-
116106

117107

118108
class QgsProcessingOutputLayerDefinition

python/PyQt6/core/auto_generated/qgis.sip.in

+11
Original file line numberDiff line numberDiff line change
@@ -1615,6 +1615,15 @@ The development version
16151615
typedef QFlags<Qgis::HistoryProviderBackend> HistoryProviderBackends;
16161616

16171617

1618+
enum class ProcessingFeatureSourceDefinitionFlag /BaseType=IntFlag/
1619+
{
1620+
OverrideDefaultGeometryCheck,
1621+
CreateIndividualOutputPerInputFeature,
1622+
};
1623+
1624+
typedef QFlags<Qgis::ProcessingFeatureSourceDefinitionFlag> ProcessingFeatureSourceDefinitionFlags;
1625+
1626+
16181627
enum class ProcessingModelChildParameterSource /BaseType=IntFlag/
16191628
{
16201629
ModelParameter,
@@ -2590,6 +2599,8 @@ QFlags<Qgis::VectorTileProviderFlag> operator|(Qgis::VectorTileProviderFlag f1,
25902599

25912600
QFlags<Qgis::FeatureRequestFlag> operator|(Qgis::FeatureRequestFlag f1, QFlags<Qgis::FeatureRequestFlag> f2);
25922601

2602+
QFlags<Qgis::ProcessingFeatureSourceDefinitionFlag> operator|(Qgis::ProcessingFeatureSourceDefinitionFlag f1, QFlags<Qgis::ProcessingFeatureSourceDefinitionFlag> f2);
2603+
25932604

25942605

25952606

python/core/auto_additions/qgis.py

+15
Original file line numberDiff line numberDiff line change
@@ -2736,6 +2736,21 @@
27362736
Qgis.HistoryProviderBackend.baseClass = Qgis
27372737
Qgis.HistoryProviderBackends.baseClass = Qgis
27382738
HistoryProviderBackends = Qgis # dirty hack since SIP seems to introduce the flags in module
2739+
QgsProcessingFeatureSourceDefinition.Flag = Qgis.ProcessingFeatureSourceDefinitionFlag
2740+
# monkey patching scoped based enum
2741+
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck = Qgis.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck
2742+
QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck = Qgis.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck
2743+
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck.is_monkey_patched = True
2744+
QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck.__doc__ = "If set, the default geometry check method (as dictated by QgsProcessingContext) will be overridden for this source"
2745+
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature = Qgis.ProcessingFeatureSourceDefinitionFlag.CreateIndividualOutputPerInputFeature
2746+
QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature = Qgis.ProcessingFeatureSourceDefinitionFlag.CreateIndividualOutputPerInputFeature
2747+
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature.is_monkey_patched = True
2748+
QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature.__doc__ = "If set, every feature processed from this source will be placed into its own individually created output destination. Support for this flag depends on how an algorithm is executed."
2749+
Qgis.ProcessingFeatureSourceDefinitionFlag.__doc__ = "Flags which control behavior for a Processing feature source.\n\n.. note::\n\n Prior to QGIS 3.36 this was available as :py:class:`QgsProcessingFeatureSourceDefinition`.Flag\n\n.. versionadded:: 3.36\n\n" + '* ``FlagOverrideDefaultGeometryCheck``: ' + Qgis.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck.__doc__ + '\n' + '* ``FlagCreateIndividualOutputPerInputFeature``: ' + Qgis.ProcessingFeatureSourceDefinitionFlag.CreateIndividualOutputPerInputFeature.__doc__
2750+
# --
2751+
Qgis.ProcessingFeatureSourceDefinitionFlag.baseClass = Qgis
2752+
Qgis.ProcessingFeatureSourceDefinitionFlags.baseClass = Qgis
2753+
ProcessingFeatureSourceDefinitionFlags = Qgis # dirty hack since SIP seems to introduce the flags in module
27392754
# monkey patching scoped based enum
27402755
Qgis.ProcessingModelChildParameterSource.ModelParameter.__doc__ = "Parameter value is taken from a parent model parameter"
27412756
Qgis.ProcessingModelChildParameterSource.ChildOutput.__doc__ = "Parameter value is taken from an output generated by a child algorithm"

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

+5-15
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,8 @@ Encapsulates settings relating to a feature source input to a processing algorit
2525
%End
2626
public:
2727

28-
enum Flag
29-
{
30-
FlagOverrideDefaultGeometryCheck,
31-
FlagCreateIndividualOutputPerInputFeature,
32-
};
33-
typedef QFlags<QgsProcessingFeatureSourceDefinition::Flag> Flags;
34-
35-
3628
QgsProcessingFeatureSourceDefinition( const QString &source = QString(), bool selectedFeaturesOnly = false, long long featureLimit = -1,
37-
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
29+
Qgis::ProcessingFeatureSourceDefinitionFlags flags = Qgis::ProcessingFeatureSourceDefinitionFlags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
3830
%Docstring
3931
Constructor for QgsProcessingFeatureSourceDefinition, accepting a static string ``source``.
4032

@@ -48,12 +40,12 @@ to filter the features read from the source.
4840

4941
The ``flags`` argument can be used to specify flags which dictate the source behavior.
5042

51-
If the QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
43+
If the :py:class:`Qgis`.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
5244
the default geometry check method (as dictated by :py:class:`QgsProcessingContext`) for this source.
5345
%End
5446

5547
QgsProcessingFeatureSourceDefinition( const QgsProperty &source, bool selectedFeaturesOnly = false, long long featureLimit = -1,
56-
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
48+
Qgis::ProcessingFeatureSourceDefinitionFlags flags = Qgis::ProcessingFeatureSourceDefinitionFlags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
5749
%Docstring
5850
Constructor for QgsProcessingFeatureSourceDefinition, accepting a QgsProperty source.
5951

@@ -67,7 +59,7 @@ to filter the features read from the source.
6759

6860
The ``flags`` argument can be used to specify flags which dictate the source behavior.
6961

70-
If the QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
62+
If the :py:class:`Qgis`.ProcessingFeatureSourceDefinitionFlag.OverrideDefaultGeometryCheck is set in ``flags``, then the value of ``geometryCheck`` will override
7163
the default geometry check method (as dictated by :py:class:`QgsProcessingContext`) for this source.
7264
%End
7365

@@ -79,7 +71,7 @@ the default geometry check method (as dictated by :py:class:`QgsProcessingContex
7971

8072
QString filterExpression;
8173

82-
Flags flags;
74+
Qgis::ProcessingFeatureSourceDefinitionFlags flags;
8375

8476
Qgis::InvalidGeometryCheck geometryCheck;
8577

@@ -111,8 +103,6 @@ You can use :py:class:`QgsXmlUtils`.readVariant to load it from an XML document.
111103

112104
};
113105

114-
QFlags<QgsProcessingFeatureSourceDefinition::Flag> operator|(QgsProcessingFeatureSourceDefinition::Flag f1, QFlags<QgsProcessingFeatureSourceDefinition::Flag> f2);
115-
116106

117107

118108
class QgsProcessingOutputLayerDefinition

python/core/auto_generated/qgis.sip.in

+11
Original file line numberDiff line numberDiff line change
@@ -1615,6 +1615,15 @@ The development version
16151615
typedef QFlags<Qgis::HistoryProviderBackend> HistoryProviderBackends;
16161616

16171617

1618+
enum class ProcessingFeatureSourceDefinitionFlag
1619+
{
1620+
OverrideDefaultGeometryCheck,
1621+
CreateIndividualOutputPerInputFeature,
1622+
};
1623+
1624+
typedef QFlags<Qgis::ProcessingFeatureSourceDefinitionFlag> ProcessingFeatureSourceDefinitionFlags;
1625+
1626+
16181627
enum class ProcessingModelChildParameterSource
16191628
{
16201629
ModelParameter,
@@ -2590,6 +2599,8 @@ QFlags<Qgis::VectorTileProviderFlag> operator|(Qgis::VectorTileProviderFlag f1,
25902599

25912600
QFlags<Qgis::FeatureRequestFlag> operator|(Qgis::FeatureRequestFlag f1, QFlags<Qgis::FeatureRequestFlag> f2);
25922601

2602+
QFlags<Qgis::ProcessingFeatureSourceDefinitionFlag> operator|(Qgis::ProcessingFeatureSourceDefinitionFlag f1, QFlags<Qgis::ProcessingFeatureSourceDefinitionFlag> f2);
2603+
25932604

25942605

25952606

src/core/processing/qgsprocessingparameters.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ bool QgsProcessingFeatureSourceDefinition::loadVariant( const QVariantMap &map )
6060
selectedFeaturesOnly = map.value( QStringLiteral( "selected_only" ), false ).toBool();
6161
featureLimit = map.value( QStringLiteral( "feature_limit" ), -1 ).toLongLong();
6262
filterExpression = map.value( QStringLiteral( "filter" ) ).toString();
63-
flags = static_cast< Flags >( map.value( QStringLiteral( "flags" ), 0 ).toInt() );
63+
flags = static_cast< Qgis::ProcessingFeatureSourceDefinitionFlags >( map.value( QStringLiteral( "flags" ), 0 ).toInt() );
6464
geometryCheck = static_cast< Qgis::InvalidGeometryCheck >( map.value( QStringLiteral( "geometry_check" ), static_cast< int >( Qgis::InvalidGeometryCheck::AbortOnInvalid ) ).toInt() );
6565
return true;
6666
}
@@ -6190,9 +6190,9 @@ QString QgsProcessingParameterFeatureSource::valueAsPythonString( const QVariant
61906190

61916191
QStringList flags;
61926192
QString flagString;
6193-
if ( fromVar.flags & QgsProcessingFeatureSourceDefinition::Flag::FlagOverrideDefaultGeometryCheck )
6193+
if ( fromVar.flags & Qgis::ProcessingFeatureSourceDefinitionFlag::OverrideDefaultGeometryCheck )
61946194
flags << QStringLiteral( "QgsProcessingFeatureSourceDefinition.FlagOverrideDefaultGeometryCheck" );
6195-
if ( fromVar.flags & QgsProcessingFeatureSourceDefinition::Flag::FlagCreateIndividualOutputPerInputFeature )
6195+
if ( fromVar.flags & Qgis::ProcessingFeatureSourceDefinitionFlag::CreateIndividualOutputPerInputFeature )
61966196
flags << QStringLiteral( "QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature" );
61976197
if ( !flags.empty() )
61986198
flagString = flags.join( QLatin1String( " | " ) );

0 commit comments

Comments
 (0)