Skip to content

Commit

Permalink
Merge pull request #58158 from nyalldawson/vector_data_provider_enum
Browse files Browse the repository at this point in the history
Move some data provider enums to Qgis, promote to enum class
  • Loading branch information
troopa81 authored Jul 18, 2024
2 parents 2c2bc60 + 4f9bdde commit 45b1f74
Show file tree
Hide file tree
Showing 170 changed files with 1,024 additions and 833 deletions.
122 changes: 122 additions & 0 deletions python/PyQt6/core/auto_additions/qgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,128 @@
Qgis.PythonMacroMode.__doc__ = "Authorisation to run Python Macros\n\n.. versionadded:: 3.10\n\n" + '* ``Never``: ' + Qgis.PythonMacroMode.Never.__doc__ + '\n' + '* ``Ask``: ' + Qgis.PythonMacroMode.Ask.__doc__ + '\n' + '* ``SessionOnly``: ' + Qgis.PythonMacroMode.SessionOnly.__doc__ + '\n' + '* ``Always``: ' + Qgis.PythonMacroMode.Always.__doc__ + '\n' + '* ``NotForThisSession``: ' + Qgis.PythonMacroMode.NotForThisSession.__doc__
# --
Qgis.PythonMacroMode.baseClass = Qgis
QgsDataProvider.ReadFlag = Qgis.DataProviderReadFlag
# monkey patching scoped based enum
QgsDataProvider.FlagTrustDataSource = Qgis.DataProviderReadFlag.TrustDataSource
QgsDataProvider.ReadFlag.FlagTrustDataSource = Qgis.DataProviderReadFlag.TrustDataSource
QgsDataProvider.FlagTrustDataSource.is_monkey_patched = True
QgsDataProvider.FlagTrustDataSource.__doc__ = "Trust datasource config (primary key unicity, geometry type and srid, etc). Improves provider load time by skipping expensive checks like primary key unicity, geometry type and srid and by using estimated metadata on data load. Since QGIS 3.16"
QgsDataProvider.SkipFeatureCount = Qgis.DataProviderReadFlag.SkipFeatureCount
QgsDataProvider.SkipFeatureCount.is_monkey_patched = True
QgsDataProvider.SkipFeatureCount.__doc__ = "Make featureCount() return -1 to indicate unknown, and subLayers() to return a unknown feature count as well. Since QGIS 3.18. Only implemented by OGR provider at time of writing."
QgsDataProvider.FlagLoadDefaultStyle = Qgis.DataProviderReadFlag.LoadDefaultStyle
QgsDataProvider.ReadFlag.FlagLoadDefaultStyle = Qgis.DataProviderReadFlag.LoadDefaultStyle
QgsDataProvider.FlagLoadDefaultStyle.is_monkey_patched = True
QgsDataProvider.FlagLoadDefaultStyle.__doc__ = "Reset the layer's style to the default for the datasource"
QgsDataProvider.SkipGetExtent = Qgis.DataProviderReadFlag.SkipGetExtent
QgsDataProvider.SkipGetExtent.is_monkey_patched = True
QgsDataProvider.SkipGetExtent.__doc__ = "Skip the extent from provider"
QgsDataProvider.SkipFullScan = Qgis.DataProviderReadFlag.SkipFullScan
QgsDataProvider.SkipFullScan.is_monkey_patched = True
QgsDataProvider.SkipFullScan.__doc__ = "Skip expensive full scan on files (i.e. on delimited text) (since QGIS 3.24)"
QgsDataProvider.ForceReadOnly = Qgis.DataProviderReadFlag.ForceReadOnly
QgsDataProvider.ForceReadOnly.is_monkey_patched = True
QgsDataProvider.ForceReadOnly.__doc__ = "Open layer in a read-only mode (since QGIS 3.28)"
QgsDataProvider.SkipCredentialsRequest = Qgis.DataProviderReadFlag.SkipCredentialsRequest
QgsDataProvider.SkipCredentialsRequest.is_monkey_patched = True
QgsDataProvider.SkipCredentialsRequest.__doc__ = "Skip credentials if the provided one are not valid, let the provider be invalid, avoiding to block the thread creating the provider if it is not the main thread (since QGIS 3.32)."
QgsDataProvider.ParallelThreadLoading = Qgis.DataProviderReadFlag.ParallelThreadLoading
QgsDataProvider.ParallelThreadLoading.is_monkey_patched = True
QgsDataProvider.ParallelThreadLoading.__doc__ = "Provider is created in a parallel thread than the one where it will live (since QGIS 3.32.1)."
Qgis.DataProviderReadFlag.__doc__ = "Flags which control data provider construction.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsDataProvider`.ReadFlag\n\n.. versionadded:: 3.40\n\n" + '* ``FlagTrustDataSource``: ' + Qgis.DataProviderReadFlag.TrustDataSource.__doc__ + '\n' + '* ``SkipFeatureCount``: ' + Qgis.DataProviderReadFlag.SkipFeatureCount.__doc__ + '\n' + '* ``FlagLoadDefaultStyle``: ' + Qgis.DataProviderReadFlag.LoadDefaultStyle.__doc__ + '\n' + '* ``SkipGetExtent``: ' + Qgis.DataProviderReadFlag.SkipGetExtent.__doc__ + '\n' + '* ``SkipFullScan``: ' + Qgis.DataProviderReadFlag.SkipFullScan.__doc__ + '\n' + '* ``ForceReadOnly``: ' + Qgis.DataProviderReadFlag.ForceReadOnly.__doc__ + '\n' + '* ``SkipCredentialsRequest``: ' + Qgis.DataProviderReadFlag.SkipCredentialsRequest.__doc__ + '\n' + '* ``ParallelThreadLoading``: ' + Qgis.DataProviderReadFlag.ParallelThreadLoading.__doc__
# --
Qgis.DataProviderReadFlag.baseClass = Qgis
Qgis.DataProviderReadFlags = lambda flags=0: Qgis.DataProviderReadFlag(flags)
QgsDataProvider.ReadFlags = Qgis.DataProviderReadFlags
Qgis.DataProviderReadFlags.baseClass = Qgis
DataProviderReadFlags = Qgis # dirty hack since SIP seems to introduce the flags in module
QgsVectorDataProvider.Capability = Qgis.VectorProviderCapability
# monkey patching scoped based enum
QgsVectorDataProvider.NoCapabilities = Qgis.VectorProviderCapability.NoCapabilities
QgsVectorDataProvider.NoCapabilities.is_monkey_patched = True
QgsVectorDataProvider.NoCapabilities.__doc__ = "Provider has no capabilities"
QgsVectorDataProvider.AddFeatures = Qgis.VectorProviderCapability.AddFeatures
QgsVectorDataProvider.AddFeatures.is_monkey_patched = True
QgsVectorDataProvider.AddFeatures.__doc__ = "Allows adding features"
QgsVectorDataProvider.DeleteFeatures = Qgis.VectorProviderCapability.DeleteFeatures
QgsVectorDataProvider.DeleteFeatures.is_monkey_patched = True
QgsVectorDataProvider.DeleteFeatures.__doc__ = "Allows deletion of features"
QgsVectorDataProvider.ChangeAttributeValues = Qgis.VectorProviderCapability.ChangeAttributeValues
QgsVectorDataProvider.ChangeAttributeValues.is_monkey_patched = True
QgsVectorDataProvider.ChangeAttributeValues.__doc__ = "Allows modification of attribute values"
QgsVectorDataProvider.AddAttributes = Qgis.VectorProviderCapability.AddAttributes
QgsVectorDataProvider.AddAttributes.is_monkey_patched = True
QgsVectorDataProvider.AddAttributes.__doc__ = "Allows addition of new attributes (fields)"
QgsVectorDataProvider.DeleteAttributes = Qgis.VectorProviderCapability.DeleteAttributes
QgsVectorDataProvider.DeleteAttributes.is_monkey_patched = True
QgsVectorDataProvider.DeleteAttributes.__doc__ = "Allows deletion of attributes (fields)"
QgsVectorDataProvider.CreateSpatialIndex = Qgis.VectorProviderCapability.CreateSpatialIndex
QgsVectorDataProvider.CreateSpatialIndex.is_monkey_patched = True
QgsVectorDataProvider.CreateSpatialIndex.__doc__ = "Allows creation of spatial index"
QgsVectorDataProvider.SelectAtId = Qgis.VectorProviderCapability.SelectAtId
QgsVectorDataProvider.SelectAtId.is_monkey_patched = True
QgsVectorDataProvider.SelectAtId.__doc__ = "Fast access to features using their ID"
QgsVectorDataProvider.ChangeGeometries = Qgis.VectorProviderCapability.ChangeGeometries
QgsVectorDataProvider.ChangeGeometries.is_monkey_patched = True
QgsVectorDataProvider.ChangeGeometries.__doc__ = "Allows modifications of geometries"
QgsVectorDataProvider.SelectEncoding = Qgis.VectorProviderCapability.SelectEncoding
QgsVectorDataProvider.SelectEncoding.is_monkey_patched = True
QgsVectorDataProvider.SelectEncoding.__doc__ = "Allows user to select encoding"
QgsVectorDataProvider.CreateAttributeIndex = Qgis.VectorProviderCapability.CreateAttributeIndex
QgsVectorDataProvider.CreateAttributeIndex.is_monkey_patched = True
QgsVectorDataProvider.CreateAttributeIndex.__doc__ = "Can create indexes on provider's fields"
QgsVectorDataProvider.SimplifyGeometries = Qgis.VectorProviderCapability.SimplifyGeometries
QgsVectorDataProvider.SimplifyGeometries.is_monkey_patched = True
QgsVectorDataProvider.SimplifyGeometries.__doc__ = "Supports simplification of geometries on provider side according to a distance tolerance"
QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation = Qgis.VectorProviderCapability.SimplifyGeometriesWithTopologicalValidation
QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation.is_monkey_patched = True
QgsVectorDataProvider.SimplifyGeometriesWithTopologicalValidation.__doc__ = "Supports topological simplification of geometries on provider side according to a distance tolerance"
QgsVectorDataProvider.TransactionSupport = Qgis.VectorProviderCapability.TransactionSupport
QgsVectorDataProvider.TransactionSupport.is_monkey_patched = True
QgsVectorDataProvider.TransactionSupport.__doc__ = "Supports transactions"
QgsVectorDataProvider.CircularGeometries = Qgis.VectorProviderCapability.CircularGeometries
QgsVectorDataProvider.CircularGeometries.is_monkey_patched = True
QgsVectorDataProvider.CircularGeometries.__doc__ = "Supports circular geometry types (circularstring, compoundcurve, curvepolygon)"
QgsVectorDataProvider.ChangeFeatures = Qgis.VectorProviderCapability.ChangeFeatures
QgsVectorDataProvider.ChangeFeatures.is_monkey_patched = True
QgsVectorDataProvider.ChangeFeatures.__doc__ = "Supports joint updates for attributes and geometry. Providers supporting this should still define ChangeGeometries | ChangeAttributeValues."
QgsVectorDataProvider.RenameAttributes = Qgis.VectorProviderCapability.RenameAttributes
QgsVectorDataProvider.RenameAttributes.is_monkey_patched = True
QgsVectorDataProvider.RenameAttributes.__doc__ = "Supports renaming attributes (fields). Since QGIS 2.16"
QgsVectorDataProvider.FastTruncate = Qgis.VectorProviderCapability.FastTruncate
QgsVectorDataProvider.FastTruncate.is_monkey_patched = True
QgsVectorDataProvider.FastTruncate.__doc__ = "Supports fast truncation of the layer (removing all features). Since QGIS 3.0"
QgsVectorDataProvider.ReadLayerMetadata = Qgis.VectorProviderCapability.ReadLayerMetadata
QgsVectorDataProvider.ReadLayerMetadata.is_monkey_patched = True
QgsVectorDataProvider.ReadLayerMetadata.__doc__ = "Provider can read layer metadata from data store. Since QGIS 3.0. See QgsDataProvider.layerMetadata()"
QgsVectorDataProvider.WriteLayerMetadata = Qgis.VectorProviderCapability.WriteLayerMetadata
QgsVectorDataProvider.WriteLayerMetadata.is_monkey_patched = True
QgsVectorDataProvider.WriteLayerMetadata.__doc__ = "Provider can write layer metadata to the data store. Since QGIS 3.0. See QgsDataProvider.writeLayerMetadata()"
QgsVectorDataProvider.CancelSupport = Qgis.VectorProviderCapability.CancelSupport
QgsVectorDataProvider.CancelSupport.is_monkey_patched = True
QgsVectorDataProvider.CancelSupport.__doc__ = "Supports interruption of pending queries from a separated thread. Since QGIS 3.2"
QgsVectorDataProvider.CreateRenderer = Qgis.VectorProviderCapability.CreateRenderer
QgsVectorDataProvider.CreateRenderer.is_monkey_patched = True
QgsVectorDataProvider.CreateRenderer.__doc__ = "Provider can create feature renderers using backend-specific formatting information. Since QGIS 3.2. See QgsVectorDataProvider.createRenderer()."
QgsVectorDataProvider.CreateLabeling = Qgis.VectorProviderCapability.CreateLabeling
QgsVectorDataProvider.CreateLabeling.is_monkey_patched = True
QgsVectorDataProvider.CreateLabeling.__doc__ = "Provider can set labeling settings using backend-specific formatting information. Since QGIS 3.6. See QgsVectorDataProvider.createLabeling()."
QgsVectorDataProvider.ReloadData = Qgis.VectorProviderCapability.ReloadData
QgsVectorDataProvider.ReloadData.is_monkey_patched = True
QgsVectorDataProvider.ReloadData.__doc__ = "Provider is able to force reload data"
QgsVectorDataProvider.FeatureSymbology = Qgis.VectorProviderCapability.FeatureSymbology
QgsVectorDataProvider.FeatureSymbology.is_monkey_patched = True
QgsVectorDataProvider.FeatureSymbology.__doc__ = "Provider is able retrieve embedded symbology associated with individual features. Since QGIS 3.20."
QgsVectorDataProvider.EditingCapabilities = Qgis.VectorProviderCapability.EditingCapabilities
QgsVectorDataProvider.EditingCapabilities.is_monkey_patched = True
QgsVectorDataProvider.EditingCapabilities.__doc__ = "Bitmask of all editing capabilities"
Qgis.VectorProviderCapability.__doc__ = "Vector data provider capabilities.\n\n.. note::\n\n Prior to QGIS 3.40 this was available as :py:class:`QgsVectorDataProvider`.Capability\n\n.. versionadded:: 3.40\n\n" + '* ``NoCapabilities``: ' + Qgis.VectorProviderCapability.NoCapabilities.__doc__ + '\n' + '* ``AddFeatures``: ' + Qgis.VectorProviderCapability.AddFeatures.__doc__ + '\n' + '* ``DeleteFeatures``: ' + Qgis.VectorProviderCapability.DeleteFeatures.__doc__ + '\n' + '* ``ChangeAttributeValues``: ' + Qgis.VectorProviderCapability.ChangeAttributeValues.__doc__ + '\n' + '* ``AddAttributes``: ' + Qgis.VectorProviderCapability.AddAttributes.__doc__ + '\n' + '* ``DeleteAttributes``: ' + Qgis.VectorProviderCapability.DeleteAttributes.__doc__ + '\n' + '* ``CreateSpatialIndex``: ' + Qgis.VectorProviderCapability.CreateSpatialIndex.__doc__ + '\n' + '* ``SelectAtId``: ' + Qgis.VectorProviderCapability.SelectAtId.__doc__ + '\n' + '* ``ChangeGeometries``: ' + Qgis.VectorProviderCapability.ChangeGeometries.__doc__ + '\n' + '* ``SelectEncoding``: ' + Qgis.VectorProviderCapability.SelectEncoding.__doc__ + '\n' + '* ``CreateAttributeIndex``: ' + Qgis.VectorProviderCapability.CreateAttributeIndex.__doc__ + '\n' + '* ``SimplifyGeometries``: ' + Qgis.VectorProviderCapability.SimplifyGeometries.__doc__ + '\n' + '* ``SimplifyGeometriesWithTopologicalValidation``: ' + Qgis.VectorProviderCapability.SimplifyGeometriesWithTopologicalValidation.__doc__ + '\n' + '* ``TransactionSupport``: ' + Qgis.VectorProviderCapability.TransactionSupport.__doc__ + '\n' + '* ``CircularGeometries``: ' + Qgis.VectorProviderCapability.CircularGeometries.__doc__ + '\n' + '* ``ChangeFeatures``: ' + Qgis.VectorProviderCapability.ChangeFeatures.__doc__ + '\n' + '* ``RenameAttributes``: ' + Qgis.VectorProviderCapability.RenameAttributes.__doc__ + '\n' + '* ``FastTruncate``: ' + Qgis.VectorProviderCapability.FastTruncate.__doc__ + '\n' + '* ``ReadLayerMetadata``: ' + Qgis.VectorProviderCapability.ReadLayerMetadata.__doc__ + '\n' + '* ``WriteLayerMetadata``: ' + Qgis.VectorProviderCapability.WriteLayerMetadata.__doc__ + '\n' + '* ``CancelSupport``: ' + Qgis.VectorProviderCapability.CancelSupport.__doc__ + '\n' + '* ``CreateRenderer``: ' + Qgis.VectorProviderCapability.CreateRenderer.__doc__ + '\n' + '* ``CreateLabeling``: ' + Qgis.VectorProviderCapability.CreateLabeling.__doc__ + '\n' + '* ``ReloadData``: ' + Qgis.VectorProviderCapability.ReloadData.__doc__ + '\n' + '* ``FeatureSymbology``: ' + Qgis.VectorProviderCapability.FeatureSymbology.__doc__ + '\n' + '* ``EditingCapabilities``: ' + Qgis.VectorProviderCapability.EditingCapabilities.__doc__
# --
Qgis.VectorProviderCapability.baseClass = Qgis
Qgis.VectorProviderCapabilities = lambda flags=0: Qgis.VectorProviderCapability(flags)
QgsVectorDataProvider.Capabilities = Qgis.VectorProviderCapabilities
Qgis.VectorProviderCapabilities.baseClass = Qgis
VectorProviderCapabilities = Qgis # dirty hack since SIP seems to introduce the flags in module
QgsVectorDataProvider.FeatureCountState = Qgis.FeatureCountState
# monkey patching scoped based enum
QgsVectorDataProvider.Uncounted = Qgis.FeatureCountState.Uncounted
Expand Down
19 changes: 0 additions & 19 deletions python/PyQt6/core/auto_additions/qgsdataprovider.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,3 @@
# The following has been generated automatically from src/core/providers/qgsdataprovider.h
QgsDataProvider.EvaluateDefaultValues = QgsDataProvider.ProviderProperty.EvaluateDefaultValues
QgsDataProvider.CustomData = QgsDataProvider.ProviderProperty.CustomData
QgsDataProvider.FlagTrustDataSource = QgsDataProvider.ReadFlag.FlagTrustDataSource
QgsDataProvider.SkipFeatureCount = QgsDataProvider.ReadFlag.SkipFeatureCount
QgsDataProvider.FlagLoadDefaultStyle = QgsDataProvider.ReadFlag.FlagLoadDefaultStyle
QgsDataProvider.SkipGetExtent = QgsDataProvider.ReadFlag.SkipGetExtent
QgsDataProvider.SkipFullScan = QgsDataProvider.ReadFlag.SkipFullScan
QgsDataProvider.ForceReadOnly = QgsDataProvider.ReadFlag.ForceReadOnly
QgsDataProvider.SkipCredentialsRequest = QgsDataProvider.ReadFlag.SkipCredentialsRequest
QgsDataProvider.ParallelThreadLoading = QgsDataProvider.ReadFlag.ParallelThreadLoading
QgsDataProvider.ReadFlags = lambda flags=0: QgsDataProvider.ReadFlag(flags)
from enum import Enum


def _force_int(v): return int(v.value) if isinstance(v, Enum) else v


QgsDataProvider.ReadFlag.__bool__ = lambda flag: bool(_force_int(flag))
QgsDataProvider.ReadFlag.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
QgsDataProvider.ReadFlag.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
QgsDataProvider.ReadFlag.__or__ = lambda flag1, flag2: QgsDataProvider.ReadFlag(_force_int(flag1) | _force_int(flag2))
37 changes: 0 additions & 37 deletions python/PyQt6/core/auto_additions/qgsvectordataprovider.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ Responsible for reading native mesh data
public:
QgsMeshDataProvider( const QString &uri,
const QgsDataProvider::ProviderOptions &providerOptions,
QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() );
Qgis::DataProviderReadFlags = Qgis::DataProviderReadFlags() );
%Docstring
Ctor
%End
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Responsible for reading native point cloud data and returning the indexed data.

QgsPointCloudDataProvider( const QString &uri,
const QgsDataProvider::ProviderOptions &providerOptions,
QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() );
Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() );
%Docstring
Ctor
%End
Expand Down
Loading

0 comments on commit 45b1f74

Please sign in to comment.