html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/4703#issuecomment-747596156,https://api.github.com/repos/pydata/xarray/issues/4703,747596156,MDEyOklzc3VlQ29tbWVudDc0NzU5NjE1Ng==,2448579,2020-12-17T17:49:15Z,2020-12-18T00:59:47Z,MEMBER,"All 4 test failures are from dask. ``` ind = ('all-aggregate-766249a946efdef1b82b2fbb43c52b35',), coll = {} def nested_get(ind, coll): """"""Get nested index from collection Examples -------- >>> nested_get(1, 'abc') 'b' >>> nested_get([1, 0], 'abc') ('b', 'a') >>> nested_get([[1, 0], [0, 1]], 'abc') (('b', 'a'), ('a', 'b')) """""" if isinstance(ind, list): return tuple([nested_get(i, coll) for i in ind]) else: > return coll[ind] E KeyError: ('all-aggregate-766249a946efdef1b82b2fbb43c52b35',) ``` and ``` /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/blockwise.py:1456: in fuse_roots and not any(dependencies[dep] for dep in deps) # no need to fuse if 0 or 1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .0 = > and not any(dependencies[dep] for dep in deps) # no need to fuse if 0 or 1 and all(len(dependents[dep]) == 1 for dep in deps) and all(layer.annotations == graph.layers[dep].annotations for dep in deps) ): E KeyError: 'blockwise-create-zeros-83b321c493c9e89ba5406bf312d2ccc3' ``` Full error log:
``` =================================== FAILURES =================================== _________________ test_argmin_max[x-True-min-True-False-str-1] _________________ dim_num = 1, dtype = , contains_nan = False, dask = True func = 'min', skipna = True, aggdim = 'x' @pytest.mark.parametrize(""dim_num"", [1, 2]) @pytest.mark.parametrize(""dtype"", [float, int, np.float32, np.bool_, str]) @pytest.mark.parametrize(""contains_nan"", [True, False]) @pytest.mark.parametrize(""dask"", [False, True]) @pytest.mark.parametrize(""func"", [""min"", ""max""]) @pytest.mark.parametrize(""skipna"", [False, True]) @pytest.mark.parametrize(""aggdim"", [""x"", ""y""]) def test_argmin_max(dim_num, dtype, contains_nan, dask, func, skipna, aggdim): # pandas-dev/pandas#16830, we do not check consistency with pandas but # just make sure da[da.argmin()] == da.min() if aggdim == ""y"" and dim_num < 2: pytest.skip(""dim not in this test"") if dask and not has_dask: pytest.skip(""requires dask"") if contains_nan: if not skipna: pytest.skip(""numpy's argmin (not nanargmin) does not handle object-dtype"") if skipna and np.dtype(dtype).kind in ""iufc"": pytest.skip(""numpy's nanargmin raises ValueError for all nan axis"") da = construct_dataarray(dim_num, dtype, contains_nan=contains_nan, dask=dask) with warnings.catch_warnings(): warnings.filterwarnings(""ignore"", ""All-NaN slice"") actual = da.isel( **{aggdim: getattr(da, ""arg"" + func)(dim=aggdim, skipna=skipna).compute()} ) expected = getattr(da, func)(dim=aggdim, skipna=skipna) > assert_allclose( actual.drop_vars(list(actual.coords)), expected.drop_vars(list(expected.coords)), ) /home/runner/work/xarray/xarray/xarray/tests/test_duck_array_ops.py:497: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/runner/work/xarray/xarray/xarray/testing.py:139: in compat_variable return a.dims == b.dims and (a._data is b._data or equiv(a.data, b.data)) /home/runner/work/xarray/xarray/xarray/testing.py:36: in _data_allclose_or_equiv return duck_array_ops.array_equiv(arr1, arr2) /home/runner/work/xarray/xarray/xarray/core/duck_array_ops.py:249: in array_equiv return bool(flag_array.all()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/array/core.py:1555: in __bool__ return bool(self.compute()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:279: in compute (result,) = compute(self, traverse=False, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:567: in compute results = schedule(dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:527: in get_sync return get_async(apply_sync, 1, dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:503: in get_async return nested_get(result, state[""cache""]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in nested_get return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in nested_get return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in return tuple([nested_get(i, coll) for i in ind]) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ind = ('all-aggregate-16e252575441a0847c7885d6f7da3342',), coll = {} def nested_get(ind, coll): """"""Get nested index from collection Examples -------- >>> nested_get(1, 'abc') 'b' >>> nested_get([1, 0], 'abc') ('b', 'a') >>> nested_get([[1, 0], [0, 1]], 'abc') (('b', 'a'), ('a', 'b')) """""" if isinstance(ind, list): return tuple([nested_get(i, coll) for i in ind]) else: > return coll[ind] E KeyError: ('all-aggregate-16e252575441a0847c7885d6f7da3342',) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:301: KeyError _________________ test_argmin_max[x-True-max-True-False-str-1] _________________ dim_num = 1, dtype = , contains_nan = False, dask = True func = 'max', skipna = True, aggdim = 'x' @pytest.mark.parametrize(""dim_num"", [1, 2]) @pytest.mark.parametrize(""dtype"", [float, int, np.float32, np.bool_, str]) @pytest.mark.parametrize(""contains_nan"", [True, False]) @pytest.mark.parametrize(""dask"", [False, True]) @pytest.mark.parametrize(""func"", [""min"", ""max""]) @pytest.mark.parametrize(""skipna"", [False, True]) @pytest.mark.parametrize(""aggdim"", [""x"", ""y""]) def test_argmin_max(dim_num, dtype, contains_nan, dask, func, skipna, aggdim): # pandas-dev/pandas#16830, we do not check consistency with pandas but # just make sure da[da.argmin()] == da.min() if aggdim == ""y"" and dim_num < 2: pytest.skip(""dim not in this test"") if dask and not has_dask: pytest.skip(""requires dask"") if contains_nan: if not skipna: pytest.skip(""numpy's argmin (not nanargmin) does not handle object-dtype"") if skipna and np.dtype(dtype).kind in ""iufc"": pytest.skip(""numpy's nanargmin raises ValueError for all nan axis"") da = construct_dataarray(dim_num, dtype, contains_nan=contains_nan, dask=dask) with warnings.catch_warnings(): warnings.filterwarnings(""ignore"", ""All-NaN slice"") actual = da.isel( **{aggdim: getattr(da, ""arg"" + func)(dim=aggdim, skipna=skipna).compute()} ) expected = getattr(da, func)(dim=aggdim, skipna=skipna) > assert_allclose( actual.drop_vars(list(actual.coords)), expected.drop_vars(list(expected.coords)), ) /home/runner/work/xarray/xarray/xarray/tests/test_duck_array_ops.py:497: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/runner/work/xarray/xarray/xarray/testing.py:139: in compat_variable return a.dims == b.dims and (a._data is b._data or equiv(a.data, b.data)) /home/runner/work/xarray/xarray/xarray/testing.py:36: in _data_allclose_or_equiv return duck_array_ops.array_equiv(arr1, arr2) /home/runner/work/xarray/xarray/xarray/core/duck_array_ops.py:249: in array_equiv return bool(flag_array.all()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/array/core.py:1555: in __bool__ return bool(self.compute()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:279: in compute (result,) = compute(self, traverse=False, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:567: in compute results = schedule(dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:527: in get_sync return get_async(apply_sync, 1, dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:503: in get_async return nested_get(result, state[""cache""]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in nested_get return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in nested_get return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in return tuple([nested_get(i, coll) for i in ind]) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ind = ('all-aggregate-766249a946efdef1b82b2fbb43c52b35',), coll = {} def nested_get(ind, coll): """"""Get nested index from collection Examples -------- >>> nested_get(1, 'abc') 'b' >>> nested_get([1, 0], 'abc') ('b', 'a') >>> nested_get([[1, 0], [0, 1]], 'abc') (('b', 'a'), ('a', 'b')) """""" if isinstance(ind, list): return tuple([nested_get(i, coll) for i in ind]) else: > return coll[ind] E KeyError: ('all-aggregate-766249a946efdef1b82b2fbb43c52b35',) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:301: KeyError _________________ TestVariableWithDask.test_getitem_with_mask __________________ self = def test_getitem_with_mask(self): v = self.cls([""x""], [0, 1, 2]) assert_identical(v._getitem_with_mask(-1), Variable((), np.nan)) assert_identical( v._getitem_with_mask([0, -1, 1]), self.cls([""x""], [0, np.nan, 1]) ) > assert_identical(v._getitem_with_mask(slice(2)), self.cls([""x""], [0, 1])) /home/runner/work/xarray/xarray/xarray/tests/test_variable.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/runner/work/xarray/xarray/xarray/core/variable.py:1799: in identical return utils.dict_equiv(self.attrs, other.attrs) and self.equals( /home/runner/work/xarray/xarray/xarray/core/variable.py:1778: in equals self._data is other._data or equiv(self.data, other.data) /home/runner/work/xarray/xarray/xarray/core/duck_array_ops.py:249: in array_equiv return bool(flag_array.all()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/array/core.py:1555: in __bool__ return bool(self.compute()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:279: in compute (result,) = compute(self, traverse=False, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:567: in compute results = schedule(dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:527: in get_sync return get_async(apply_sync, 1, dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:503: in get_async return nested_get(result, state[""cache""]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in nested_get return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in nested_get return tuple([nested_get(i, coll) for i in ind]) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:299: in return tuple([nested_get(i, coll) for i in ind]) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ind = ('all-aggregate-513dc24870cea02fa21755f960f05d30',), coll = {} def nested_get(ind, coll): """"""Get nested index from collection Examples -------- >>> nested_get(1, 'abc') 'b' >>> nested_get([1, 0], 'abc') ('b', 'a') >>> nested_get([[1, 0], [0, 1]], 'abc') (('b', 'a'), ('a', 'b')) """""" if isinstance(ind, list): return tuple([nested_get(i, coll) for i in ind]) else: > return coll[ind] E KeyError: ('all-aggregate-513dc24870cea02fa21755f960f05d30',) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/local.py:301: KeyError ___________________ TestVariableWithDask.test_real_and_imag ____________________ self = def test_real_and_imag(self): v = self.cls(""x"", np.arange(3) - 1j * np.arange(3), {""foo"": ""bar""}) expected_re = self.cls(""x"", np.arange(3), {""foo"": ""bar""}) > assert_identical(v.real, expected_re) /home/runner/work/xarray/xarray/xarray/tests/test_variable.py:580: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/runner/work/xarray/xarray/xarray/core/variable.py:1799: in identical return utils.dict_equiv(self.attrs, other.attrs) and self.equals( /home/runner/work/xarray/xarray/xarray/core/variable.py:1778: in equals self._data is other._data or equiv(self.data, other.data) /home/runner/work/xarray/xarray/xarray/core/duck_array_ops.py:249: in array_equiv return bool(flag_array.all()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/array/core.py:1555: in __bool__ return bool(self.compute()) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:279: in compute (result,) = compute(self, traverse=False, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:561: in compute dsk = collections_to_dsk(collections, optimize_graph, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/base.py:332: in collections_to_dsk _opt = opt(dsk, keys, **kwargs) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/array/optimization.py:47: in optimize dsk = fuse_roots(dsk, keys=keys) /usr/share/miniconda/envs/xarray-tests/lib/python3.8/site-packages/dask/blockwise.py:1456: in fuse_roots and not any(dependencies[dep] for dep in deps) # no need to fuse if 0 or 1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .0 = > and not any(dependencies[dep] for dep in deps) # no need to fuse if 0 or 1 and all(len(dependents[dep]) == 1 for dep in deps) and all(layer.annotations == graph.layers[dep].annotations for dep in deps) ): E KeyError: 'blockwise-create-zeros-83b321c493c9e89ba5406bf312d2ccc3' ```
PS: Great work with this feature!","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,769382950