From d339a0d17746ef1489e2553fbf1e504047462d81 Mon Sep 17 00:00:00 2001 From: jack-volantautonomy Date: Fri, 7 Aug 2026 09:55:52 +0100 Subject: [PATCH 1/3] Allow DatasetWriter --- stubs/rasterio/rasterio/_warp.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stubs/rasterio/rasterio/_warp.pyi b/stubs/rasterio/rasterio/_warp.pyi index b98484b6fd62..9e20035887c8 100644 --- a/stubs/rasterio/rasterio/_warp.pyi +++ b/stubs/rasterio/rasterio/_warp.pyi @@ -8,7 +8,7 @@ from rasterio._typing import CRSInput, Geometry, Indexes, ShapeND, WindowInput, from rasterio.control import GroundControlPoint from rasterio.crs import CRS from rasterio.enums import Resampling -from rasterio.io import DatasetReader +from rasterio.io import DatasetReader, DatasetWriter from rasterio.rpc import RPC SUPPORTED_RESAMPLING: Final[list[Resampling]] @@ -67,7 +67,7 @@ def _suggested_proxy_vrt_doc( ) -> str: ... class WarpedVRTReaderBase(DatasetReaderBase): - src_dataset: DatasetReader + src_dataset: DatasetReader | DatasetWriter src_crs: CRS src_transform: Affine | None resampling: Resampling @@ -79,7 +79,7 @@ class WarpedVRTReaderBase(DatasetReaderBase): def __init__( self, - src_dataset: DatasetReader, + src_dataset: DatasetReader | DatasetWriter, src_crs: CRSInput | None = None, crs: CRSInput | None = None, resampling: Resampling = ..., From 8345e80115664258deeb632e323547536b5c47f4 Mon Sep 17 00:00:00 2001 From: jack-volantautonomy Date: Tue, 25 Aug 2026 17:04:38 +0100 Subject: [PATCH 2/3] PR comment --- stubs/rasterio/rasterio/_warp.pyi | 41 ++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/stubs/rasterio/rasterio/_warp.pyi b/stubs/rasterio/rasterio/_warp.pyi index 9e20035887c8..344844971c83 100644 --- a/stubs/rasterio/rasterio/_warp.pyi +++ b/stubs/rasterio/rasterio/_warp.pyi @@ -1,14 +1,15 @@ from collections.abc import Sequence -from typing import Any, Final +from typing import Any, Final, overload +from typing_extensions import deprecated +from affine import Affine as Affine from numpy.typing import DTypeLike, NDArray -from rasterio._affine_types import Affine -from rasterio._io import DatasetReaderBase +from rasterio._io import DatasetReaderBase, DatasetWriterBase from rasterio._typing import CRSInput, Geometry, Indexes, ShapeND, WindowInput, _GDALOption, _NestedScalar from rasterio.control import GroundControlPoint from rasterio.crs import CRS +from rasterio.dtypes import dtype_ranges as dtype_ranges from rasterio.enums import Resampling -from rasterio.io import DatasetReader, DatasetWriter from rasterio.rpc import RPC SUPPORTED_RESAMPLING: Final[list[Resampling]] @@ -67,7 +68,7 @@ def _suggested_proxy_vrt_doc( ) -> str: ... class WarpedVRTReaderBase(DatasetReaderBase): - src_dataset: DatasetReader | DatasetWriter + src_dataset: DatasetReaderBase src_crs: CRS src_transform: Affine | None resampling: Resampling @@ -77,9 +78,37 @@ class WarpedVRTReaderBase(DatasetReaderBase): working_dtype: DTypeLike | None warp_extras: dict[str, _GDALOption] + @overload + @deprecated( + "Source datasets opened in modes other than 'r' emit a " + "RasterioDeprecationWarning and will be disallowed in a future rasterio " + "release; reopen the dataset read-only before wrapping it." + ) def __init__( self, - src_dataset: DatasetReader | DatasetWriter, + src_dataset: DatasetWriterBase, + src_crs: CRSInput | None = None, + crs: CRSInput | None = None, + resampling: Resampling = ..., + tolerance: float = 0.125, + src_nodata: float | None = ..., + nodata: float | None = ..., + width: int | None = None, + height: int | None = None, + src_transform: Affine | None = None, + transform: Affine | None = None, + init_dest_nodata: bool = True, + src_alpha: int = 0, + dst_alpha: int = 0, + add_alpha: bool = False, + warp_mem_limit: int = 0, + dtype: DTypeLike | None = None, + **warp_extras: _GDALOption, + ) -> None: ... + @overload + def __init__( + self, + src_dataset: DatasetReaderBase, src_crs: CRSInput | None = None, crs: CRSInput | None = None, resampling: Resampling = ..., From 1c34d35fd95613b46d15186866b3b855f0d274e7 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 16:08:07 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/rasterio/rasterio/_warp.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stubs/rasterio/rasterio/_warp.pyi b/stubs/rasterio/rasterio/_warp.pyi index 344844971c83..a50b4e37564f 100644 --- a/stubs/rasterio/rasterio/_warp.pyi +++ b/stubs/rasterio/rasterio/_warp.pyi @@ -127,6 +127,7 @@ class WarpedVRTReaderBase(DatasetReaderBase): dtype: DTypeLike | None = None, **warp_extras: _GDALOption, ) -> None: ... + def read( # type: ignore[override] self, indexes: Indexes | None = None,