id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 1579956621,I_kwDOAMm_X85eLDmN,7519,Selecting variables from Dataset with view on dict keys is of type DataArray,25172489,closed,0,,,7,2023-02-10T16:02:19Z,2024-04-28T21:01:28Z,2024-04-28T21:01:27Z,NONE,,,,"### What happened? When selecting variables from a Dataset using a view on dict keys, the type returned is a DataArray, whereas the same using a list is a Dataset. ### What did you expect to happen? The type returned should be a Dataset. ### Minimal Complete Verifiable Example ```Python import xarray as xr d = {""a"": (""dim"", range(1, 4)), ""b"": (""dim"", range(2, 5))} data = xr.Dataset(d) select_dict = data[d.keys()] select_list = data[list(d)] reveal_type(select_dict) reveal_type(select_list) ``` ### MVCE confirmation - [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray. - [X] Complete example — the example is self-contained, including all data and the text of any traceback. - [x] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result. - [X] New issue — a search of GitHub Issues suggests this is not a duplicate. ### Relevant log output ```Python $ mypy test.py test.py:9: note: Revealed type is ""xarray.core.dataarray.DataArray"" test.py:10: note: Revealed type is ""xarray.core.dataset.Dataset"" Success: no issues found in 1 source file ``` ### Anything else we need to know? _No response_ ### Environment
INSTALLED VERSIONS ------------------ commit: None python: 3.9.10 (main, Mar 15 2022, 15:56:56) [GCC 7.5.0] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.49.1.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.2 libnetcdf: 4.9.0 xarray: 2022.12.0 pandas: 1.5.2 numpy: 1.23.5 scipy: 1.10.0 netCDF4: 1.6.2 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.6.2 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: None distributed: None matplotlib: 3.6.3 cartopy: None seaborn: None numbagg: None fsspec: None cupy: None pint: None sparse: None flox: None numpy_groupies: None setuptools: 58.1.0 pip: 23.0 conda: None pytest: 7.2.1 mypy: 0.991 IPython: 8.8.0 sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7519/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1461346911,I_kwDOAMm_X85XGmJf,7313,Using scatter with unfilled marker raises matplotlib UserWarning,25172489,closed,0,,,1,2022-11-23T09:17:17Z,2023-02-09T12:56:05Z,2023-02-09T12:56:05Z,NONE,,,,"### What is your issue? If plotting a scatter plot with an unfilled marker, matplotlib raises a UserWarning. Consider this MWE: ```python import warnings import numpy as np import xarray as xr warnings.filterwarnings(""error"") ds = xr.Dataset({""a"": (""dim"", np.arange(3, 10))}, {""dim"": np.arange(7)}) ds.plot.scatter(x=""dim"", y=""a"", marker=""x"") ``` Running this with matplotlib 3.6.2 yields: ``` Traceback (most recent call last): File ""/my/path/test.py"", line 9, in ds.plot.scatter(x=""dim"", y=""a"", marker=""x"") File ""/my/path/.venv/lib/python3.9/site-packages/xarray/plot/accessor.py"", line 1071, in scatter return dataset_plot.scatter(self._ds, *args, **kwargs) File ""/my/path/.venv/lib/python3.9/site-packages/xarray/plot/dataset_plot.py"", line 916, in scatter return da.plot.scatter(*locals_.pop(""args"", ()), **locals_) File ""/my/path/.venv/lib/python3.9/site-packages/xarray/plot/accessor.py"", line 305, in scatter return dataarray_plot.scatter(self._da, *args, **kwargs) File ""/my/path/.venv/lib/python3.9/site-packages/xarray/plot/dataarray_plot.py"", line 1002, in newplotfunc primitive = plotfunc( File ""/my/path/.venv/lib/python3.9/site-packages/xarray/plot/dataarray_plot.py"", line 1277, in scatter primitive = ax.scatter(*[p.to_numpy().ravel() for p in plts], **kwargs) File ""/my/path/.venv/lib/python3.9/site-packages/matplotlib/__init__.py"", line 1423, in inner return func(ax, *map(sanitize_sequence, args), **kwargs) File ""/my/path/.venv/lib/python3.9/site-packages/matplotlib/axes/_axes.py"", line 4571, in scatter _api.warn_external( File ""/my/path/.venv/lib/python3.9/site-packages/matplotlib/_api/__init__.py"", line 363, in warn_external warnings.warn(message, category, stacklevel) UserWarning: You passed a edgecolor/edgecolors ('w') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future. ``` Environment: ``` INSTALLED VERSIONS ------------------ commit: None python: 3.9.10 (main, Mar 15 2022, 15:56:56) [GCC 7.5.0] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.49.1.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.2 libnetcdf: 4.9.0 xarray: 2022.11.0 pandas: 1.5.1 numpy: 1.23.5 scipy: 1.9.3 netCDF4: 1.6.2 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.6.2 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: None distributed: None matplotlib: 3.6.2 cartopy: None seaborn: None numbagg: None fsspec: None cupy: None pint: None sparse: None flox: None numpy_groupies: None setuptools: 65.6.0 pip: 22.3.1 conda: None pytest: 7.2.0 IPython: 8.6.0 sphinx: None ```","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7313/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1461231016,I_kwDOAMm_X85XGJ2o,7312,polyval doesn't bind the output type,25172489,closed,0,,,3,2022-11-23T07:55:45Z,2022-11-26T15:42:52Z,2022-11-26T15:42:52Z,NONE,,,,"### What happened? We recently updated our package requirements to current xarray, and while some typing things got better for us, `xarray.polyval` seems to not allow mypy to correctly infer its output type. ### What did you expect to happen? Output type should depend on the input types. ### Minimal Complete Verifiable Example ```Python from __future__ import annotations import numpy as np import xarray as xr coeffs = xr.DataArray([1, 1]) xvals = xr.DataArray(np.arange(10)) result = xr.polyval(xvals, coeffs=coeffs) reveal_type(result) ``` ### MVCE confirmation - [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray. - [X] Complete example — the example is self-contained, including all data and the text of any traceback. - [ ] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result. - [X] New issue — a search of GitHub Issues suggests this is not a duplicate. ### Relevant log output ```Python test.py:11: note: Revealed type is ""Union[xarray.core.dataset.Dataset, xarray.core.dataarray.DataArray]"" ``` ### Anything else we need to know? _No response_ ### Environment
INSTALLED VERSIONS ------------------ commit: None python: 3.9.10 (main, Mar 15 2022, 15:56:56) [GCC 7.5.0] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.49.1.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.2 libnetcdf: 4.9.0 xarray: 2022.11.0 pandas: 1.5.1 numpy: 1.23.5 scipy: 1.9.3 netCDF4: 1.6.2 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.6.2 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: None distributed: None matplotlib: 3.6.2 cartopy: None seaborn: None numbagg: None fsspec: None cupy: None pint: None sparse: None flox: None numpy_groupies: None setuptools: 65.6.0 pip: 22.3.1 conda: None pytest: 7.2.0 IPython: 8.6.0 sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7312/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1405752975,I_kwDOAMm_X85TyhaP,7156,Plotting empty DataArray oddly raises ImportError,25172489,closed,0,43316012,,7,2022-10-12T08:00:13Z,2022-10-28T16:44:32Z,2022-10-28T16:44:32Z,NONE,,,,"### What happened? When calling the `xarray.DataArray.plot()` method on empty DataArrays raises an `ImportError` about a required, but missing, `nc-time-axis` package. This is at least confusing. ### What did you expect to happen? Either a more appropriate exception (to the effect of ""don't try to plot nothing plz""). Or just get an empty plot returned. ### Minimal Complete Verifiable Example ```Python >>> import xarray as xr >>> xr.DataArray([]) array([], dtype=float64) Dimensions without coordinates: dim_0 >>> xr.DataArray([]).plot() Traceback (most recent call last): File """", line 1, in File ""foo/env/lib/python3.9/site-packages/xarray/plot/plot.py"", line 866, in __call__ return plot(self._da, **kwargs) File ""foo/env/lib/python3.9/site-packages/xarray/plot/plot.py"", line 332, in plot return plotfunc(darray, **kwargs) File ""foo/env/lib/python3.9/site-packages/xarray/plot/plot.py"", line 438, in line _ensure_plottable(xplt_val, yplt_val) File ""foo/env/lib/python3.9/site-packages/xarray/plot/utils.py"", line 648, in _ensure_plottable raise ImportError( ImportError: Plotting of arrays of cftime.datetime objects or arrays indexed by cftime.datetime objects requires the optional `nc-time-axis` (v1.2.0 or later) package. ``` ### MVCE confirmation - [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray. - [X] Complete example — the example is self-contained, including all data and the text of any traceback. - [ ] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result. - [X] New issue — a search of GitHub Issues suggests this is not a duplicate. ### Relevant log output _No response_ ### Anything else we need to know? _No response_ ### Environment
INSTALLED VERSIONS ------------------ commit: None python: 3.9.10 (main, Mar 15 2022, 15:56:56) [GCC 7.5.0] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.49.1.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.0 libnetcdf: 4.7.4 xarray: 0.21.1 pandas: 1.4.0 numpy: 1.21.5 scipy: 1.8.1 netCDF4: 1.5.8 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.5.2 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: None distributed: None matplotlib: 3.5.1 cartopy: None seaborn: None numbagg: None fsspec: None cupy: None pint: None sparse: None setuptools: 49.2.1 pip: 22.2.2 conda: None pytest: 7.1.2 IPython: 8.0.1 sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7156/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 991144834,MDU6SXNzdWU5OTExNDQ4MzQ=,5779,Coordinates have wrong number of elements after a Dataset/DataArray is split by np.split(),25172489,open,0,,,4,2021-09-08T13:32:49Z,2021-09-13T04:34:02Z,,NONE,,,," **What happened**: Tried to split a DataArray containing coordinates using numpy. Surprisingly, coordinates along another dimension than the axis specified to numpy are split. The resulting DataArray is broken since now the number of elements in all coordinates are different from the corresponding dimensions. **What you expected to happen**: Coordinates along the correct dimension should be split. **Minimal Complete Verifiable Example**: ```python >>> import xarray as xr >>> import numpy as np >>> testarr = xr.DataArray(np.zeros((4, 6)), coords={""dim_0"": np.arange(4), ""aux_0"": (""dim_0"", [""a"", ""b"", ""c"", ""d""]), ""aux_1"": (""dim_1"", np.arange(6))}) >>> np.split(testarr, 3, axis=1) [ /-- array of shape (4, 2), all zero --/ Coordinates: * dim_0 (dim_0) int64 0 1 aux_0 (dim_0) /-- array of shape (4, 2), all zero --/ Coordinates: * dim_0 (dim_0) int64 2 3 aux_0 (dim_0) /-- array of shape (4, 2), all zero --/ Coordinates: * dim_0 (dim_0) int64 aux_0 (dim_0) Output of xr.show_versions() ```python >>> xr.show_versions() INSTALLED VERSIONS ------------------ commit: None python: 3.9.1 (default, Jan 13 2021, 15:21:08) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] python-bits: 64 OS: Linux OS-release: 3.10.0-1160.6.1.el7.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.0 libnetcdf: 4.7.4 xarray: 0.18.2 pandas: 1.2.5 numpy: 1.20.3 scipy: 1.6.3 netCDF4: 1.5.6 pydap: None h5netcdf: None h5py: 3.2.1 Nio: None zarr: None cftime: 1.5.0 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: 2021.06.0 distributed: None matplotlib: 3.4.2 cartopy: None seaborn: None numbagg: None pint: None setuptools: 49.2.1 pip: 21.2.4 conda: None pytest: 6.2.4 IPython: 7.24.1 sphinx: None ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5779/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue