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 2272299822,PR_kwDOAMm_X85uL82a,8989,Skip flaky `test_open_mfdataset_manyfiles` test,5635139,closed,0,,,0,2024-04-30T19:24:41Z,2024-04-30T20:27:04Z,2024-04-30T19:46:34Z,MEMBER,,0,pydata/xarray/pulls/8989,"Don't just xfail, and not only on windows, since it can crash the worker ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8989/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2271670475,PR_kwDOAMm_X85uJ5Er,8988,Remove `.drop` warning allow,5635139,closed,0,,,0,2024-04-30T14:39:35Z,2024-04-30T19:26:17Z,2024-04-30T19:26:16Z,MEMBER,,0,pydata/xarray/pulls/8988,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8988/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2271652603,PR_kwDOAMm_X85uJ122,8987,Add notes on when to add ignores to warnings,5635139,closed,0,,,0,2024-04-30T14:34:52Z,2024-04-30T14:56:47Z,2024-04-30T14:56:46Z,MEMBER,,0,pydata/xarray/pulls/8987,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8987/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2268058661,PR_kwDOAMm_X85t9f5f,8982,Switch all methods to `dim`,5635139,closed,0,,,0,2024-04-29T03:42:34Z,2024-04-29T18:24:56Z,2024-04-29T18:24:55Z,MEMBER,,0,pydata/xarray/pulls/8982," I _think_ this is the final set of methods - [x] Closes #6646 - [ ] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8982/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 1, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2244681150,PR_kwDOAMm_X85suxIl,8947,Add mypy to dev dependencies,5635139,closed,0,,,0,2024-04-15T21:39:19Z,2024-04-17T16:39:23Z,2024-04-17T16:39:22Z,MEMBER,,0,pydata/xarray/pulls/8947,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8947/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2128687154,PR_kwDOAMm_X85mkCum,8734,Silence dask doctest warning,5635139,closed,0,,,0,2024-02-10T19:25:47Z,2024-02-10T23:44:24Z,2024-02-10T23:44:24Z,MEMBER,,0,pydata/xarray/pulls/8734,"Closes #8732. Not the most elegant implementation but it's only temporary ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8734/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2126095122,PR_kwDOAMm_X85mbRG7,8724,Switch `.dt` to raise an `AttributeError`,5635139,closed,0,,,0,2024-02-08T21:26:06Z,2024-02-09T02:21:47Z,2024-02-09T02:21:46Z,MEMBER,,0,pydata/xarray/pulls/8724,"Discussion at #8718 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8724/reactions"", ""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2097231358,PR_kwDOAMm_X85k5dSd,8648,xfail another test on windows,5635139,closed,0,,,0,2024-01-24T01:04:01Z,2024-01-24T01:23:26Z,2024-01-24T01:23:26Z,MEMBER,,0,pydata/xarray/pulls/8648,"As ever, very open to approaches to fix these. But unless we can fix them, xfailing them seems like the most reasonable solution ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8648/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2089331658,PR_kwDOAMm_X85keyUs,8624,Use ddof in `numbagg>=0.7.0` for aggregations,5635139,closed,0,,,0,2024-01-19T00:23:15Z,2024-01-23T02:25:39Z,2024-01-23T02:25:38Z,MEMBER,,0,pydata/xarray/pulls/8624,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8624/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2094956413,PR_kwDOAMm_X85kxwAk,8643,xfail zarr test on Windows,5635139,closed,0,,,0,2024-01-22T23:24:12Z,2024-01-23T00:40:29Z,2024-01-23T00:40:28Z,MEMBER,,0,pydata/xarray/pulls/8643,"I see this failing quite a lot of the time... Ofc open to a proper solution but in the meantime setting this to xfail ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8643/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2092299525,PR_kwDOAMm_X85kozmg,8630,Use `T_DataArray` in `Weighted`,5635139,closed,0,,,0,2024-01-21T01:18:14Z,2024-01-22T04:28:07Z,2024-01-22T04:28:07Z,MEMBER,,0,pydata/xarray/pulls/8630,"Allows subtypes. (I had this in my git stash, so commiting it...) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8630/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2092790802,PR_kwDOAMm_X85kqX8y,8637,xfail a cftime test,5635139,closed,0,,,0,2024-01-21T21:43:59Z,2024-01-21T22:00:59Z,2024-01-21T22:00:58Z,MEMBER,,0,pydata/xarray/pulls/8637,"https://github.com/pydata/xarray/pull/8636#issuecomment-1902775153 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8637/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2089351473,PR_kwDOAMm_X85ke2qd,8625,Don't show stdlib paths for `user_level_warnings`,5635139,closed,0,,,0,2024-01-19T00:45:14Z,2024-01-21T21:08:40Z,2024-01-21T21:08:39Z,MEMBER,,0,pydata/xarray/pulls/8625,"Was previously seeing: ``` :801: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. ``` Now: ``` /Users/maximilian/workspace/xarray/xarray/tests/test_dataset.py:701: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`. assert ds.dims == ds.sizes ``` It's a heuristic, so not perfect, but I think very likely to be accurate. Any contrary cases very welcome... ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8625/reactions"", ""total_count"": 3, ""+1"": 3, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2092762468,PR_kwDOAMm_X85kqSLW,8635,xfail pyarrow test,5635139,closed,0,,,0,2024-01-21T20:42:50Z,2024-01-21T21:03:35Z,2024-01-21T21:03:34Z,MEMBER,,0,pydata/xarray/pulls/8635,"Sorry for the repeated PR -- some tests passed but some failed without pyarrow installed. So this xfails the test for the moment ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8635/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2092747686,PR_kwDOAMm_X85kqPTB,8634,Workaround broken test from pyarrow,5635139,closed,0,,,0,2024-01-21T20:01:51Z,2024-01-21T20:18:23Z,2024-01-21T20:18:22Z,MEMBER,,0,pydata/xarray/pulls/8634,"While fixing the previous issue, I introduced another (but didn't see it because of the errors from the test suite, probably should have looked closer...) This doesn't fix the behavior, but I think it's minor so fine to push off. I do prioritize getting the tests where pass vs failure is meaningful again ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8634/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1923361961,I_kwDOAMm_X85ypCyp,8263,Surprising `.groupby` behavior with float index,5635139,closed,0,,,0,2023-10-03T05:50:49Z,2024-01-08T01:05:25Z,2024-01-08T01:05:25Z,MEMBER,,,,"### What is your issue? We raise an error on grouping without supplying dims, but not for float indexes — is this intentional or an oversight? > This is without `flox` installed ```python da = xr.tutorial.open_dataset(""air_temperature"")['air'] da.drop_vars('lat').groupby('lat').sum() ``` ``` --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[8], line 1 ----> 1 da.drop_vars('lat').groupby('lat').sum() ... ValueError: cannot reduce over dimensions ['lat']. expected either '...' to reduce over all dimensions or one or more of ('time', 'lon'). ``` But with a float index, we don't raise: ```python da.groupby('lat').sum() ``` ...returns the original array: ``` Out[15]: array([[[296.29 , 296.79 , 297.1 , ..., 296.9 , 296.79 , 296.6 ], [295.9 , 296.19998, 296.79 , ..., 295.9 , 295.9 , 295.19998], [296.6 , 296.19998, 296.4 , ..., 295.4 , 295.1 , 294.69998], ... ``` And if we try this with a non-float index, we get the error again: ```python da.groupby('time').sum() ``` ``` ValueError: cannot reduce over dimensions ['time']. expected either '...' to reduce over all dimensions or one or more of ('lat', 'lon'). ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8263/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1916677049,I_kwDOAMm_X85yPiu5,8245,Tools for writing distributed zarrs,5635139,open,0,,,0,2023-09-28T04:25:45Z,2024-01-04T00:15:09Z,,MEMBER,,,,"### What is your issue? There seems to be a common pattern for writing zarrs from a distributed set of machines, in parallel. It's somewhat described in the prose of [the io docs](https://docs.xarray.dev/en/stable/user-guide/io.html#appending-to-existing-zarr-stores). Quoting: - Creating the template — ""the first step is creating an initial Zarr store without writing all of its array data. This can be done by first creating a Dataset with dummy values stored in [dask](https://docs.xarray.dev/en/stable/user-guide/dask.html#dask), and then calling to_zarr with compute=False to write only metadata to Zarr"" - Writing out each region from workers — ""a Zarr store with the correct variable shapes and attributes exists that can be filled out by subsequent calls to to_zarr. The region provides a mapping from dimension names to Python slice objects indicating where the data should be written (in index space, not coordinate space)"" I've been using this fairly successfully recently. It's much better than writing hundreds or thousands of data variables, since many small data variables create a huge number of files. Are there some tools we can provide to make this easier? Some ideas: - [ ] `compute=False` is arguably a less-than-obvious kwarg meaning ""write metadata"". Maybe this should be a method, maybe it's a candidate for renaming? Or maybe `make_template` can be an abstraction over it. Something like [`xarray_beam.make_template`](https://xarray-beam.readthedocs.io/en/latest/_autosummary/xarray_beam.make_template.html) to make the template from a Dataset? - Or from an array of indexes? - https://github.com/pydata/xarray/issues/8343 - https://github.com/pydata/xarray/pull/8460 - [ ] What happens if one worker's data isn't aligned on some dimensions? Will that write to the wrong location? Could we offer an option, similar to the above, to reindex on the template dimensions? - [ ] When writing a region, we need to drop other vars. Can we offer this as a kwarg? Occasionally I'll add a dimension with an index to a dataset, run the function to write it — and it'll fail, because I forgot to add that index to the `.drop_vars` call that precedes the write. When we're writing a template, all the indexes are written up front anyway. (edit: #6260) - https://github.com/pydata/xarray/pull/8460 More minor papercuts: - [ ] I've hit an issue where writing a region seemed to cause the worker to attempt to load the whole array into memory — can we offer guarantees for when (non-metadata) data will be loaded during `to_zarr`? - [ ] How about adding [`raise_if_dask_computes`](https://tgsmc.slack.com/archives/C04TBA4NBHD/p1695840018643219) to our public API? The alternative I've been doing is watching `htop` and existing if I see memory ballooning, which is less cerebral... - [ ] It doesn't seem easy to write coords on a DataArray. For example, writing `xr.tutorial.load_dataset('air_temperature').assign_coords(lat2=da.lat + 2, a=(('lon',), ['a'] * len(da.lon))).chunk().to_zarr('foo.zarr', compute=False)` will cause the non-index coords to be written as empty. But writing them separately conflicts with having a single variable. Currently I manually load each coord before writing, which is not super-friendly. Some things that were in the list here, as they've been completed!! - [x] Requiring `region` to be specified as an int range can be inconvenient — would it feasible to have a function that grabs the template metadata, calculates the region ints, and then calculates the implied indexes? - Edit: suggested at https://github.com/pydata/xarray/issues/7702","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8245/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 1}",,,13221727,issue 2036491126,PR_kwDOAMm_X85hud-m,8543,Fix incorrect indent,5635139,closed,0,,,0,2023-12-11T20:41:32Z,2023-12-11T20:43:26Z,2023-12-11T20:43:09Z,MEMBER,,0,pydata/xarray/pulls/8543,"edit: my mistake, this is intended","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8543/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1192478248,I_kwDOAMm_X85HE8Yo,6440,Add `eval`?,5635139,closed,0,,,0,2022-04-05T00:57:00Z,2023-12-06T17:52:47Z,2023-12-06T17:52:47Z,MEMBER,,,,"### Is your feature request related to a problem? We currently have [`query`](https://github.com/pydata/xarray/blob/9186540199d744c676e3ee9e829815695065e5f7/xarray/core/dataset.py), which can runs a numexpr string using `eval`. ### Describe the solution you'd like Should we add an `eval` method itself? I find that when building something for the command line, allowing people to pass an `eval`-able expression can be a good interface. ### Describe alternatives you've considered _No response_ ### Additional context _No response_","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6440/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 2022178394,PR_kwDOAMm_X85g92vo,8511,Allow callables to `.drop_vars`,5635139,closed,0,,,0,2023-12-02T19:39:53Z,2023-12-03T22:04:53Z,2023-12-03T22:04:52Z,MEMBER,,0,pydata/xarray/pulls/8511,"This can be used as a nice more general alternative to `.drop_indexes` or `.reset_coords(drop=True)` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8511/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2019642778,PR_kwDOAMm_X85g1URY,8497,Fully deprecate `.drop`,5635139,closed,0,,,0,2023-11-30T22:54:57Z,2023-12-02T05:52:50Z,2023-12-02T05:52:49Z,MEMBER,,0,pydata/xarray/pulls/8497,"I think it's time... ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8497/reactions"", ""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2010797682,PR_kwDOAMm_X85gXPEM,8485,Refine rolling_exp error messages,5635139,closed,0,,,0,2023-11-25T21:09:52Z,2023-11-25T21:55:20Z,2023-11-25T21:55:20Z,MEMBER,,0,pydata/xarray/pulls/8485,"(Sorry, copy & pasted too liberally!) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8485/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2005419839,PR_kwDOAMm_X85gFPfF,8474,"Improve ""variable not found"" error message",5635139,closed,0,,,0,2023-11-22T01:52:47Z,2023-11-24T18:49:39Z,2023-11-24T18:49:38Z,MEMBER,,0,pydata/xarray/pulls/8474," One very small step as part of https://github.com/pydata/xarray/issues/8264. The existing error is just `KeyError: 'foo`, which is annoyingly terse. Future improvements include searching for similar variable names, or even rewriting the user's calling code if there's a close variable name. This PR creates a new test file. I don't love the format here — it's difficult to snapshot an error message, so it requires copying & pasting things, which doesn't scale well, and the traceback contains environment-specific lines such that it wouldn't be feasible to paste tracebacks. ([here's](https://github.com/PRQL/prql/blob/7ef5ba9a074772fc26e8fcdf12a2a05768071948/prqlc/prql-compiler/tests/sql/error_messages.rs) what we do in PRQL, which is (immodestly) great) An alternative is just to put these in the mix of all the other tests; am open to that (and not difficult to change later)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8474/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2006891782,PR_kwDOAMm_X85gKSKW,8478,Add whatsnew for #8475,5635139,closed,0,,,0,2023-11-22T18:22:19Z,2023-11-22T18:45:23Z,2023-11-22T18:45:22Z,MEMBER,,0,pydata/xarray/pulls/8478,"Sorry, forgot in the original PR ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8478/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2005656379,PR_kwDOAMm_X85gGCSj,8475,Allow `rank` to run on dask arrays,5635139,closed,0,,,0,2023-11-22T06:22:44Z,2023-11-22T16:45:03Z,2023-11-22T16:45:02Z,MEMBER,,0,pydata/xarray/pulls/8475," - [x] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8475/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2005744975,PR_kwDOAMm_X85gGVaY,8476,Fix mypy tests,5635139,closed,0,,,0,2023-11-22T07:36:43Z,2023-11-22T08:01:13Z,2023-11-22T08:01:12Z,MEMBER,,0,pydata/xarray/pulls/8476,"I was seeing an error in #8475 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8476/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2000146978,PR_kwDOAMm_X85fziKs,8465,Consolidate `_get_alpha` func,5635139,closed,0,,,0,2023-11-18T01:37:25Z,2023-11-21T18:24:52Z,2023-11-21T18:24:51Z,MEMBER,,0,pydata/xarray/pulls/8465,"Am changing this a bit so starting with consolidating it rather than converting twice ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8465/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1980019336,I_kwDOAMm_X852BLKI,8421,`to_zarr` could transpose dims,5635139,closed,0,,,0,2023-11-06T20:38:35Z,2023-11-14T19:23:08Z,2023-11-14T19:23:08Z,MEMBER,,,,"### Is your feature request related to a problem? Currently we need to know the order of dims when using `region` in `to_zarr`. Generally in xarray we're fine with the order, because we have the names, so this is a bit of an aberration. It means that code needs to carry around the correct order of dims. Here's an MCVE: ```python ds = xr.tutorial.load_dataset('air_temperature') ds.to_zarr('foo', mode='w') ds.transpose(..., 'lat').to_zarr('foo', mode='r+') # ValueError: variable 'air' already exists with different dimension names ('time', 'lat', 'lon') != ('time', 'lon', 'lat'), but changing variable dimensions is not supported by to_zarr(). ``` ### Describe the solution you'd like I think we should be able to transpose them based on the target? ### Describe alternatives you've considered _No response_ ### Additional context _No response_","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8421/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1953143391,PR_kwDOAMm_X85dUk-m,8347,2023.10.1 release notes,5635139,closed,0,,,0,2023-10-19T22:19:43Z,2023-10-19T22:42:48Z,2023-10-19T22:42:47Z,MEMBER,,0,pydata/xarray/pulls/8347,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8347/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1948529004,PR_kwDOAMm_X85dE5aA,8327,Add docs to `reindex_like` re broadcasting,5635139,closed,0,,,0,2023-10-18T00:46:52Z,2023-10-18T18:16:43Z,2023-10-18T16:51:12Z,MEMBER,,0,pydata/xarray/pulls/8327,"This wasn't clear to me so I added some examples & a reference to `broadcast_like` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8327/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1943054301,PR_kwDOAMm_X85cyrdc,8307,"Add `corr`, `cov`, `std` & `var` to `.rolling_exp`",5635139,closed,0,,,0,2023-10-14T07:25:31Z,2023-10-18T17:35:35Z,2023-10-18T16:55:35Z,MEMBER,,0,pydata/xarray/pulls/8307,"From the new routines in numbagg. Maybe needs better tests (though these are quite heavily tested in numbagg), docs, and potentially need to think about types (maybe existing binary ops can help here?) (will fail while the build is cached on an old version of numbagg)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8307/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1948537810,PR_kwDOAMm_X85dE7Te,8328,Refine curvefit doctest,5635139,closed,0,,,0,2023-10-18T00:55:16Z,2023-10-18T01:19:27Z,2023-10-18T01:19:26Z,MEMBER,,0,pydata/xarray/pulls/8328,"A very small change ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8328/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1946081841,PR_kwDOAMm_X85c8kKB,8321,Remove a couple of trailing commas in tests,5635139,closed,0,,,0,2023-10-16T20:57:04Z,2023-10-16T21:26:50Z,2023-10-16T21:26:49Z,MEMBER,,0,pydata/xarray/pulls/8321,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8321/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1920172346,PR_kwDOAMm_X85blZOk,8256,Accept `lambda` for `other` param,5635139,closed,0,,,0,2023-09-30T08:24:36Z,2023-10-14T07:26:28Z,2023-09-30T18:50:33Z,MEMBER,,0,pydata/xarray/pulls/8256,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8256/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1931467868,PR_kwDOAMm_X85cLSzK,8283,Ask bug reporters to confirm they're using a recent version of xarray,5635139,closed,0,,,0,2023-10-07T19:07:17Z,2023-10-14T07:26:28Z,2023-10-09T13:30:03Z,MEMBER,,0,pydata/xarray/pulls/8283,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8283/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1931584082,PR_kwDOAMm_X85cLpuZ,8286,Fix `GroupBy` import,5635139,closed,0,,,0,2023-10-08T01:15:37Z,2023-10-14T07:26:28Z,2023-10-09T13:38:44Z,MEMBER,,0,pydata/xarray/pulls/8286,"Not sure why this only breaks tests for me, vs. in CI, but hopefully no downside to this change... ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8286/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1931581491,PR_kwDOAMm_X85cLpMS,8284,Enable `.rolling_exp` to work on dask arrays,5635139,closed,0,,,0,2023-10-08T01:06:04Z,2023-10-14T07:26:27Z,2023-10-10T06:37:20Z,MEMBER,,0,pydata/xarray/pulls/8284,"Another benefit of the move to `.apply_ufunc`... ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8284/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1940614908,PR_kwDOAMm_X85cqvBb,8299,xfail flaky test,5635139,closed,0,,,0,2023-10-12T19:03:59Z,2023-10-12T22:00:51Z,2023-10-12T22:00:47Z,MEMBER,,0,pydata/xarray/pulls/8299,"Would be better to fix it, but in lieu of fixing, better to skip it ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8299/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1920359276,PR_kwDOAMm_X85bl9er,8257,Mandate kwargs on `to_zarr`,5635139,closed,0,,,0,2023-09-30T18:33:13Z,2023-10-12T18:33:15Z,2023-10-04T19:05:02Z,MEMBER,,0,pydata/xarray/pulls/8257,"This aleviates some of the dangers of having these in a different order between `da` & `ds`. _Technically_ it's a breaking change, but only very technically, given that I would wager literally no one has a dozen positional arguments to this method. So I think it's OK. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8257/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1926810300,PR_kwDOAMm_X85b7rlX,8273,Allow a function in `.sortby` method,5635139,closed,0,,,0,2023-10-04T19:04:03Z,2023-10-12T18:33:14Z,2023-10-06T03:35:22Z,MEMBER,,0,pydata/xarray/pulls/8273,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8273/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1917929597,PR_kwDOAMm_X85bd2nm,8249,Refine `chunks=None` handling,5635139,closed,0,,,0,2023-09-28T16:54:59Z,2023-10-04T18:34:27Z,2023-09-28T20:01:13Z,MEMBER,,0,pydata/xarray/pulls/8249,"Based on comment in https://github.com/pydata/xarray/pull/8247. This doesn't make it perfect, but allows the warning to get hit and clarifies the type comment, as a stop-gap","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8249/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1918061661,I_kwDOAMm_X85yU0xd,8251,`.chunk()` doesn't create chunks on 0 dim arrays,5635139,open,0,,,0,2023-09-28T18:30:50Z,2023-09-30T21:31:05Z,,MEMBER,,,,"### What happened? `.chunk`'s docstring states: ``` """"""Coerce this array's data into a dask arrays with the given chunks. If this variable is a non-dask array, it will be converted to dask array. If it's a dask array, it will be rechunked to the given chunk sizes. ``` ...but this doesn't happen for 0 dim arrays; example below. For context, as part of #8245, I had a function that creates a template array. It created an empty `DataArray`, then expanded dims for each dimension. And it kept blowing up memory! ...until I realized that it was actually not a lazy array. ### What did you expect to happen? It may be that we can't have a 0-dim dask array — but then we should raise in this method, rather than return the wrong thing. ### Minimal Complete Verifiable Example ```Python [ins] In [1]: type(xr.DataArray().chunk().data) Out[1]: numpy.ndarray [ins] In [2]: type(xr.DataArray(1).chunk().data) Out[2]: numpy.ndarray [ins] In [3]: type(xr.DataArray([1]).chunk().data) Out[3]: dask.array.core.Array ``` ### 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 _No response_ ### Anything else we need to know? _No response_ ### Environment
INSTALLED VERSIONS ------------------ commit: 0d6cd2a39f61128e023628c4352f653537585a12 python: 3.9.18 (main, Aug 24 2023, 21:19:58) [Clang 14.0.3 (clang-1403.0.22.14.1)] python-bits: 64 OS: Darwin OS-release: 22.6.0 machine: arm64 processor: arm byteorder: little LC_ALL: en_US.UTF-8 LANG: None LOCALE: ('en_US', 'UTF-8') libhdf5: None libnetcdf: None xarray: 2023.8.1.dev25+g8215911a.d20230914 pandas: 2.1.1 numpy: 1.25.2 scipy: 1.11.1 netCDF4: None pydap: None h5netcdf: None h5py: None Nio: None zarr: 2.16.0 cftime: None nc_time_axis: None PseudoNetCDF: None iris: None bottleneck: None dask: 2023.4.0 distributed: 2023.7.1 matplotlib: 3.5.1 cartopy: None seaborn: None numbagg: 0.2.3.dev30+gd26e29e fsspec: 2021.11.1 cupy: None pint: None sparse: None flox: 0.7.2 numpy_groupies: 0.9.19 setuptools: 68.1.2 pip: 23.2.1 conda: None pytest: 7.4.0 mypy: 1.5.1 IPython: 8.15.0 sphinx: 4.3.2
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8251/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1917767929,PR_kwDOAMm_X85bdTA8,8247,Fix & normalize typing for chunks,5635139,closed,0,,,0,2023-09-28T15:17:04Z,2023-09-28T16:47:02Z,2023-09-28T16:27:43Z,MEMBER,,0,pydata/xarray/pulls/8247,"I noticed that `""auto""` wasn't allowed as a value in a dict. So this normalizes all chunk types, and defines the mapping as containing the inner type. Allows removing some ignores (though also adds one). One question — not necessary to answer now — is whether we should allow a tuple of definitions, for each dimension. Generally we use names, which helps prevent mistakes, and allows us to be less concerned about dimension ordering. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8247/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1899012398,PR_kwDOAMm_X85aeNYk,8191,Fix pytest markers,5635139,closed,0,,,0,2023-09-15T20:02:52Z,2023-09-28T16:46:51Z,2023-09-15T20:27:38Z,MEMBER,,0,pydata/xarray/pulls/8191,"My mistake from #8183. I added `--strict-markers` so we can't make this sort of mistake again. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8191/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1216641509,PR_kwDOAMm_X8421nGO,6519,Scale numfocus image in readme,5635139,closed,0,,,0,2022-04-27T00:50:55Z,2023-09-28T16:46:42Z,2022-04-27T02:32:43Z,MEMBER,,0,pydata/xarray/pulls/6519,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6519/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 909729647,MDExOlB1bGxSZXF1ZXN0NjYwMjU5NDc2,5432,Attempt to improve canonical test ds,5635139,closed,0,,,0,2021-06-02T17:35:41Z,2023-09-28T16:46:38Z,2023-09-28T16:46:37Z,MEMBER,,0,pydata/xarray/pulls/5432,"As discussed in recent issues, I'm trying to create a canonical test ds that we can base most tests off. We used to do this more often, but it's less consistent now; and arguably the existing canonical ds could be improved. The advantages of the ""canonical ds"" effort are that we can have a dataset for which operations should work — e.g. with encoding / attrs / dtypes / MultiIndexes / etc — without having to remember these for each operation, and there's a path to being able to abstract over backing stores, like we've started in `test_dataarray.py`. But this became somewhat of a yak shave — now that dims are ordered, this affects test results. So I added the ability to change dimension order in transpose, but the existing dimension order was very specific by data variable, so still lots of tests break. I'm pausing on this, but open to ideas. To handle the changing test results, I could move the ""repr""-based tests to something like pytest-regtest (which I've used myself for a while and it's pretty good, though uses file snapshots rather than inline), or doctests (pytest-accept!); otherwise changing them is very manual. Also open to feedback that this isn't somewhere to focus on consolidation, and letting tests evolve as they have been is more than fine. - [ ] Closes #xxxx - [ ] Tests added - [ ] Passes `pre-commit run --all-files` - [ ] 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/5432/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1917820711,I_kwDOAMm_X85yT58n,8248,`write_empty_chunks` not in `DataArray.to_zarr`,5635139,open,0,,,0,2023-09-28T15:48:22Z,2023-09-28T15:49:35Z,,MEMBER,,,,"### What is your issue? Our `to_zarr` methods on `DataArray` & `Dataset` are slightly inconsistent — `Dataset.to_zarr` has `write_empty_chunks` and `chunkmanager_store_kwargs`. They're also in a different order. --- Up a level — not sure of the best way of enforcing consistency here; a couple of ideas. - We could have tests that operate on both a `DataArray` and `Dataset`, parameterized by fixtures (might also help reduce the duplication in some of our tests), though we then need to make the tests generic. We could have some general tests which just test that methods work, and then delegate to the current per-object tests for finer guarantees. - We could have a tool which collects the differences between `DataArray` & `Dataset` methods and snapshots them — then we'll see if they diverge, while allowing for some divergences.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8248/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1909746948,PR_kwDOAMm_X85bCPSS,8227,Add a `Literal` typing,5635139,closed,0,,,0,2023-09-23T07:10:10Z,2023-09-23T19:40:57Z,2023-09-23T19:38:05Z,MEMBER,,0,pydata/xarray/pulls/8227,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8227/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1903880626,PR_kwDOAMm_X85aub-J,8216,"Use `Self` rather than concrete types, remove `cast`s",5635139,closed,0,,,0,2023-09-20T00:10:41Z,2023-09-21T01:53:44Z,2023-09-21T01:53:40Z,MEMBER,,0,pydata/xarray/pulls/8216,"This should also allow for subtyping ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8216/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1904137707,PR_kwDOAMm_X85avTa9,8217,Convert `indexes.py` to use `Self` for typing,5635139,closed,0,,,0,2023-09-20T05:00:31Z,2023-09-20T22:57:58Z,2023-09-20T22:57:53Z,MEMBER,,0,pydata/xarray/pulls/8217,"I wanted to do this separately from #8216 , as it's the only one that adds a couple `ignore`s. And given the ratio of impact-to-potential-merge-conflicts, I didn't want to slow the other PR down.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8217/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1905496592,PR_kwDOAMm_X85az6Gg,8219,Skip flaky test,5635139,closed,0,,,0,2023-09-20T18:12:42Z,2023-09-20T19:57:20Z,2023-09-20T19:57:16Z,MEMBER,,0,pydata/xarray/pulls/8219," - [x] Closes #4539 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8219/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1899893200,PR_kwDOAMm_X85ag6Ws,8198,Start a list of modules which require typing,5635139,closed,0,,,0,2023-09-17T19:34:08Z,2023-09-20T09:39:28Z,2023-09-20T09:38:33Z,MEMBER,,0,pydata/xarray/pulls/8198,"Notes inline. Just one module so far! ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8198/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1410336975,PR_kwDOAMm_X85A3d9c,7165,Fix warning in doctest,5635139,closed,0,,,0,2022-10-16T01:13:21Z,2023-09-20T09:31:58Z,2022-10-16T01:37:13Z,MEMBER,,0,pydata/xarray/pulls/7165,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7165/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1903479488,PR_kwDOAMm_X85atE7R,8213,Consolidate `T_DataArrayOrSet`,5635139,closed,0,,,0,2023-09-19T17:58:59Z,2023-09-20T02:09:43Z,2023-09-20T02:09:39Z,MEMBER,,0,pydata/xarray/pulls/8213,"I'm not confident this is a great idea — I think this doesn't allow subtyping in `FacetGrid`? It does consolidate one of the three definitions, making our typing simpler, which is a worthwhile goal. So posting for review. From the chars of #8208","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8213/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1899020758,PR_kwDOAMm_X85aePOP,8192,Adjust ufunc error message,5635139,closed,0,,,0,2023-09-15T20:10:31Z,2023-09-17T08:20:34Z,2023-09-17T08:20:31Z,MEMBER,,0,pydata/xarray/pulls/8192,"Based on the correct observation in https://github.com/pydata/xarray/pull/8179#discussion_r1327429229 (slightly adjusted message) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8192/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1899584022,PR_kwDOAMm_X85af_67,8196,Remove `requirements.txt`,5635139,closed,0,,,0,2023-09-16T22:22:41Z,2023-09-17T07:03:02Z,2023-09-17T07:02:57Z,MEMBER,,0,pydata/xarray/pulls/8196,"No longer needed, ref https://github.com/pydata/xarray/pull/8183#issuecomment-1721969842 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8196/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1895224326,PR_kwDOAMm_X85aRb_8,8179,Display data returned in `apply_ufunc` error message,5635139,closed,0,,,0,2023-09-13T20:33:28Z,2023-09-15T20:10:38Z,2023-09-14T20:06:16Z,MEMBER,,0,pydata/xarray/pulls/8179,"This makes debugging much easier! - [x] Tests added ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8179/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1897294071,PR_kwDOAMm_X85aYaBM,8185,Fix comment alignment in `pyproject.toml`,5635139,closed,0,,,0,2023-09-14T20:54:05Z,2023-09-14T20:54:56Z,2023-09-14T20:54:52Z,MEMBER,,0,pydata/xarray/pulls/8185,I wasn't sufficiently careful in #8181...,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8185/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1895576777,PR_kwDOAMm_X85aSjhh,8182,Fix `PeriodIndex` deprecation in xarray tests,5635139,closed,0,,,0,2023-09-14T03:06:34Z,2023-09-14T20:47:29Z,2023-09-14T15:32:49Z,MEMBER,,0,pydata/xarray/pulls/8182,"Silences a few warnings ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8182/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1250241198,PR_kwDOAMm_X844jl0i,6642,Adjust code comments & types from #6638,5635139,closed,0,,,0,2022-05-27T01:28:37Z,2022-05-27T22:42:03Z,2022-05-27T01:57:53Z,MEMBER,,0,pydata/xarray/pulls/6642,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6642/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1228987803,PR_kwDOAMm_X843dyNL,6581,Fix mypy issues & reenable in tests,5635139,closed,0,,,0,2022-05-08T21:10:09Z,2022-05-26T21:50:37Z,2022-05-08T23:32:23Z,MEMBER,,0,pydata/xarray/pulls/6581,"I'm still not sure what caused this, but I got the errors showing locally and so could fix them. I'm guessing it was a dependency issue","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6581/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1228985727,PR_kwDOAMm_X843dx1H,6580,Remove `drop` from `_isel_fancy`,5635139,closed,0,,,0,2022-05-08T21:00:13Z,2022-05-08T21:28:46Z,2022-05-08T21:28:43Z,MEMBER,,0,pydata/xarray/pulls/6580,"This seems to be unused ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6580/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1223720854,PR_kwDOAMm_X843NWcj,6568,Run mypy tests (but always pass),5635139,closed,0,,,0,2022-05-03T05:57:56Z,2022-05-03T07:02:10Z,2022-05-03T07:02:10Z,MEMBER,,0,pydata/xarray/pulls/6568,"So we can at least see the result ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6568/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1222345079,PR_kwDOAMm_X843I6aW,6557,Run mypy tests (but always pass),5635139,closed,0,,,0,2022-05-02T00:29:20Z,2022-05-02T00:56:32Z,2022-05-02T00:56:32Z,MEMBER,,0,pydata/xarray/pulls/6557,"So we can at least see the result ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6557/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1221393935,PR_kwDOAMm_X843GAds,6543,"Revert ""Attempt to improve CI caching""",5635139,closed,0,,,0,2022-04-29T18:38:27Z,2022-04-29T18:38:57Z,2022-04-29T18:38:55Z,MEMBER,,0,pydata/xarray/pulls/6543,"Unfortunately this seems to have failed in https://github.com/pydata/xarray/runs/6232061193?check_suite_focus=true — the cache seems to have thought it was hit, but there's nothing in the cache, so it didn't install dependencies To ensure nothing is blocked, I'm reverting this — fast merges and fast reverts make for a good combo. I'll try and figure it out (but will be out for a few days so likely not until then — though if anyone can see the problem and wants to have a go, please feel free to go ahead) Reverts pydata/xarray#6534","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6543/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1221362721,PR_kwDOAMm_X843F5xz,6540,"Revert ""Remove duplicate tests""",5635139,closed,0,,,0,2022-04-29T17:59:54Z,2022-04-29T18:00:11Z,2022-04-29T18:00:10Z,MEMBER,,0,pydata/xarray/pulls/6540,Reverts pydata/xarray#6536 temporarily,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6540/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1218139945,PR_kwDOAMm_X8426nB7,6535,Fix doctest & mypy CI jobs,5635139,closed,0,,,0,2022-04-28T03:20:34Z,2022-04-28T07:33:08Z,2022-04-28T07:33:04Z,MEMBER,,0,pydata/xarray/pulls/6535,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6535/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1218013924,PR_kwDOAMm_X8426ML9,6531,Fix some mypy issues,5635139,closed,0,,,0,2022-04-28T00:18:10Z,2022-04-28T02:17:56Z,2022-04-28T02:17:54Z,MEMBER,,0,pydata/xarray/pulls/6531,"Unfortunately these have crept back in. I'll add a workflow job, since the pre-commit is not covering everything on its own ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6531/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1206626384,PR_kwDOAMm_X842Vvpi,6492,Pin version of black in pre-commit blackdoc,5635139,closed,0,,,0,2022-04-18T03:52:56Z,2022-04-27T09:06:26Z,2022-04-27T08:17:00Z,MEMBER,,0,pydata/xarray/pulls/6492," As recommended in https://github.com/keewis/blackdoc/issues/122 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6492/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1216625580,PR_kwDOAMm_X8421jpj,6518,Add a badge for binder,5635139,closed,0,,,0,2022-04-27T00:25:37Z,2022-04-27T01:08:27Z,2022-04-27T00:54:43Z,MEMBER,,0,pydata/xarray/pulls/6518,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6518/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1048063745,PR_kwDOAMm_X84uQhiJ,5958,Remove pre-commit auto update,5635139,closed,0,,,0,2021-11-09T00:39:55Z,2022-04-27T00:23:59Z,2021-11-12T02:55:14Z,MEMBER,,0,pydata/xarray/pulls/5958," As discussed in https://github.com/pydata/xarray/pull/5949 I'm leaving the pre-commit CI in for a while — we can leave them both running to ensure the new setup checks correctly — it's very low cost","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5958/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1206653633,PR_kwDOAMm_X842V1gk,6495,Convert readme to markdown,5635139,closed,0,,,0,2022-04-18T04:37:04Z,2022-04-19T03:48:07Z,2022-04-19T02:33:12Z,MEMBER,,0,pydata/xarray/pulls/6495,"Still some improvements we can make, but it is nicer in markdown. Also we were making some mistaken; e.g. the list of external files in the license section wasn't actually formatted as a list. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6495/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1205153676,PR_kwDOAMm_X842RQQP,6486,Add details section to issue template,5635139,closed,0,,,0,2022-04-15T01:13:16Z,2022-04-15T01:20:18Z,2022-04-15T01:20:16Z,MEMBER,,0,pydata/xarray/pulls/6486,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6486/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1202025323,PR_kwDOAMm_X842HHwi,6480,Fix whatnsew build error,5635139,closed,0,,,0,2022-04-12T15:34:13Z,2022-04-12T18:19:58Z,2022-04-12T18:19:55Z,MEMBER,,0,pydata/xarray/pulls/6480,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6480/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1198685259,PR_kwDOAMm_X8418PFx,6463,Try waking up stalebot,5635139,closed,0,,,0,2022-04-09T15:39:57Z,2022-04-10T19:16:09Z,2022-04-10T19:16:06Z,MEMBER,,0,pydata/xarray/pulls/6463,"We're almost at the 1000 mark of issues, and when browsing I see a non-trivial number that look stale. I'm not sure why stalebot doesn't seem to be awake; I'll try this and see if it helps ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6463/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1192112624,PR_kwDOAMm_X841ml3y,6437,Restrict tests to python bookend versions,5635139,closed,0,,,0,2022-04-04T17:46:18Z,2022-04-04T18:29:28Z,2022-04-04T18:29:26Z,MEMBER,,0,pydata/xarray/pulls/6437,"This speeds up CI, and it would be quite unlikely to fail _only_ a middle version ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6437/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1125046378,PR_kwDOAMm_X84yH-SE,6245,Replace skip-duplicate logic with GH concurrency logic,5635139,closed,0,,,0,2022-02-05T22:33:11Z,2022-02-09T05:07:22Z,2022-02-09T05:07:19Z,MEMBER,,0,pydata/xarray/pulls/6245,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6245/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1125217159,PR_kwDOAMm_X84yId8i,6246,"Revert ""Remove old PR template""",5635139,closed,0,,,0,2022-02-06T14:25:49Z,2022-02-06T14:26:08Z,2022-02-06T14:26:07Z,MEMBER,,0,pydata/xarray/pulls/6246,Reverts pydata/xarray#6241,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6246/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1125030343,I_kwDOAMm_X85DDpnH,6243,Maintenance improvements,5635139,open,0,,,0,2022-02-05T21:01:51Z,2022-02-05T21:01:51Z,,MEMBER,,,,"### Is your feature request related to a problem? At the end of the dev call, we discussed ways to do better at maintenance. I'd like to make Xarray a wonderful place to contribute, partly because it was so formative for me in becoming more involved with software engineering. ### Describe the solution you'd like We've already come far, because of the hard work of many of us! A few ideas, in increasing order of radical-ness - We looked at @andersy005's dashboards for PRs & Issues. Could we expose this, both to hold ourselves accountable and signal to potential contributors that we care about turnaround time for their contributions? - Is there a systematic way of understanding who should review something? - FWIW a few months ago I looked for a bot that would recommend a reviewer based on who had contributed code in the past, which I think I've seen before. But I couldn't find one generally available. This would be really helpful — we wouldn't have n people each assessing whether they're the best reviewer for each contribution. If anyone does better than me at finding something like this, that would be awesome. - Could we add a label so people can say ""now I'm waiting for a review"", and track how long those stay up? - Ensuring the 95th percentile is < 2 days is more important than the median being in the hours. It does pain me when I see PRs get dropped for a few weeks. TBC, I'm as responsible as anyone. - Could we have a bot that asks for feedback on the review process — i.e. ""I received a prompt and helpful review"", ""I would recommend a friend contribute to Xarray"", etc? ### Describe alternatives you've considered _No response_ ### Additional context There's always a danger with making stats legible that Goodhart's law strikes. And sometimes stats are not joyful, and lots of people come here for joy. So probably there's a tradeoff.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6243/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1117899039,PR_kwDOAMm_X84xwvo6,6205,Whatsnew template for 0.21.1,5635139,closed,0,,,0,2022-01-28T22:21:24Z,2022-01-28T23:25:01Z,2022-01-28T23:24:59Z,MEMBER,,0,pydata/xarray/pulls/6205,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6205/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1088786698,PR_kwDOAMm_X84wSAzJ,6110,Fix mypy precommit,5635139,closed,0,,,0,2021-12-26T14:50:35Z,2021-12-26T15:19:36Z,2021-12-26T15:19:33Z,MEMBER,,0,pydata/xarray/pulls/6110,"This seems to have conflicted between changing the types and updating the version in pre-commit. Oddly, the code work when running `mypy` but not running in pre-commit. But this code solves for both - [x] Passes `pre-commit run --all-files` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6110/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1085519977,PR_kwDOAMm_X84wHd9G,6090,Add type definitions in prep for #6086,5635139,closed,0,,,0,2021-12-21T07:25:58Z,2021-12-26T14:28:51Z,2021-12-26T14:28:48Z,MEMBER,,0,pydata/xarray/pulls/6090,"We can add the current typing to this function, making the changes in #6086 easier. - [x] Passes `pre-commit run --all-files`","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6090/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 895870870,MDExOlB1bGxSZXF1ZXN0NjQ4MDM2NDg1,5347,Use dask fixture in DataArray tests,5635139,closed,0,,,0,2021-05-19T20:45:33Z,2021-05-21T22:38:37Z,2021-05-21T22:38:35Z,MEMBER,,0,pydata/xarray/pulls/5347," Tiny step to unify some of our tests across backends ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5347/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 897668187,MDExOlB1bGxSZXF1ZXN0NjQ5NjQ1Mzcx,5357,Fix whatsnew formatting,5635139,closed,0,,,0,2021-05-21T04:35:03Z,2021-05-21T04:35:13Z,2021-05-21T04:35:07Z,MEMBER,,0,pydata/xarray/pulls/5357," This was not in the 0.18.2 release","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5357/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 895936327,MDExOlB1bGxSZXF1ZXN0NjQ4MDkyMDk3,5349,Merge 0.18.2 hotfix into master,5635139,closed,0,,,0,2021-05-19T21:34:44Z,2021-05-19T22:20:10Z,2021-05-19T22:20:07Z,MEMBER,,0,pydata/xarray/pulls/5349,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5349/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 894911617,MDExOlB1bGxSZXF1ZXN0NjQ3MjA1Mzk3,5340,0.18.1 release notes,5635139,closed,0,,,0,2021-05-19T01:44:43Z,2021-05-19T06:44:21Z,2021-05-19T06:43:52Z,MEMBER,,0,pydata/xarray/pulls/5340," - [x] Closes https://github.com/pydata/xarray/issues/5298 Comments welcome!","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5340/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 527010504,MDExOlB1bGxSZXF1ZXN0MzQ0MzY3OTc3,3560,remove deprecations for 0.15 ,5635139,closed,0,,,0,2019-11-22T06:18:28Z,2021-05-13T22:01:46Z,2020-01-17T16:21:31Z,MEMBER,,0,pydata/xarray/pulls/3560," - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3560/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 891260490,MDExOlB1bGxSZXF1ZXN0NjQ0MTU1MTk4,5301,Remove standard imports from docstrings,5635139,closed,0,,,0,2021-05-13T18:18:08Z,2021-05-13T20:21:22Z,2021-05-13T20:16:47Z,MEMBER,,0,pydata/xarray/pulls/5301," - [x] Passes `pre-commit run --all-files` Another ""snacking"" PR. Ideally these allow future contributions to copy from a good template. But otherwise not a great use of time...","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5301/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 874110561,MDU6SXNzdWU4NzQxMTA1NjE=,5248,Appearance of bulleted lists in docs,5635139,closed,0,,,0,2021-05-02T23:21:49Z,2021-05-03T23:23:49Z,2021-05-03T23:23:49Z,MEMBER,,,," **What happened**: The new docs are looking great! One small issue — the lists don't appear as lists; e.g. from https://xarray.pydata.org/en/latest/generated/xarray.Dataset.query.html Do we need to change the rst convention? **What you expected to happen**: As bullets, with linebreaks ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5248/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 868353497,MDExOlB1bGxSZXF1ZXN0NjIzODkzMjE2,5220,Fix latest black version,5635139,closed,0,,,0,2021-04-27T01:37:09Z,2021-04-27T03:13:09Z,2021-04-27T02:07:39Z,MEMBER,,0,pydata/xarray/pulls/5220," - [x] Passes `pre-commit run --all-files` One line per file, for 17 files :) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5220/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 860516266,MDExOlB1bGxSZXF1ZXN0NjE3MzgxODM0,5181,Use ._replace rather than reconstructing vars,5635139,closed,0,,,0,2021-04-17T21:16:49Z,2021-04-19T06:10:36Z,2021-04-18T22:12:05Z,MEMBER,,0,pydata/xarray/pulls/5181," - [x] Passes `pre-commit run --all-files` I saw a few of these while looking through the code — generally we're using `._replace` now, so this grows that convention to `variable.py` too. It was a regex replace but I took a look through to confirm. And fixed one mypy error which the change caught.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5181/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 792904819,MDExOlB1bGxSZXF1ZXN0NTYwNjg0ODM0,4841,Allow swap_dims to take kwargs,5635139,closed,0,,,0,2021-01-24T21:23:40Z,2021-01-25T16:30:22Z,2021-01-24T23:46:48Z,MEMBER,,0,pydata/xarray/pulls/4841," - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4841/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 789615967,MDExOlB1bGxSZXF1ZXN0NTU3OTM1NDg2,4829,Move skip ci instructions to contributing guide,5635139,closed,0,,,0,2021-01-20T04:21:25Z,2021-01-21T07:24:09Z,2021-01-21T07:24:04Z,MEMBER,,0,pydata/xarray/pulls/4829,"As discussed in https://github.com/pydata/xarray/pull/4730#issuecomment-763228697 Very open minded if we want it as a comment in the PR template. I moved it completely because I wouldn't imagine it's going to be used that often by casual contributors.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4829/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 777153941,MDExOlB1bGxSZXF1ZXN0NTQ3NTIwOTMz,4747,(tweak) Fix PR template indenting,5635139,closed,0,,,0,2020-12-31T22:58:48Z,2021-01-04T03:51:31Z,2021-01-04T03:51:26Z,MEMBER,,0,pydata/xarray/pulls/4747,Causes some odd formatting if there's a list immediately above it,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4747/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 777161069,MDExOlB1bGxSZXF1ZXN0NTQ3NTI2NDI3,4748,(tweak) Remove py2 compat,5635139,closed,0,,,0,2020-12-31T23:56:16Z,2021-01-01T20:14:17Z,2021-01-01T20:14:04Z,MEMBER,,0,pydata/xarray/pulls/4748,As minor as they come — open to the churn being greater than the benefit...,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4748/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 728897797,MDExOlB1bGxSZXF1ZXN0NTA5NTA4NTI0,4536,"Remove numpy warnings, add more complete tests",5635139,closed,0,,,0,2020-10-24T23:19:10Z,2020-12-30T20:04:53Z,2020-11-19T07:27:43Z,MEMBER,,0,pydata/xarray/pulls/4536," - [x] Tests added - [x] Passes `isort . && black . && mypy . && flake8` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` Found a couple more gremlins. Have added better test coverage so we catch any of these in the future.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4536/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 728907240,MDExOlB1bGxSZXF1ZXN0NTA5NTE0OTQ3,4538,Remove unused kwarg,5635139,closed,0,,,0,2020-10-25T00:27:26Z,2020-12-30T20:04:52Z,2020-11-19T07:28:45Z,MEMBER,,0,pydata/xarray/pulls/4538," - [x] Passes `isort . && black . && mypy . && flake8` This doesn't seem to be used? Unless it's required for compatibility with an interface?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4538/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 723880457,MDExOlB1bGxSZXF1ZXN0NTA1MzcyMDkx,4518,Use black profile for isort,5635139,closed,0,,,0,2020-10-18T01:13:57Z,2020-10-18T19:52:00Z,2020-10-18T19:51:55Z,MEMBER,,0,pydata/xarray/pulls/4518," - [x] Passes `isort . && black . && mypy . && flake8` Purely aesthetic simplification","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4518/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 705195788,MDExOlB1bGxSZXF1ZXN0NDg5OTY1NzMw,4444,Add docs re stable branch,5635139,closed,0,,,0,2020-09-20T22:09:22Z,2020-09-22T21:06:28Z,2020-09-22T21:06:24Z,MEMBER,,0,pydata/xarray/pulls/4444," ref https://github.com/pydata/xarray/pull/4440#issuecomment-695836637 Not sure this is the best approach; very open minded to alternatives","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4444/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 688640562,MDExOlB1bGxSZXF1ZXN0NDc1ODUzNjk1,4390,Align mypy versions,5635139,closed,0,,,0,2020-08-30T02:39:26Z,2020-09-02T22:25:38Z,2020-09-02T20:31:42Z,MEMBER,,0,pydata/xarray/pulls/4390," - [x] Passes `isort . && black . && mypy . && flake8` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4390/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull