Skip to content

Commit 3fcb3e8

Browse files
committed
Promote QgsFeatureRequest enums to enum class, move to Qgis
1 parent 4293d4f commit 3fcb3e8

File tree

141 files changed

+775
-664
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+775
-664
lines changed

python/PyQt6/core/auto_additions/qgis.py

+64
Original file line numberDiff line numberDiff line change
@@ -1671,6 +1671,70 @@
16711671
Qgis.MakeValidMethod.__doc__ = "Algorithms to use when repairing invalid geometries.\n\n.. versionadded:: 3.28\n\n" + '* ``Linework``: ' + Qgis.MakeValidMethod.Linework.__doc__ + '\n' + '* ``Structure``: ' + Qgis.MakeValidMethod.Structure.__doc__
16721672
# --
16731673
Qgis.MakeValidMethod.baseClass = Qgis
1674+
QgsFeatureRequest.Flag = Qgis.FeatureRequestFlag
1675+
# monkey patching scoped based enum
1676+
QgsFeatureRequest.NoFlags = Qgis.FeatureRequestFlag.NoFlags
1677+
QgsFeatureRequest.NoFlags.is_monkey_patched = True
1678+
QgsFeatureRequest.NoFlags.__doc__ = "No flags are set"
1679+
QgsFeatureRequest.NoGeometry = Qgis.FeatureRequestFlag.NoGeometry
1680+
QgsFeatureRequest.NoGeometry.is_monkey_patched = True
1681+
QgsFeatureRequest.NoGeometry.__doc__ = "Geometry is not required. It may still be returned if e.g. required for a filter condition."
1682+
QgsFeatureRequest.SubsetOfAttributes = Qgis.FeatureRequestFlag.SubsetOfAttributes
1683+
QgsFeatureRequest.SubsetOfAttributes.is_monkey_patched = True
1684+
QgsFeatureRequest.SubsetOfAttributes.__doc__ = "Fetch only a subset of attributes (setSubsetOfAttributes sets this flag)"
1685+
QgsFeatureRequest.ExactIntersect = Qgis.FeatureRequestFlag.ExactIntersect
1686+
QgsFeatureRequest.ExactIntersect.is_monkey_patched = True
1687+
QgsFeatureRequest.ExactIntersect.__doc__ = "Use exact geometry intersection (slower) instead of bounding boxes"
1688+
QgsFeatureRequest.IgnoreStaticNodesDuringExpressionCompilation = Qgis.FeatureRequestFlag.IgnoreStaticNodesDuringExpressionCompilation
1689+
QgsFeatureRequest.IgnoreStaticNodesDuringExpressionCompilation.is_monkey_patched = True
1690+
QgsFeatureRequest.IgnoreStaticNodesDuringExpressionCompilation.__doc__ = "If a feature request uses a filter expression which can be partially precalculated due to static nodes in the expression, setting this flag will prevent these precalculated values from being utilized during compilation of the filter for the backend provider. This flag significantly slows down feature requests and should be used for debugging purposes only. (Since QGIS 3.18)"
1691+
QgsFeatureRequest.EmbeddedSymbols = Qgis.FeatureRequestFlag.EmbeddedSymbols
1692+
QgsFeatureRequest.EmbeddedSymbols.is_monkey_patched = True
1693+
QgsFeatureRequest.EmbeddedSymbols.__doc__ = "Retrieve any embedded feature symbology (since QGIS 3.20)"
1694+
Qgis.FeatureRequestFlag.__doc__ = "Flags for controlling feature requests.\n\n.. note::\n\n Prior to QGIS 3.36 this was available as :py:class:`QgsFeatureRequest`.Flag\n\n.. versionadded:: 3.36\n\n" + '* ``NoFlags``: ' + Qgis.FeatureRequestFlag.NoFlags.__doc__ + '\n' + '* ``NoGeometry``: ' + Qgis.FeatureRequestFlag.NoGeometry.__doc__ + '\n' + '* ``SubsetOfAttributes``: ' + Qgis.FeatureRequestFlag.SubsetOfAttributes.__doc__ + '\n' + '* ``ExactIntersect``: ' + Qgis.FeatureRequestFlag.ExactIntersect.__doc__ + '\n' + '* ``IgnoreStaticNodesDuringExpressionCompilation``: ' + Qgis.FeatureRequestFlag.IgnoreStaticNodesDuringExpressionCompilation.__doc__ + '\n' + '* ``EmbeddedSymbols``: ' + Qgis.FeatureRequestFlag.EmbeddedSymbols.__doc__
1695+
# --
1696+
Qgis.FeatureRequestFlag.baseClass = Qgis
1697+
Qgis.FeatureRequestFlags = lambda flags=0: Qgis.FeatureRequestFlag(flags)
1698+
Qgis.FeatureRequestFlags.baseClass = Qgis
1699+
FeatureRequestFlags = Qgis # dirty hack since SIP seems to introduce the flags in module
1700+
QgsFeatureRequest.FilterType = Qgis.FeatureRequestFilterType
1701+
# monkey patching scoped based enum
1702+
QgsFeatureRequest.FilterNone = Qgis.FeatureRequestFilterType.NoFilter
1703+
QgsFeatureRequest.FilterType.FilterNone = Qgis.FeatureRequestFilterType.NoFilter
1704+
QgsFeatureRequest.FilterNone.is_monkey_patched = True
1705+
QgsFeatureRequest.FilterNone.__doc__ = "No filter is applied"
1706+
QgsFeatureRequest.FilterFid = Qgis.FeatureRequestFilterType.Fid
1707+
QgsFeatureRequest.FilterType.FilterFid = Qgis.FeatureRequestFilterType.Fid
1708+
QgsFeatureRequest.FilterFid.is_monkey_patched = True
1709+
QgsFeatureRequest.FilterFid.__doc__ = "Filter using feature ID"
1710+
QgsFeatureRequest.FilterExpression = Qgis.FeatureRequestFilterType.Expression
1711+
QgsFeatureRequest.FilterType.FilterExpression = Qgis.FeatureRequestFilterType.Expression
1712+
QgsFeatureRequest.FilterExpression.is_monkey_patched = True
1713+
QgsFeatureRequest.FilterExpression.__doc__ = "Filter using expression"
1714+
QgsFeatureRequest.FilterFids = Qgis.FeatureRequestFilterType.Fids
1715+
QgsFeatureRequest.FilterType.FilterFids = Qgis.FeatureRequestFilterType.Fids
1716+
QgsFeatureRequest.FilterFids.is_monkey_patched = True
1717+
QgsFeatureRequest.FilterFids.__doc__ = "Filter using feature IDs"
1718+
Qgis.FeatureRequestFilterType.__doc__ = "Types of feature request filters.\n\n.. note::\n\n Prior to QGIS 3.36 this was available as :py:class:`QgsFeatureRequest`.FilterType\n\n.. versionadded:: 3.36\n\n" + '* ``FilterNone``: ' + Qgis.FeatureRequestFilterType.NoFilter.__doc__ + '\n' + '* ``FilterFid``: ' + Qgis.FeatureRequestFilterType.Fid.__doc__ + '\n' + '* ``FilterExpression``: ' + Qgis.FeatureRequestFilterType.Expression.__doc__ + '\n' + '* ``FilterFids``: ' + Qgis.FeatureRequestFilterType.Fids.__doc__
1719+
# --
1720+
Qgis.FeatureRequestFilterType.baseClass = Qgis
1721+
QgsFeatureRequest.InvalidGeometryCheck = Qgis.InvalidGeometryCheck
1722+
# monkey patching scoped based enum
1723+
QgsFeatureRequest.GeometryNoCheck = Qgis.InvalidGeometryCheck.NoCheck
1724+
QgsFeatureRequest.InvalidGeometryCheck.GeometryNoCheck = Qgis.InvalidGeometryCheck.NoCheck
1725+
QgsFeatureRequest.GeometryNoCheck.is_monkey_patched = True
1726+
QgsFeatureRequest.GeometryNoCheck.__doc__ = "No invalid geometry checking"
1727+
QgsFeatureRequest.GeometrySkipInvalid = Qgis.InvalidGeometryCheck.SkipInvalid
1728+
QgsFeatureRequest.InvalidGeometryCheck.GeometrySkipInvalid = Qgis.InvalidGeometryCheck.SkipInvalid
1729+
QgsFeatureRequest.GeometrySkipInvalid.is_monkey_patched = True
1730+
QgsFeatureRequest.GeometrySkipInvalid.__doc__ = "Skip any features with invalid geometry. This requires a slow geometry validity check for every feature."
1731+
QgsFeatureRequest.GeometryAbortOnInvalid = Qgis.InvalidGeometryCheck.AbortOnInvalid
1732+
QgsFeatureRequest.InvalidGeometryCheck.GeometryAbortOnInvalid = Qgis.InvalidGeometryCheck.AbortOnInvalid
1733+
QgsFeatureRequest.GeometryAbortOnInvalid.is_monkey_patched = True
1734+
QgsFeatureRequest.GeometryAbortOnInvalid.__doc__ = "Close iterator on encountering any features with invalid geometry. This requires a slow geometry validity check for every feature."
1735+
Qgis.InvalidGeometryCheck.__doc__ = "Methods for handling of features with invalid geometries\n\n.. note::\n\n Prior to QGIS 3.36 this was available as :py:class:`QgsFeatureRequest`.InvalidGeometryCheck\n\n.. versionadded:: 3.36\n\n" + '* ``GeometryNoCheck``: ' + Qgis.InvalidGeometryCheck.NoCheck.__doc__ + '\n' + '* ``GeometrySkipInvalid``: ' + Qgis.InvalidGeometryCheck.SkipInvalid.__doc__ + '\n' + '* ``GeometryAbortOnInvalid``: ' + Qgis.InvalidGeometryCheck.AbortOnInvalid.__doc__
1736+
# --
1737+
Qgis.InvalidGeometryCheck.baseClass = Qgis
16741738
# monkey patching scoped based enum
16751739
Qgis.SpatialFilterType.NoFilter.__doc__ = "No spatial filtering of features"
16761740
Qgis.SpatialFilterType.BoundingBox.__doc__ = "Filter using a bounding box"

python/PyQt6/core/auto_additions/qgsfeaturerequest.py

-22
This file was deleted.

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -352,14 +352,14 @@ algorithm or model.
352352
.. versionadded:: 3.2
353353
%End
354354

355-
QgsFeatureRequest::InvalidGeometryCheck invalidGeometryCheck() const /HoldGIL/;
355+
Qgis::InvalidGeometryCheck invalidGeometryCheck() const /HoldGIL/;
356356
%Docstring
357357
Returns the behavior used for checking invalid geometries in input layers.
358358

359359
.. seealso:: :py:func:`setInvalidGeometryCheck`
360360
%End
361361

362-
void setInvalidGeometryCheck( QgsFeatureRequest::InvalidGeometryCheck check );
362+
void setInvalidGeometryCheck( Qgis::InvalidGeometryCheck check );
363363
%Docstring
364364
Sets the behavior used for checking invalid geometries in input layers.
365365
Settings this to anything but :py:class:`QgsFeatureRequest`.GeometryNoCheck will also

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Encapsulates settings relating to a feature source input to a processing algorit
3434

3535

3636
QgsProcessingFeatureSourceDefinition( const QString &source = QString(), bool selectedFeaturesOnly = false, long long featureLimit = -1,
37-
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), QgsFeatureRequest::InvalidGeometryCheck geometryCheck = QgsFeatureRequest::GeometryAbortOnInvalid, const QString &filterExpression = QString() );
37+
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
3838
%Docstring
3939
Constructor for QgsProcessingFeatureSourceDefinition, accepting a static string ``source``.
4040

@@ -53,7 +53,7 @@ the default geometry check method (as dictated by :py:class:`QgsProcessingContex
5353
%End
5454

5555
QgsProcessingFeatureSourceDefinition( const QgsProperty &source, bool selectedFeaturesOnly = false, long long featureLimit = -1,
56-
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), QgsFeatureRequest::InvalidGeometryCheck geometryCheck = QgsFeatureRequest::GeometryAbortOnInvalid, const QString &filterExpression = QString() );
56+
QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), Qgis::InvalidGeometryCheck geometryCheck = Qgis::InvalidGeometryCheck::AbortOnInvalid, const QString &filterExpression = QString() );
5757
%Docstring
5858
Constructor for QgsProcessingFeatureSourceDefinition, accepting a QgsProperty source.
5959

@@ -81,7 +81,7 @@ the default geometry check method (as dictated by :py:class:`QgsProcessingContex
8181

8282
Flags flags;
8383

84-
QgsFeatureRequest::InvalidGeometryCheck geometryCheck;
84+
Qgis::InvalidGeometryCheck geometryCheck;
8585

8686
QVariant toVariant() const;
8787
%Docstring

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ iterator, eg by restricting the returned attributes or geometry.
707707
Returns an expression context scope suitable for this source.
708708
%End
709709

710-
void setInvalidGeometryCheck( QgsFeatureRequest::InvalidGeometryCheck method );
710+
void setInvalidGeometryCheck( Qgis::InvalidGeometryCheck method );
711711
%Docstring
712712
Overrides the default geometry check method for the source.
713713

@@ -716,7 +716,7 @@ Overrides the default geometry check method for the source.
716716
.. versionadded:: 3.14
717717
%End
718718

719-
QgsFeatureRequest::InvalidGeometryCheck invalidGeometryCheck() const;
719+
Qgis::InvalidGeometryCheck invalidGeometryCheck() const;
720720
%Docstring
721721
Returns the geometry check method for the source.
722722

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

+29
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,34 @@ The development version
981981
Structure,
982982
};
983983

984+
enum class FeatureRequestFlag /BaseType=IntFlag/
985+
{
986+
NoFlags,
987+
NoGeometry,
988+
SubsetOfAttributes,
989+
ExactIntersect,
990+
IgnoreStaticNodesDuringExpressionCompilation,
991+
EmbeddedSymbols,
992+
};
993+
994+
typedef QFlags<Qgis::FeatureRequestFlag> FeatureRequestFlags;
995+
996+
997+
enum class FeatureRequestFilterType /BaseType=IntFlag/
998+
{
999+
NoFilter,
1000+
Fid,
1001+
Expression,
1002+
Fids
1003+
};
1004+
1005+
enum class InvalidGeometryCheck /BaseType=IntFlag/
1006+
{
1007+
NoCheck,
1008+
SkipInvalid,
1009+
AbortOnInvalid,
1010+
};
1011+
9841012
enum class SpatialFilterType /BaseType=IntFlag/
9851013
{
9861014
NoFilter,
@@ -2560,6 +2588,7 @@ QFlags<Qgis::VectorTileProviderCapability> operator|(Qgis::VectorTileProviderCap
25602588

25612589
QFlags<Qgis::VectorTileProviderFlag> operator|(Qgis::VectorTileProviderFlag f1, QFlags<Qgis::VectorTileProviderFlag> f2);
25622590

2591+
QFlags<Qgis::FeatureRequestFlag> operator|(Qgis::FeatureRequestFlag f1, QFlags<Qgis::FeatureRequestFlag> f2);
25632592

25642593

25652594

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

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313

1414

15-
1615
class QgsFeatureFilterProvider
1716
{
1817
%Docstring(signature="appended")

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

+5-34
Original file line numberDiff line numberDiff line change
@@ -64,32 +64,6 @@ Examples:
6464
#include "qgsfeaturerequest.h"
6565
%End
6666
public:
67-
enum Flag
68-
{
69-
NoFlags,
70-
NoGeometry,
71-
SubsetOfAttributes,
72-
ExactIntersect,
73-
IgnoreStaticNodesDuringExpressionCompilation,
74-
EmbeddedSymbols,
75-
};
76-
typedef QFlags<QgsFeatureRequest::Flag> Flags;
77-
78-
79-
enum FilterType
80-
{
81-
FilterNone,
82-
FilterFid,
83-
FilterExpression,
84-
FilterFids
85-
};
86-
87-
enum InvalidGeometryCheck
88-
{
89-
GeometryNoCheck,
90-
GeometrySkipInvalid,
91-
GeometryAbortOnInvalid,
92-
};
9367

9468
class OrderByClause
9569
{
@@ -311,7 +285,7 @@ copy constructor
311285

312286
~QgsFeatureRequest();
313287

314-
FilterType filterType() const;
288+
Qgis::FeatureRequestFilterType filterType() const;
315289
%Docstring
316290
Returns the attribute/ID filter type which is currently set on this request.
317291

@@ -464,7 +438,7 @@ Returns the feature IDs that should be fetched.
464438
.. seealso:: :py:func:`filterFid`
465439
%End
466440

467-
QgsFeatureRequest &setInvalidGeometryCheck( InvalidGeometryCheck check );
441+
QgsFeatureRequest &setInvalidGeometryCheck( Qgis::InvalidGeometryCheck check );
468442
%Docstring
469443
Sets invalid geometry checking behavior.
470444

@@ -478,7 +452,7 @@ Sets invalid geometry checking behavior.
478452
.. versionadded:: 3.0
479453
%End
480454

481-
InvalidGeometryCheck invalidGeometryCheck() const;
455+
Qgis::InvalidGeometryCheck invalidGeometryCheck() const;
482456
%Docstring
483457
Returns the invalid geometry checking behavior.
484458

@@ -642,14 +616,14 @@ Returns the maximum number of features to request, or -1 if no limit set.
642616
.. versionadded:: 2.14
643617
%End
644618

645-
QgsFeatureRequest &setFlags( QgsFeatureRequest::Flags flags );
619+
QgsFeatureRequest &setFlags( Qgis::FeatureRequestFlags flags );
646620
%Docstring
647621
Sets ``flags`` that affect how features will be fetched.
648622

649623
.. seealso:: :py:func:`flags`
650624
%End
651625

652-
Flags flags() const;
626+
Qgis::FeatureRequestFlags flags() const;
653627
%Docstring
654628
Returns the flags which affect how features are fetched.
655629

@@ -979,9 +953,6 @@ if it should be canceled, if set.
979953

980954
};
981955

982-
QFlags<QgsFeatureRequest::Flag> operator|(QgsFeatureRequest::Flag f1, QFlags<QgsFeatureRequest::Flag> f2);
983-
984-
985956

986957

987958
class QgsAbstractFeatureSource

python/PyQt6/gui/auto_generated/qgsfeaturelistcombobox.sip.in

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010

1111

12-
1312
class QgsFeatureListComboBox : QComboBox
1413
{
1514
%Docstring(signature="appended")

0 commit comments

Comments
 (0)