Skip to content

Commit 026635c

Browse files
committed
Fix typing for GDAL 3.10.0+
In GDAL 3.10.0 the return value of `ogr.CreateDataSource` changed from `ogr.DataSource` to `gdal.Dataset`. Experienced by Windows users using OSGeo4W: jef-n/OSGeo4W@5469ac4 And announced here: https://github.com/OSGeo/gdal/blob/v3.10.0/NEWS.md
1 parent f594539 commit 026635c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

libqfieldsync/offliners.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
from collections import defaultdict
33
from enum import Enum
44
from pathlib import Path
5-
from typing import List, NamedTuple, Optional
5+
from typing import List, NamedTuple, Optional, NewType
66

7-
from osgeo import ogr, osr
7+
from osgeo import gdal, ogr, osr
88
from PyQt5.QtCore import QFileInfo, QVariant
99
from qgis.core import (
1010
Qgis,
@@ -25,6 +25,12 @@
2525

2626
from .utils.logger import logger
2727

28+
# In GDAL 3.10.0 the return value of `ogr.CreateDataSource` changed from `ogr.DataSource` to `gdal.Dataset`.
29+
if gdal.VersionInfo() > "3010000":
30+
OgrDataset = NewType("OgrDataset", gdal.Dataset) # type: ignore
31+
else:
32+
OgrDataset = NewType("OgrDataset", ogr.DataSource) # type: ignore
33+
2834
FID_NULL = -4294967296
2935

3036
CUSTOM_PROPERTY_IS_OFFLINE_EDITABLE = "isOfflineEditable"
@@ -219,7 +225,7 @@ def ogr_escape(self, data: str):
219225
return data
220226

221227
def create_layer(
222-
self, layer: QgsVectorLayer, data_source: ogr.DataSource, offline_gpkg_path: str
228+
self, layer: QgsVectorLayer, data_source: OgrDataset, offline_gpkg_path: str
223229
) -> None:
224230
"""
225231
Will create a new layer for ``layer`` in the GeoPackage specified as ``data_source`` which is stored at ``offline_gpkg_path``.
@@ -270,7 +276,7 @@ def create_layer(
270276
def convert_to_offline_layer(
271277
self,
272278
layer: QgsVectorLayer,
273-
data_source: ogr.DataSource,
279+
data_source: OgrDataset,
274280
offline_gpkg_path: str,
275281
feature_request: QgsFeatureRequest = QgsFeatureRequest(),
276282
) -> str:

0 commit comments

Comments
 (0)