From 06b8ee4a15ef957b5f4ffaaa3468d6b7a3c80cf9 Mon Sep 17 00:00:00 2001 From: Maximilian Roos <5635139+max-sixty@users.noreply.github.com> Date: Sat, 23 Nov 2019 16:11:41 -0500 Subject: [PATCH] replace duplicate method _from_vars_and_coord_names (#3565) * replace duplicate method _from_vars_and_coord_names * drop_vars * whatsnew --- doc/whats-new.rst | 4 ++++ xarray/core/computation.py | 2 +- xarray/core/coordinates.py | 2 +- xarray/core/dataarray.py | 6 ++---- xarray/core/dataset.py | 8 -------- xarray/tests/test_dataarray.py | 2 +- 6 files changed, 9 insertions(+), 15 deletions(-) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index f1c3f59d2e3..1d239e18fcd 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -50,6 +50,10 @@ Internal Changes ~~~~~~~~~~~~~~~~ +- Removed internal method ``Dataset._from_vars_and_coord_names``, + which was dominated by ``Dataset._construct_direct``. (:pull:`3565`) + By `Maximilian Roos `_ + v0.14.1 (19 Nov 2019) --------------------- diff --git a/xarray/core/computation.py b/xarray/core/computation.py index f8e4914e57b..643c1137d6c 100644 --- a/xarray/core/computation.py +++ b/xarray/core/computation.py @@ -342,7 +342,7 @@ def _fast_dataset( variables.update(coord_variables) coord_names = set(coord_variables) - return Dataset._from_vars_and_coord_names(variables, coord_names) + return Dataset._construct_direct(variables, coord_names) def apply_dataset_vfunc( diff --git a/xarray/core/coordinates.py b/xarray/core/coordinates.py index eb2ceb1be07..3d51c9b4271 100644 --- a/xarray/core/coordinates.py +++ b/xarray/core/coordinates.py @@ -309,7 +309,7 @@ def to_dataset(self) -> "Dataset": from .dataset import Dataset coords = {k: v.copy(deep=False) for k, v in self._data._coords.items()} - return Dataset._from_vars_and_coord_names(coords, set(coords)) + return Dataset._construct_direct(coords, set(coords)) def __delitem__(self, key: Hashable) -> None: del self._data._coords[key] diff --git a/xarray/core/dataarray.py b/xarray/core/dataarray.py index 36452db8b7b..1b135a350d1 100644 --- a/xarray/core/dataarray.py +++ b/xarray/core/dataarray.py @@ -466,7 +466,7 @@ def subset(dim, label): variables.update({k: v for k, v in self._coords.items() if k != dim}) indexes = propagate_indexes(self._indexes, exclude=dim) coord_names = set(self._coords) - set([dim]) - dataset = Dataset._from_vars_and_coord_names( + dataset = Dataset._construct_direct( variables, coord_names, indexes=indexes, attrs=self.attrs ) return dataset @@ -496,9 +496,7 @@ def _to_dataset_whole( indexes = self._indexes coord_names = set(self._coords) - dataset = Dataset._from_vars_and_coord_names( - variables, coord_names, indexes=indexes - ) + dataset = Dataset._construct_direct(variables, coord_names, indexes=indexes) return dataset def to_dataset(self, dim: Hashable = None, *, name: Hashable = None) -> Dataset: diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 089cda06b0d..fdddde773c1 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -877,14 +877,6 @@ def _construct_direct( obj._encoding = encoding return obj - @classmethod - def _from_vars_and_coord_names( - cls, variables, coord_names, indexes=None, attrs=None - ): - return cls._construct_direct( - variables, coord_names, indexes=indexes, attrs=attrs - ) - def _replace( self, variables: Dict[Hashable, Variable] = None, diff --git a/xarray/tests/test_dataarray.py b/xarray/tests/test_dataarray.py index b5397525a22..ad98792372e 100644 --- a/xarray/tests/test_dataarray.py +++ b/xarray/tests/test_dataarray.py @@ -1190,7 +1190,7 @@ def test_selection_multiindex_from_level(self): data = xr.concat([da, db], dim="x").set_index(xy=["x", "y"]) assert data.dims == ("xy",) actual = data.sel(y="a") - expected = data.isel(xy=[0, 1]).unstack("xy").squeeze("y").drop("y") + expected = data.isel(xy=[0, 1]).unstack("xy").squeeze("y").drop_vars("y") assert_equal(actual, expected) def test_virtual_default_coords(self):