From a9d467f9dc24a113b78dff7bf92f770c163c2817 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Fri, 22 Sep 2023 21:53:44 +0200 Subject: [PATCH 1/6] Update dataset.py --- xarray/core/dataset.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 9d771f0390c..e609ebb0c37 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -21,7 +21,17 @@ from numbers import Number from operator import methodcaller from os import PathLike -from typing import IO, TYPE_CHECKING, Any, Callable, Generic, Literal, cast, overload +from typing import ( + IO, + TYPE_CHECKING, + Any, + Callable, + Generic, + Literal, + cast, + overload, + Union, +) import numpy as np @@ -124,7 +134,7 @@ from xarray.backends.api import T_NetcdfEngine, T_NetcdfTypes from xarray.core.dataarray import DataArray from xarray.core.groupby import DatasetGroupBy - from xarray.core.merge import CoercibleMapping, CoercibleValue + from xarray.core.merge import _MergeResult, CoercibleMapping, CoercibleValue from xarray.core.parallelcompat import ChunkManagerEntrypoint from xarray.core.resample import DatasetResample from xarray.core.rolling import DatasetCoarsen, DatasetRolling @@ -160,6 +170,9 @@ except ImportError: DaskDataFrame = None # type: ignore + DataVars = Mapping[Any, Any] + DataVarsInput = Union[DataVars, None] + # list of attributes of pd.DatetimeIndex that are ndarrays of time info _DATETIMEINDEX_COMPONENTS = [ @@ -404,7 +417,7 @@ def _initialize_feasible(lb, ub): return param_defaults, bounds_defaults -def merge_data_and_coords(data_vars, coords): +def merge_data_and_coords(data_vars: DataVars, coords) -> _MergeResult: """Used in Dataset.__init__.""" if isinstance(coords, Coordinates): coords = coords.copy() @@ -666,7 +679,7 @@ def __init__( self, # could make a VariableArgs to use more generally, and refine these # categories - data_vars: Mapping[Any, Any] | None = None, + data_vars: DataVars | None = None, coords: Mapping[Any, Any] | None = None, attrs: Mapping[Any, Any] | None = None, ) -> None: @@ -1220,9 +1233,7 @@ def _overwrite_indexes( else: return replaced - def copy( - self, deep: bool = False, data: Mapping[Any, ArrayLike] | None = None - ) -> Self: + def copy(self, deep: bool = False, data: DataVars | None = None) -> Self: """Returns a copy of this dataset. If `deep=True`, a deep copy is made of each of the component variables. @@ -1324,7 +1335,7 @@ def copy( def _copy( self, deep: bool = False, - data: Mapping[Any, ArrayLike] | None = None, + data: DataVars | None = None, memo: dict[int, Any] | None = None, ) -> Self: if data is None: From 4e4924a3054271eb0896e10f7cbf5ffa662b6084 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 19:55:00 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- xarray/core/dataset.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index e609ebb0c37..5114016e2d4 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -28,9 +28,9 @@ Callable, Generic, Literal, + Union, cast, overload, - Union, ) import numpy as np @@ -134,7 +134,7 @@ from xarray.backends.api import T_NetcdfEngine, T_NetcdfTypes from xarray.core.dataarray import DataArray from xarray.core.groupby import DatasetGroupBy - from xarray.core.merge import _MergeResult, CoercibleMapping, CoercibleValue + from xarray.core.merge import CoercibleMapping, CoercibleValue, _MergeResult from xarray.core.parallelcompat import ChunkManagerEntrypoint from xarray.core.resample import DatasetResample from xarray.core.rolling import DatasetCoarsen, DatasetRolling From 8d7d4c2862d80d176f0aa13a4bb5bd23fd22a334 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Fri, 22 Sep 2023 22:27:52 +0200 Subject: [PATCH 3/6] more typing --- xarray/core/coordinates.py | 4 ++-- xarray/core/dataset.py | 4 +--- xarray/core/types.py | 3 +++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/xarray/core/coordinates.py b/xarray/core/coordinates.py index 97ba383ebde..0c85b2a2d69 100644 --- a/xarray/core/coordinates.py +++ b/xarray/core/coordinates.py @@ -23,7 +23,7 @@ create_default_index_implicit, ) from xarray.core.merge import merge_coordinates_without_align, merge_coords -from xarray.core.types import Self, T_DataArray, T_Xarray +from xarray.core.types import DataVars, Self, T_DataArray, T_Xarray from xarray.core.utils import ( Frozen, ReprObject, @@ -937,7 +937,7 @@ def assert_coordinate_consistent(obj: T_Xarray, coords: Mapping[Any, Variable]) def create_coords_with_default_indexes( - coords: Mapping[Any, Any], data_vars: Mapping[Any, Any] | None = None + coords: Mapping[Any, Any], data_vars: DataVars | None = None ) -> Coordinates: """Returns a Coordinates object from a mapping of coordinates (arbitrary objects). diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index e609ebb0c37..a5bd73965d4 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -143,6 +143,7 @@ CoarsenBoundaryOptions, CombineAttrsOptions, CompatOptions, + DataVars, DatetimeLike, DatetimeUnitOptions, Dims, @@ -170,9 +171,6 @@ except ImportError: DaskDataFrame = None # type: ignore - DataVars = Mapping[Any, Any] - DataVarsInput = Union[DataVars, None] - # list of attributes of pd.DatetimeIndex that are ndarrays of time info _DATETIMEINDEX_COMPONENTS = [ diff --git a/xarray/core/types.py b/xarray/core/types.py index e9e700b038e..6b6f9300631 100644 --- a/xarray/core/types.py +++ b/xarray/core/types.py @@ -187,6 +187,9 @@ def copy( T_Chunks = Union[int, dict[Any, Any], Literal["auto"], None] T_NormalizedChunks = tuple[tuple[int, ...], ...] +DataVars = Mapping[Any, Any] + + ErrorOptions = Literal["raise", "ignore"] ErrorOptionsWithWarn = Literal["raise", "warn", "ignore"] From ea2be9b3b7a31576e30e06d9f96f98a05e9d04ff Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 22 Sep 2023 20:28:50 +0000 Subject: [PATCH 4/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- xarray/core/dataset.py | 1 - 1 file changed, 1 deletion(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index c0ed6256892..1513861db88 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -28,7 +28,6 @@ Callable, Generic, Literal, - Union, cast, overload, ) From 8c48e0d1e3dc37d78a721e6377105d56edbf3c10 Mon Sep 17 00:00:00 2001 From: Illviljan <14371165+Illviljan@users.noreply.github.com> Date: Sun, 24 Sep 2023 13:11:02 +0200 Subject: [PATCH 5/6] Update xarray/core/dataset.py Co-authored-by: Michael Niklas --- xarray/core/dataset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 1513861db88..3cf8378b16a 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -29,7 +29,7 @@ Generic, Literal, cast, - overload, + overload ) import numpy as np From 9459e25e0348289ba50401bc5d4eab8a6080f121 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 24 Sep 2023 11:11:38 +0000 Subject: [PATCH 6/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- xarray/core/dataset.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 3cf8378b16a..44016e87306 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -21,16 +21,7 @@ from numbers import Number from operator import methodcaller from os import PathLike -from typing import ( - IO, - TYPE_CHECKING, - Any, - Callable, - Generic, - Literal, - cast, - overload -) +from typing import IO, TYPE_CHECKING, Any, Callable, Generic, Literal, cast, overload import numpy as np