Skip to content

Commit c82c86d

Browse files
committed
[sipify] Patch support for int based enum operations on non-enum class ints
sip6 converts all enums to python Enums, but ONLY creates Enums with IntFlags types when the c++ type is an enum class : int. Accordingly we need to patch back in all the operations which treat enum values as ints, like |, &, bool, etc. The long term solution here is to move all our c++ enums to enum class, but that's not always straightforward and can break API for plugins if it involves the signature of virtual methods.
1 parent 4c7cfb4 commit c82c86d

Some content is hidden

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

49 files changed

+422
-3
lines changed

python/PyQt6/analysis/auto_additions/qgszonalstatistics.py

+7
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@
2020
QgsZonalStatistics.RasterBandInvalid = QgsZonalStatistics.Result.RasterBandInvalid
2121
QgsZonalStatistics.FailedToCreateField = QgsZonalStatistics.Result.FailedToCreateField
2222
QgsZonalStatistics.Canceled = QgsZonalStatistics.Result.Canceled
23+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
24+
25+
26+
QgsZonalStatistics.Statistic.__bool__ = lambda flag: _force_int(flag)
27+
QgsZonalStatistics.Statistic.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
28+
QgsZonalStatistics.Statistic.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
29+
QgsZonalStatistics.Statistic.__or__ = lambda flag1, flag2: QgsZonalStatistics.Statistic(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsabstractdatabaseproviderconnection.py

+7
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,10 @@
5555
QgsAbstractDatabaseProviderConnection.GeometryColumnCapabilities = lambda flags=0: QgsAbstractDatabaseProviderConnection.GeometryColumnCapability(flags)
5656
QgsAbstractDatabaseProviderConnection.GeometryColumnCapabilities.baseClass = QgsAbstractDatabaseProviderConnection
5757
GeometryColumnCapabilities = QgsAbstractDatabaseProviderConnection # dirty hack since SIP seems to introduce the flags in module
58+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
59+
60+
61+
QgsAbstractDatabaseProviderConnection.Capability.__bool__ = lambda flag: _force_int(flag)
62+
QgsAbstractDatabaseProviderConnection.Capability.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
63+
QgsAbstractDatabaseProviderConnection.Capability.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
64+
QgsAbstractDatabaseProviderConnection.Capability.__or__ = lambda flag1, flag2: QgsAbstractDatabaseProviderConnection.Capability(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsabstractgeometry.py

+7
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,10 @@
77
QgsAbstractGeometry.FlagExportTrianglesAsPolygons = QgsAbstractGeometry.WkbFlag.FlagExportTrianglesAsPolygons
88
QgsAbstractGeometry.FlagExportNanAsDoubleMin = QgsAbstractGeometry.WkbFlag.FlagExportNanAsDoubleMin
99
QgsAbstractGeometry.WkbFlags = lambda flags=0: QgsAbstractGeometry.WkbFlag(flags)
10+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
11+
12+
13+
QgsAbstractGeometry.WkbFlag.__bool__ = lambda flag: _force_int(flag)
14+
QgsAbstractGeometry.WkbFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
15+
QgsAbstractGeometry.WkbFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
16+
QgsAbstractGeometry.WkbFlag.__or__ = lambda flag1, flag2: QgsAbstractGeometry.WkbFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsattributeeditorrelation.py

+7
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,10 @@
1111
QgsAttributeEditorRelation.Buttons = lambda flags=0: QgsAttributeEditorRelation.Button(flags)
1212
QgsAttributeEditorRelation.Buttons.baseClass = QgsAttributeEditorRelation
1313
Buttons = QgsAttributeEditorRelation # dirty hack since SIP seems to introduce the flags in module
14+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
15+
16+
17+
QgsAttributeEditorRelation.Button.__bool__ = lambda flag: _force_int(flag)
18+
QgsAttributeEditorRelation.Button.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
19+
QgsAttributeEditorRelation.Button.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
20+
QgsAttributeEditorRelation.Button.__or__ = lambda flag1, flag2: QgsAttributeEditorRelation.Button(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsauthmethod.py

+7
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@
66
QgsAuthMethod.NetworkProxy = QgsAuthMethod.Expansion.NetworkProxy
77
QgsAuthMethod.All = QgsAuthMethod.Expansion.All
88
QgsAuthMethod.Expansions = lambda flags=0: QgsAuthMethod.Expansion(flags)
9+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
10+
11+
12+
QgsAuthMethod.Expansion.__bool__ = lambda flag: _force_int(flag)
13+
QgsAuthMethod.Expansion.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
14+
QgsAuthMethod.Expansion.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
15+
QgsAuthMethod.Expansion.__or__ = lambda flag1, flag2: QgsAuthMethod.Expansion(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsclassificationmethod.py

+7
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,10 @@
77
QgsClassificationMethod.LowerBound = QgsClassificationMethod.ClassPosition.LowerBound
88
QgsClassificationMethod.Inner = QgsClassificationMethod.ClassPosition.Inner
99
QgsClassificationMethod.UpperBound = QgsClassificationMethod.ClassPosition.UpperBound
10+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
11+
12+
13+
QgsClassificationMethod.MethodProperty.__bool__ = lambda flag: _force_int(flag)
14+
QgsClassificationMethod.MethodProperty.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
15+
QgsClassificationMethod.MethodProperty.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
16+
QgsClassificationMethod.MethodProperty.__or__ = lambda flag1, flag2: QgsClassificationMethod.MethodProperty(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgscolorscheme.py

+7
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,10 @@
33
QgsColorScheme.ShowInColorButtonMenu = QgsColorScheme.SchemeFlag.ShowInColorButtonMenu
44
QgsColorScheme.ShowInAllContexts = QgsColorScheme.SchemeFlag.ShowInAllContexts
55
QgsColorScheme.SchemeFlags = lambda flags=0: QgsColorScheme.SchemeFlag(flags)
6+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
7+
8+
9+
QgsColorScheme.SchemeFlag.__bool__ = lambda flag: _force_int(flag)
10+
QgsColorScheme.SchemeFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
11+
QgsColorScheme.SchemeFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
12+
QgsColorScheme.SchemeFlag.__or__ = lambda flag1, flag2: QgsColorScheme.SchemeFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgscoordinateformatter.py

+7
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@
66
QgsCoordinateFormatter.FlagDegreesUseStringSuffix = QgsCoordinateFormatter.FormatFlag.FlagDegreesUseStringSuffix
77
QgsCoordinateFormatter.FlagDegreesPadMinutesSeconds = QgsCoordinateFormatter.FormatFlag.FlagDegreesPadMinutesSeconds
88
QgsCoordinateFormatter.FormatFlags = lambda flags=0: QgsCoordinateFormatter.FormatFlag(flags)
9+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
10+
11+
12+
QgsCoordinateFormatter.FormatFlag.__bool__ = lambda flag: _force_int(flag)
13+
QgsCoordinateFormatter.FormatFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
14+
QgsCoordinateFormatter.FormatFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
15+
QgsCoordinateFormatter.FormatFlag.__or__ = lambda flag1, flag2: QgsCoordinateFormatter.FormatFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsdataprovider.py

+7
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@
1616
QgsDataProvider.SkipCredentialsRequest = QgsDataProvider.ReadFlag.SkipCredentialsRequest
1717
QgsDataProvider.ParallelThreadLoading = QgsDataProvider.ReadFlag.ParallelThreadLoading
1818
QgsDataProvider.ReadFlags = lambda flags=0: QgsDataProvider.ReadFlag(flags)
19+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
20+
21+
22+
QgsDataProvider.ReadFlag.__bool__ = lambda flag: _force_int(flag)
23+
QgsDataProvider.ReadFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
24+
QgsDataProvider.ReadFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
25+
QgsDataProvider.ReadFlag.__or__ = lambda flag1, flag2: QgsDataProvider.ReadFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsdatetimestatisticalsummary.py

+7
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,10 @@
77
QgsDateTimeStatisticalSummary.Range = QgsDateTimeStatisticalSummary.Statistic.Range
88
QgsDateTimeStatisticalSummary.All = QgsDateTimeStatisticalSummary.Statistic.All
99
QgsDateTimeStatisticalSummary.Statistics = lambda flags=0: QgsDateTimeStatisticalSummary.Statistic(flags)
10+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
11+
12+
13+
QgsDateTimeStatisticalSummary.Statistic.__bool__ = lambda flag: _force_int(flag)
14+
QgsDateTimeStatisticalSummary.Statistic.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
15+
QgsDateTimeStatisticalSummary.Statistic.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
16+
QgsDateTimeStatisticalSummary.Statistic.__or__ = lambda flag1, flag2: QgsDateTimeStatisticalSummary.Statistic(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsdxfexport.py

+14
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,17 @@
3535
QgsDxfExport.PolyfaceMesh = QgsDxfExport.DxfPolylineFlag.PolyfaceMesh
3636
QgsDxfExport.ContinuousPattern = QgsDxfExport.DxfPolylineFlag.ContinuousPattern
3737
QgsDxfExport.DxfPolylineFlags = lambda flags=0: QgsDxfExport.DxfPolylineFlag(flags)
38+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
39+
40+
41+
QgsDxfExport.Flag.__bool__ = lambda flag: _force_int(flag)
42+
QgsDxfExport.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
43+
QgsDxfExport.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
44+
QgsDxfExport.Flag.__or__ = lambda flag1, flag2: QgsDxfExport.Flag(_force_int(flag1) | _force_int(flag2))
45+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
46+
47+
48+
QgsDxfExport.DxfPolylineFlag.__bool__ = lambda flag: _force_int(flag)
49+
QgsDxfExport.DxfPolylineFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
50+
QgsDxfExport.DxfPolylineFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
51+
QgsDxfExport.DxfPolylineFlag.__or__ = lambda flag1, flag2: QgsDxfExport.DxfPolylineFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsfeaturerequest.py

+7
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,10 @@
1313
QgsFeatureRequest.GeometryNoCheck = QgsFeatureRequest.InvalidGeometryCheck.GeometryNoCheck
1414
QgsFeatureRequest.GeometrySkipInvalid = QgsFeatureRequest.InvalidGeometryCheck.GeometrySkipInvalid
1515
QgsFeatureRequest.GeometryAbortOnInvalid = QgsFeatureRequest.InvalidGeometryCheck.GeometryAbortOnInvalid
16+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
17+
18+
19+
QgsFeatureRequest.Flag.__bool__ = lambda flag: _force_int(flag)
20+
QgsFeatureRequest.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
21+
QgsFeatureRequest.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
22+
QgsFeatureRequest.Flag.__or__ = lambda flag1, flag2: QgsFeatureRequest.Flag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsfeaturesink.py

+7
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,10 @@
44
QgsFeatureSink.FastInsert = QgsFeatureSink.Flag.FastInsert
55
QgsFeatureSink.RollBackOnErrors = QgsFeatureSink.Flag.RollBackOnErrors
66
QgsFeatureSink.Flags = lambda flags=0: QgsFeatureSink.Flag(flags)
7+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
8+
9+
10+
QgsFeatureSink.Flag.__bool__ = lambda flag: _force_int(flag)
11+
QgsFeatureSink.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
12+
QgsFeatureSink.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
13+
QgsFeatureSink.Flag.__or__ = lambda flag1, flag2: QgsFeatureSink.Flag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsfieldconstraints.py

+7
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,10 @@
99
QgsFieldConstraints.ConstraintStrengthNotSet = QgsFieldConstraints.ConstraintStrength.ConstraintStrengthNotSet
1010
QgsFieldConstraints.ConstraintStrengthHard = QgsFieldConstraints.ConstraintStrength.ConstraintStrengthHard
1111
QgsFieldConstraints.ConstraintStrengthSoft = QgsFieldConstraints.ConstraintStrength.ConstraintStrengthSoft
12+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
13+
14+
15+
QgsFieldConstraints.Constraint.__bool__ = lambda flag: _force_int(flag)
16+
QgsFieldConstraints.Constraint.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
17+
QgsFieldConstraints.Constraint.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
18+
QgsFieldConstraints.Constraint.__or__ = lambda flag1, flag2: QgsFieldConstraints.Constraint(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsfieldproxymodel.py

+7
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,10 @@
1414
QgsFieldProxyModel.Filters = lambda flags=0: QgsFieldProxyModel.Filter(flags)
1515
QgsFieldProxyModel.Filters.baseClass = QgsFieldProxyModel
1616
Filters = QgsFieldProxyModel # dirty hack since SIP seems to introduce the flags in module
17+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
18+
19+
20+
QgsFieldProxyModel.Filter.__bool__ = lambda flag: _force_int(flag)
21+
QgsFieldProxyModel.Filter.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
22+
QgsFieldProxyModel.Filter.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
23+
QgsFieldProxyModel.Filter.__or__ = lambda flag1, flag2: QgsFieldProxyModel.Filter(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgslayertreemodel.py

+7
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,10 @@
1111
QgsLayerTreeModel.ActionHierarchical = QgsLayerTreeModel.Flag.ActionHierarchical
1212
QgsLayerTreeModel.UseThreadedHitTest = QgsLayerTreeModel.Flag.UseThreadedHitTest
1313
QgsLayerTreeModel.Flags = lambda flags=0: QgsLayerTreeModel.Flag(flags)
14+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
15+
16+
17+
QgsLayerTreeModel.Flag.__bool__ = lambda flag: _force_int(flag)
18+
QgsLayerTreeModel.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
19+
QgsLayerTreeModel.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
20+
QgsLayerTreeModel.Flag.__or__ = lambda flag1, flag2: QgsLayerTreeModel.Flag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgslayoutitem.py

+7
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,10 @@
116116
QgsLayoutItem.CanGroupWithItemsOfSameType = QgsLayoutItem.ExportLayerBehavior.CanGroupWithItemsOfSameType
117117
QgsLayoutItem.MustPlaceInOwnLayer = QgsLayoutItem.ExportLayerBehavior.MustPlaceInOwnLayer
118118
QgsLayoutItem.ItemContainsSubLayers = QgsLayoutItem.ExportLayerBehavior.ItemContainsSubLayers
119+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
120+
121+
122+
QgsLayoutItem.Flag.__bool__ = lambda flag: _force_int(flag)
123+
QgsLayoutItem.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
124+
QgsLayoutItem.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
125+
QgsLayoutItem.Flag.__or__ = lambda flag1, flag2: QgsLayoutItem.Flag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgslayoutitemmap.py

+7
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,10 @@
55
QgsLayoutItemMap.ShowPartialLabels = QgsLayoutItemMap.MapItemFlag.ShowPartialLabels
66
QgsLayoutItemMap.ShowUnplacedLabels = QgsLayoutItemMap.MapItemFlag.ShowUnplacedLabels
77
QgsLayoutItemMap.MapItemFlags = lambda flags=0: QgsLayoutItemMap.MapItemFlag(flags)
8+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
9+
10+
11+
QgsLayoutItemMap.MapItemFlag.__bool__ = lambda flag: _force_int(flag)
12+
QgsLayoutItemMap.MapItemFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
13+
QgsLayoutItemMap.MapItemFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
14+
QgsLayoutItemMap.MapItemFlag.__or__ = lambda flag1, flag2: QgsLayoutItemMap.MapItemFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgslayoutitemmapgrid.py

+7
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,10 @@
5050
QgsLayoutItemMapGrid.FrameSideFlags = lambda flags=0: QgsLayoutItemMapGrid.FrameSideFlag(flags)
5151
QgsLayoutItemMapGrid.Longitude = QgsLayoutItemMapGrid.AnnotationCoordinate.Longitude
5252
QgsLayoutItemMapGrid.Latitude = QgsLayoutItemMapGrid.AnnotationCoordinate.Latitude
53+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
54+
55+
56+
QgsLayoutItemMapGrid.FrameSideFlag.__bool__ = lambda flag: _force_int(flag)
57+
QgsLayoutItemMapGrid.FrameSideFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
58+
QgsLayoutItemMapGrid.FrameSideFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
59+
QgsLayoutItemMapGrid.FrameSideFlag.__or__ = lambda flag1, flag2: QgsLayoutItemMapGrid.FrameSideFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgslayoutmanager.py

+7
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,10 @@
55
QgsLayoutManagerProxyModel.Filters = lambda flags=0: QgsLayoutManagerProxyModel.Filter(flags)
66
QgsLayoutManagerProxyModel.Filters.baseClass = QgsLayoutManagerProxyModel
77
Filters = QgsLayoutManagerProxyModel # dirty hack since SIP seems to introduce the flags in module
8+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
9+
10+
11+
QgsLayoutManagerProxyModel.Filter.__bool__ = lambda flag: _force_int(flag)
12+
QgsLayoutManagerProxyModel.Filter.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
13+
QgsLayoutManagerProxyModel.Filter.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
14+
QgsLayoutManagerProxyModel.Filter.__or__ = lambda flag1, flag2: QgsLayoutManagerProxyModel.Filter(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgslocatorfilter.py

+7
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,10 @@
99
QgsLocatorFilter.Flags = lambda flags=0: QgsLocatorFilter.Flag(flags)
1010
QgsLocatorFilter.Flags.baseClass = QgsLocatorFilter
1111
Flags = QgsLocatorFilter # dirty hack since SIP seems to introduce the flags in module
12+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
13+
14+
15+
QgsLocatorFilter.Flag.__bool__ = lambda flag: _force_int(flag)
16+
QgsLocatorFilter.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
17+
QgsLocatorFilter.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
18+
QgsLocatorFilter.Flag.__or__ = lambda flag1, flag2: QgsLocatorFilter.Flag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsmaplayer.py

+21
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,24 @@
3737
QgsMapLayer.FlagReadExtentFromXml = QgsMapLayer.ReadFlag.FlagReadExtentFromXml
3838
QgsMapLayer.FlagForceReadOnly = QgsMapLayer.ReadFlag.FlagForceReadOnly
3939
QgsMapLayer.ReadFlags = lambda flags=0: QgsMapLayer.ReadFlag(flags)
40+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
41+
42+
43+
QgsMapLayer.LayerFlag.__bool__ = lambda flag: _force_int(flag)
44+
QgsMapLayer.LayerFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
45+
QgsMapLayer.LayerFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
46+
QgsMapLayer.LayerFlag.__or__ = lambda flag1, flag2: QgsMapLayer.LayerFlag(_force_int(flag1) | _force_int(flag2))
47+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
48+
49+
50+
QgsMapLayer.StyleCategory.__bool__ = lambda flag: _force_int(flag)
51+
QgsMapLayer.StyleCategory.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
52+
QgsMapLayer.StyleCategory.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
53+
QgsMapLayer.StyleCategory.__or__ = lambda flag1, flag2: QgsMapLayer.StyleCategory(_force_int(flag1) | _force_int(flag2))
54+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
55+
56+
57+
QgsMapLayer.ReadFlag.__bool__ = lambda flag: _force_int(flag)
58+
QgsMapLayer.ReadFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
59+
QgsMapLayer.ReadFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
60+
QgsMapLayer.ReadFlag.__or__ = lambda flag1, flag2: QgsMapLayer.ReadFlag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgspointcloudattributemodel.py

+7
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,10 @@
1515
QgsPointCloudAttributeProxyModel.Filters = lambda flags=0: QgsPointCloudAttributeProxyModel.Filter(flags)
1616
QgsPointCloudAttributeProxyModel.Filters.baseClass = QgsPointCloudAttributeProxyModel
1717
Filters = QgsPointCloudAttributeProxyModel # dirty hack since SIP seems to introduce the flags in module
18+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
19+
20+
21+
QgsPointCloudAttributeProxyModel.Filter.__bool__ = lambda flag: _force_int(flag)
22+
QgsPointCloudAttributeProxyModel.Filter.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
23+
QgsPointCloudAttributeProxyModel.Filter.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
24+
QgsPointCloudAttributeProxyModel.Filter.__or__ = lambda flag1, flag2: QgsPointCloudAttributeProxyModel.Filter(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsprocessingalgorithm.py

+7
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,10 @@
1717
QgsProcessingAlgorithm.Flags = lambda flags=0: QgsProcessingAlgorithm.Flag(flags)
1818
QgsProcessingAlgorithm.NotAvailable = QgsProcessingAlgorithm.PropertyAvailability.NotAvailable
1919
QgsProcessingAlgorithm.Available = QgsProcessingAlgorithm.PropertyAvailability.Available
20+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
21+
22+
23+
QgsProcessingAlgorithm.Flag.__bool__ = lambda flag: _force_int(flag)
24+
QgsProcessingAlgorithm.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
25+
QgsProcessingAlgorithm.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
26+
QgsProcessingAlgorithm.Flag.__or__ = lambda flag1, flag2: QgsProcessingAlgorithm.Flag(_force_int(flag1) | _force_int(flag2))

python/PyQt6/core/auto_additions/qgsprocessingcontext.py

+7
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,10 @@
99
QgsProcessingContext.ProcessArgumentFlag.__doc__ = "Flags controlling the results given by :py:func:`~QgsProcessingContext.asQgisProcessArguments`.\n\n.. versionadded:: 3.24\n\n" + '* ``IncludeProjectPath``: ' + QgsProcessingContext.ProcessArgumentFlag.IncludeProjectPath.__doc__
1010
# --
1111
QgsProcessingContext.ProcessArgumentFlags = lambda flags=0: QgsProcessingContext.ProcessArgumentFlag(flags)
12+
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
13+
14+
15+
QgsProcessingContext.Flag.__bool__ = lambda flag: _force_int(flag)
16+
QgsProcessingContext.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
17+
QgsProcessingContext.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
18+
QgsProcessingContext.Flag.__or__ = lambda flag1, flag2: QgsProcessingContext.Flag(_force_int(flag1) | _force_int(flag2))

0 commit comments

Comments
 (0)