From 5d367db52a9044d2eeec5d460a9ea2f2f69d10e4 Mon Sep 17 00:00:00 2001 From: malmans2 Date: Fri, 28 May 2021 09:19:29 +0100 Subject: [PATCH 1/2] force object dtype in asarray --- xarray/core/dataset.py | 2 +- xarray/tests/test_dataset.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index 1697a7c67aa..d61a8cf8ced 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -1485,7 +1485,7 @@ def __getitem__(self, key): if hashable(key): return self._construct_dataarray(key) else: - return self._copy_listed(np.asarray(key)) + return self._copy_listed(np.asarray(key, dtype="O")) def __setitem__(self, key: Union[Hashable, List[Hashable], Mapping], value) -> None: """Add an array to this dataset. diff --git a/xarray/tests/test_dataset.py b/xarray/tests/test_dataset.py index 00a6fb825c7..29ff5c10a87 100644 --- a/xarray/tests/test_dataset.py +++ b/xarray/tests/test_dataset.py @@ -3305,6 +3305,11 @@ def test_getitem_hashable(self): with pytest.raises(KeyError, match=r"('var1', 'var2')"): data[("var1", "var2")] + def test_getitem_multiple_dtype(self): + keys = ["foo", 1] + dataset = Dataset({key: ("dim0", range(1)) for key in keys}) + assert_identical(dataset, dataset[keys]) + def test_virtual_variables_default_coords(self): dataset = Dataset({"foo": ("x", range(10))}) expected = DataArray(range(10), dims="x", name="x") From ee8339980d4199e796ff10218f64deddb3ba89b2 Mon Sep 17 00:00:00 2001 From: malmans2 Date: Mon, 31 May 2021 18:52:42 +0100 Subject: [PATCH 2/2] remove asarray --- 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 d61a8cf8ced..f973813315b 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -1485,7 +1485,7 @@ def __getitem__(self, key): if hashable(key): return self._construct_dataarray(key) else: - return self._copy_listed(np.asarray(key, dtype="O")) + return self._copy_listed(key) def __setitem__(self, key: Union[Hashable, List[Hashable], Mapping], value) -> None: """Add an array to this dataset.