QGIS/python/PyQt6/core/auto_additions/qgsfeaturesink.py
Nyall Dawson 85b7a2c411 [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.
2024-01-29 04:23:44 +10:00

14 lines
848 B
Python

# The following has been generated automatically from src/core/qgsfeaturesink.h
QgsFeatureSink.RegeneratePrimaryKey = QgsFeatureSink.SinkFlag.RegeneratePrimaryKey
QgsFeatureSink.SinkFlags = lambda flags=0: QgsFeatureSink.SinkFlag(flags)
QgsFeatureSink.FastInsert = QgsFeatureSink.Flag.FastInsert
QgsFeatureSink.RollBackOnErrors = QgsFeatureSink.Flag.RollBackOnErrors
QgsFeatureSink.Flags = lambda flags=0: QgsFeatureSink.Flag(flags)
_force_int = lambda v: v if isinstance(v, int) else int(v.value)
QgsFeatureSink.Flag.__bool__ = lambda flag: _force_int(flag)
QgsFeatureSink.Flag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
QgsFeatureSink.Flag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
QgsFeatureSink.Flag.__or__ = lambda flag1, flag2: QgsFeatureSink.Flag(_force_int(flag1) | _force_int(flag2))