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 2241095068,PR_kwDOAMm_X85sixE5,8935,Use Variable.stack instead of np.ravel,14371165,open,0,,,1,2024-04-12T23:04:35Z,2024-04-13T08:27:13Z,,MEMBER,,1,pydata/xarray/pulls/8935," - [ ] Closes #xxxx - [ ] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8935/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1410608825,PR_kwDOAMm_X85A4RjC,7173,Add LineCollection plot,14371165,open,0,,,1,2022-10-16T20:16:28Z,2024-04-07T20:26:44Z,,MEMBER,,1,pydata/xarray/pulls/7173,"This adds a line plotter based on `LineCollections`, called `.lines` at the moment. I wanted to replace `darray.plot()` with using LineCollection instead. But unfortunately due to how many cases are supported (and tested in xarray) `darray.plot()` will continue using `plt.plot`. xref: #4820 #5622","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7173/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2215603817,I_kwDOAMm_X86ED25p,8892,ffill's tolerance argument can be strings,14371165,open,0,,,1,2024-03-29T15:49:40Z,2024-04-02T01:50:34Z,,MEMBER,,,,"### What happened? `ffill`, `bfill` `reindex` etc. have tolerance arguments that also supports strings. And we test for it here: https://github.com/pydata/xarray/blob/2120808bbe45f3d4f0b6a01cd43bac4df4039092/xarray/tests/test_groupby.py#L2016-L2025 But our typing assumes it's floats only: https://github.com/pydata/xarray/blob/2120808bbe45f3d4f0b6a01cd43bac4df4039092/xarray/core/resample.py#L69-L94 ### What did you expect to happen? Since our pytests pass, mypy should pass as well. ### Minimal Complete Verifiable Example ```python import numpy as np import pandas as pd import xarray as xr # https://github.com/pydata/xarray/blob/2120808bbe45f3d4f0b6a01cd43bac4df4039092/xarray/tests/test_groupby.py#L2016 # Test tolerance keyword for upsample methods bfill, pad, nearest times = pd.date_range(""2000-01-01"", freq=""1D"", periods=2) times_upsampled = pd.date_range(""2000-01-01"", freq=""6h"", periods=5) array = xr.DataArray(np.arange(2), [(""time"", times)]) # Forward fill actual = array.resample(time=""6h"").ffill(tolerance=""12h"") expected = xr.DataArray([0.0, 0.0, 0.0, np.nan, 1.0], [(""time"", times_upsampled)]) xr.testing.assert_identical(expected, actual) ``` ### Environment master ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8892/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1549889322,PR_kwDOAMm_X85IKePm,7460,Add abstractmethods to backend classes,14371165,open,0,,,1,2023-01-19T20:19:36Z,2023-07-29T11:42:33Z,,MEMBER,,1,pydata/xarray/pulls/7460,"It's been unclear to me what methods are necessary to implement or not. I think decorating with `@abstractmethod` will help with that. It's a breaking change though and it could be disruptive. - [ ] Closes #xxxx - [ ] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7460/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 779938616,MDU6SXNzdWU3Nzk5Mzg2MTY=,4770,Interpolation always returns floats,14371165,open,0,,,1,2021-01-06T03:16:43Z,2021-01-12T16:30:54Z,,MEMBER,,,," **What happened**: When interpolating datasets integer arrays are forced to floats. **What you expected to happen**: To retain the same dtype after interpolation. **Minimal Complete Verifiable Example**: ```python import numpy as np import dask.array as da a = np.arange(0, 2) b = np.core.defchararray.add(""long_variable_name"", a.astype(str)) coords = dict(time=da.array([0, 1])) data_vars = dict() for v in b: data_vars[v] = xr.DataArray( name=v, data=da.array([0, 1], dtype=int), dims=[""time""], coords=coords, ) ds1 = xr.Dataset(data_vars) print(ds1) Out[35]: Dimensions: (time: 4) Coordinates: * time (time) float64 0.0 0.5 1.0 2.0 Data variables: long_variable_name0 (time) int32 dask.array long_variable_name1 (time) int32 dask.array # Interpolate: ds1 = ds1.interp( time=da.array([0, 0.5, 1, 2]), assume_sorted=True, method=""linear"", kwargs=dict(fill_value=""extrapolate""), ) # dask array thinks it's an integer array: print(ds1.long_variable_name0) Out[55]: dask.array Coordinates: * time (time) float64 0.0 0.5 1.0 2.0 # But once computed it turns out is a float: print(ds1.long_variable_name0.compute()) Out[38]: array([0. , 0.5, 1. , 2. ]) Coordinates: * time (time) float64 0.0 0.5 1.0 2.0 ``` **Anything else we need to know?**: An easy first step is to also force `np.float_` in `da.blockwise` in `missing.interp_func`. The more difficult way is to somehow be able to change back the dataarrays into the old dtype without affecting performance. I did a test simply adding `.astype() `to the returned value in `missing.interp` and it doubled the calculation time. I was thinking the conversion to floats in scipy could be avoided altogether by adding a (non-)public option to ignore any dtype checks and just let the user handle the ""unsafe"" interpolations. Related: https://github.com/scipy/scipy/issues/11093 **Environment**:
Output of xr.show_versions() xr.show_versions() INSTALLED VERSIONS ------------------ commit: None python: 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] python-bits: 64 OS: Windows libhdf5: 1.10.4 libnetcdf: None xarray: 0.16.2 pandas: 1.1.5 numpy: 1.17.5 scipy: 1.4.1 netCDF4: None pydap: None h5netcdf: None h5py: 2.10.0 Nio: None zarr: None cftime: None nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: 1.3.2 dask: 2020.12.0 distributed: 2020.12.0 matplotlib: 3.3.2 cartopy: None seaborn: 0.11.1 numbagg: None pint: None setuptools: 51.0.0.post20201207 pip: 20.3.3 conda: 4.9.2 pytest: 6.2.1 IPython: 7.19.0 sphinx: 3.4.0
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4770/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue