home / github

Menu
  • GraphQL API
  • Search all tables

pull_requests

Table actions
  • GraphQL API for pull_requests

117 rows where user = 35968931

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: state, draft, created_at (date), updated_at (date), closed_at (date), merged_at (date)

id ▼ node_id number state locked title user body created_at updated_at closed_at merged_at merge_commit_sha assignee milestone draft head base author_association auto_merge repo url merged_by
222557759 MDExOlB1bGxSZXF1ZXN0MjIyNTU3NzU5 2482 closed 0 Global option to always keep/discard attrs on operations TomNicholas 35968931 - [x] Resolves wishes of some users and relevant for discussion in #138, #442, #688, #828, #988, #1009, #1271, #2288, #2473 - [x] Tests added, both of setting the option and of attributes propagating in the expected way - [x] Tests passed - [x] Documented Adds a global option to either always keep or always discard attrs in method and function calls. The behaviour is backwards-compatible, as the logic is: - if `keep_attrs` supplied as keyword argument then use that - else if global option (`xarray.set_options(keep_attrs=True)`) is set then use that - else use default value of `keep_attrs` argument for that particular function/method (kept the same as they were for backwards-compatibility). Main use cases include users who want to store the units of their data in the attrs, users who want to always keep information about the source or history of their data, and users who want to store objects in their attributes which are needed to supplement the xarray objects (e.g. an `xgcm.grid`). It should eventually be superceded by hooks for custom attribute handling (#988), but will be useful until then. I have left the top-level functions like `concat` and `merge` alone. Currently concat keeps the attributes of the first object passed to it, and merge returns a dataset with no attributes. It's not clear how this should be treated though, so I left it to users to extend those functions if they need to. 2018-10-12T19:01:12Z 2020-04-05T03:53:53Z 2018-10-30T01:01:08Z 2018-10-30T01:01:08Z 6d55f99905d664ef73cb708cfe8c52c2c651e8dc     0 cbf227d4bef2cb270e4ec9cfcee7024625041cec b622c5e7da928524ef949d9e389f6c7f38644494 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2482  
229885276 MDExOlB1bGxSZXF1ZXN0MjI5ODg1Mjc2 2553 closed 0 Feature: N-dimensional auto_combine TomNicholas 35968931 ### What I did Generalised the `auto_combine()` function to be able to concatenate and merge datasets along any number of dimensions, instead of just one. Provides one solution to #2159, and relevant for discussion in #2039. Currently it cannot deduce the order in which datasets should be concatenated along any one dimension from the coordinates, so it just concatenates them in order they are supplied. This means for an N-D concatenation the datasets have to be supplied as a list of lists, which is nested as many times as there are dimensions to be concatenated along. ### How it works In `_infer_concat_order_from_nested_list()` the nested list of datasets is recursively traversed in order to create a dictionary of datasets, where the keys are the corresponding "tile IDs". These tile IDs are tuples serving as multidimensional indexes for the position of the dataset within the hypercube of all datasets which are to be combined. For example four datasets which are to be combined along two dimensions would be supplied as ```python datasets = [[ds0, ds1], [ds2, ds3]] ``` and given tile_IDs to be stored as ```python combined_ids = {(0, 0): ds0, (0, 1): ds1, (1, 0): ds2, (1, 1): ds3} ``` Using this unambiguous intermediate structure means that another method could be used to organise the datasets for concatenation (i.e. reading the values of their coordinates), and a new keyword argument `infer_order_from_coords` used to choose the method. The `_combine_nd()` function concatenates along one dimension at a time, reducing the length of the tile_ID tuple by one each time `_combine_along_first_dim()` is called. After each concatenation the different variables are merged, so the new `auto_combine()` is essentially like calling the old one once for each dimension in `concat_dims`. ### Still to do I would like people's opinions on the method I've chosen to do this, and any feedback on the code quality would be appreciated. Assuming we're happy with the method I used here, then the r… 2018-11-10T11:40:48Z 2018-12-13T17:16:16Z 2018-12-13T17:15:57Z 2018-12-13T17:15:56Z 9e8707d2041cfa038c31fc2284c1fe40bc3368e9     0 ebbe47f450ed4407655bd9a4ed45274b140452dd 0d6056e8816e3d367a64f36c7f1a5c4e1ce4ed4e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2553  
239263959 MDExOlB1bGxSZXF1ZXN0MjM5MjYzOTU5 2616 closed 0 API for N-dimensional combine TomNicholas 35968931 Continues the discussion from #2553 about how the API for loading and combining data from multiple datasets should work. (Ultimately part of the solution to #2159) @shoyer this is for you to see how I envisaged the API would look, based on our discussion in #2553. For now you can ignore all the changes except the ones to the docstrings of `auto_combine` [here](https://github.com/pydata/xarray/compare/master...TomNicholas:feature/nd_combine_new_api?expand=1#diff-876f2fcf4679457325e8018f6d98660cR650), `manual_combine` [here](https://github.com/pydata/xarray/compare/master...TomNicholas:feature/nd_combine_new_api?expand=1#diff-876f2fcf4679457325e8018f6d98660cR550) and `open_mfdataset` [here](https://github.com/pydata/xarray/compare/master...TomNicholas:feature/nd_combine_new_api?expand=1#diff-e58ddc6340e4b5dd0a6e6b443c9a6da1R483). Feedback from anyone else is also encouraged, as really the point of this is to make the API as clear as possible to someone who hasn't delved into the code behind `auto_combine` and `open_mfdataset`. It makes sense to first work out the API, then change the internal implementation to match, using the internal functions developed in #2553. Therefore the tasks include: - [x] Decide on API for 'auto_combine' and 'open_mfdataset' - [x] Appropriate documentation - [x] Write internal implementation of `manual_combine` - [x] Write internal implementation of `auto-combine` - [x] Update `open_mfdataset` to match - [x] Write and reorganise tests - [x] Automatically ordering of string and datetime coords - [x] What's new explaining changes - [x] Make sure `auto_combine` and `manual_combine` appear on the [API page](http://xarray.pydata.org/en/stable/api.html) of the docs - [x] PEP8 compliance - [x] Python 3.5 compatibility - [x] AirSpeedVelocity tests for `auto_combine` - [x] Finish all TODOs - [x] Backwards-compatible API to start deprecation cycle - [x] Add examples from docstrings to main documentation pages 2018-12-17T19:51:32Z 2019-06-25T16:18:29Z 2019-06-25T15:14:34Z 2019-06-25T15:14:34Z 6b33ad8b3e56834c3a345f21afc17680a164c5e9     0 e00687509260fb686b02eb333176e1536fad995f 76adf1307cb15d63521b40408a569258bacd3623 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2616  
240602464 MDExOlB1bGxSZXF1ZXN0MjQwNjAyNDY0 2626 closed 0 Source encoding always set when opening datasets TomNicholas 35968931 Closes #2550 by ensuring that the filename is always stored in the encoding dictionary of a dataset, under `'source'`. Previously this feature would be backend-dependent. This was motivated by wanting the `preprocess` function passed to `open_mfdataset` to have access to the filename of the dataset it is operating on. A specific use case is when you are opening a spatial grid of datasets, and want to apply a different operation to datasets at the edge of the grid (e.g. to deal with guard cells). It is therefore also relevant for discussion in [#2159](https://github.com/pydata/xarray/issues/2159#issuecomment-391512018). - [x] Closes #2550 - [x] Tests added - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2018-12-22T00:02:26Z 2018-12-31T16:53:18Z 2018-12-30T01:00:37Z 2018-12-30T01:00:36Z 250b19c8fff56c295f6047956400863db22cb48b     0 f76593ed6a1738e356fb7f33d947c87df3318ca0 1545b50a3c8841b3f62c7bd59353d55aa2389697 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2626  
244828567 MDExOlB1bGxSZXF1ZXN0MjQ0ODI4NTY3 2678 closed 0 Hotfix for #2662 TomNicholas 35968931 - [x] Closes #2662 Explained in #2662. Also renamed some variables slightly for clarity. Not sure how to add a test without refactoring the groupby into a separate function, as in it's current form the problem only manifests as a (huge) slowdown. 2019-01-15T15:11:48Z 2019-02-02T23:50:40Z 2019-01-17T13:05:43Z 2019-01-17T13:05:43Z dc87dea52351835af472d131f70a7f7603b3100e     0 5ee50c26ae9af61b55b62ebd8140b4a7b6d7c500 f13536c965d02bb2845da31e909899a90754b375 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2678  
245808787 MDExOlB1bGxSZXF1ZXN0MjQ1ODA4Nzg3 2690 closed 0 Add create_test_data to public testing API TomNicholas 35968931 - [x] Closes #2686 and #1839 - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2019-01-18T11:08:01Z 2021-06-24T08:51:36Z 2021-06-23T16:14:28Z   6be713331a589e12863e8df2177f2fb431adad35     0 6bd2811ae485f2a9ea25e55b966f3fd5b3292806 1d0a2bc4970d9e7337fe307f4519bd936f7d7d89 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2690  
248644846 MDExOlB1bGxSZXF1ZXN0MjQ4NjQ0ODQ2 2726 closed 0 Bugfix for line plot axes TomNicholas 35968931 - [x] Closes #2725 - [x] Tests added - [x] Fully documented, including `whats-new.rst` 2019-01-29T20:21:18Z 2019-02-02T23:50:44Z 2019-01-30T02:02:22Z 2019-01-30T02:02:22Z e8bf4bf9a744148f1f6586cabe7f5c5ef6e9bf26     0 6fd1218d6f20d30ebd4aa13e58b03299bb850795 620b946b6f9ad922d919c68b0954d7ac13e65282 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2726  
249014177 MDExOlB1bGxSZXF1ZXN0MjQ5MDE0MTc3 2729 closed 0 [WIP] Feature: Animated 1D plots TomNicholas 35968931 This is an attempt at a proof-of-principle for making animated plots in the way I suggested in #2355. (Also relevant for #2030.) This example code: ```python import matplotlib.pyplot as plt import xarray as xr # Load data as done in plotting tutorial airtemps = xr.tutorial.open_dataset('air_temperature') air = airtemps.air - 273.15 air.attrs = airtemps.air.attrs air.attrs['units'] = 'deg C' # Downsample to make reasonably-sized gif data = air.isel(lat=10, time=slice(None,None,40)) # Create animated plot anim = data.plot(animate_over='time') anim.save('line1.gif', writer='imagemagick') plt.show() ``` now produces this gif: ![line1](https://user-images.githubusercontent.com/35968931/56898342-b833a680-6a88-11e9-9529-ca8584943d0f.gif) ~~The units on the timeline are formatted incorrectly because [this PR](https://github.com/t-makaro/animatplot/pull/21) isn't merged yet~~ I think it looks pretty good! It even animates the title properly. The actual animation creation only takes one line to do. This currently only works for a plot with a single line, which is animated over a coordinate dimension. ~~It also required some minor modifications/bugfixes to animatplot, so it probably isn't reproducible right out of the box yet.~~ If you want to try this out then use the [develop branch](https://github.com/TomNicholas/animatplot/tree/develop) of my forked version of animatplot. The reason I've put this up is because I wanted to 1. show people the level of complexity required, and 2. get people's opinion on the implementation. I feel like although it required only ~100 lines extra to do this then the logic is very fragmented and scattered through the `plot.line` and `plot._infer_line_data` functions. In 2D this would get even more complicated, but I can't see a good way to abstract the case of animation out? (@t-makaro I expect you will be interested in this) EDIT: To-Do list: - [x] Animate single line - [x] Animated line and static line on same axes - [x] Animate multip… 2019-01-30T20:15:52Z 2021-06-24T08:46:31Z 2021-06-23T16:14:28Z   c07f76527018613ef00a7beb3a8ce906f33feb18     0 2e3b5059031c6f0577bc30d4ee9e2e877f69f0e3 3fb22cbf86e49be4a444fa062350bf7570abd6da MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2729  
252735466 MDExOlB1bGxSZXF1ZXN0MjUyNzM1NDY2 2769 closed 0 Bugfix/reduce no axis TomNicholas 35968931 - [x] Closes #2768 - [x] Tests added - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2019-02-13T15:22:52Z 2019-02-19T06:13:08Z 2019-02-19T06:13:00Z 2019-02-19T06:12:59Z 57cd76d7521526a39a6e94eeacf1e40ef7b974b6     0 a31e1b3d4f8bf4fae029be5976b6fe4583ad3f99 cd8e370e63f82deeaf4fc190f5c1d90463067368 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2769  
256804650 MDExOlB1bGxSZXF1ZXN0MjU2ODA0NjUw 2792 closed 0 Improve name concat TomNicholas 35968931 - [x] Closes #2775 - [x] Tests added - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2019-02-27T19:13:25Z 2019-03-04T09:48:08Z 2019-03-04T05:39:21Z 2019-03-04T05:39:21Z c33dab237a0aca316b7f6d4ba10857829a895a25     0 b2028683fd7aa6fc286ed674a79f96d9b6fce996 612d390f925e5490314c363e5e368b2a8bd5daf0 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/2792  
291755608 MDExOlB1bGxSZXF1ZXN0MjkxNzU1NjA4 3043 closed 0 Rename combine functions TomNicholas 35968931 Finishes #2616 by renaming `combine_manual` -> `combine_nested`, `combine_auto` -> `combine_by_coords`, and renaming the arguments to `open_mfdataset`: `combine='manual'` -> `combine='nested'` `combine='auto'` -> `combine='by_coords'` [x] code changes [x] docs changes [x] what's new updated 2019-06-25T22:31:40Z 2019-06-26T15:01:01Z 2019-06-26T15:00:38Z 2019-06-26T15:00:38Z 17d18ce8230fea74e72ad59b84386cf662448d45     0 6c2b9d003244eba26ec96add965ec348cd734e9f d3f6db9d1eee54b51d2b0cd9a0a01a411d2148b7 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3043  
293644039 MDExOlB1bGxSZXF1ZXN0MjkzNjQ0MDM5 3074 closed 0 Removed rogue print statement in N-D combine TomNicholas 35968931 - [x] Hotfix which closes #3073 2019-07-02T08:41:42Z 2019-07-02T14:17:05Z 2019-07-02T14:16:43Z 2019-07-02T14:16:42Z 8c61997d0daa5564a007458ab4febebcecdc30af     0 3dd0978dd34b96f815722126e1e3c6d8ea2ed693 e2c2264833ce7e861bbb930be44356e1510e13c3 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3074  
297067547 MDExOlB1bGxSZXF1ZXN0Mjk3MDY3NTQ3 3101 closed 0 Improve open_mfdataset deprecation warnings TomNicholas 35968931 - [x] Closes #3091 - [x] Tests added 2019-07-12T13:18:00Z 2019-07-12T15:43:38Z 2019-07-12T15:43:32Z 2019-07-12T15:43:32Z ed421e80e69788b92cdda050b0ac389ecce590fb     0 795926a50c690cae20e928f2514b2269f09a9b91 8f0d9e5c9909c93a90306ed7cb5a80c1c2e1c97d MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3101  
299560554 MDExOlB1bGxSZXF1ZXN0Mjk5NTYwNTU0 3151 closed 0 Hotfix for case of combining identical non-monotonic coords TomNicholas 35968931 - [x] Closes #3150 - [x] Tests added 2019-07-20T12:31:14Z 2019-07-31T13:56:48Z 2019-07-31T13:56:48Z 2019-07-31T13:56:48Z e5205347a5f6dcc60fee1baff00709b9e22baac5     0 b1682404f6d5f4fe02a02aee660b3dbd247e8b29 118f4d996e7711c9aced916e6049af9f28d5ec66 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3151  
321318168 MDExOlB1bGxSZXF1ZXN0MzIxMzE4MTY4 3345 closed 0 Bugfix/plot accept coord dim TomNicholas 35968931 - [x] Closes #3334 - [x] Tests added - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2019-09-25T15:48:55Z 2019-09-26T08:52:00Z 2019-09-26T08:51:59Z 2019-09-26T08:51:59Z ea101f571f3b2f13ab02c7b57453571af559f940     0 802014ab1897ff1d38328a748100c096c3af8a17 85c9a40c2dac6b83a687f97639f8abfe0ab17f46 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3345  
361036494 MDExOlB1bGxSZXF1ZXN0MzYxMDM2NDk0 3677 closed 0 ds.merge(da) bugfix TomNicholas 35968931 - [x] Closes #3676 - [x] Tests added - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-01-09T16:07:14Z 2020-01-12T13:04:02Z 2020-01-12T13:04:02Z 2020-01-12T13:04:02Z 1689db493f10262555196f658c52e370aacb4a33     0 2901cacca452776d453c60b7e7af0393cdac95a9 ef6e6a7b86f8479b9a1fecf15ad5b88a2326b31e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3677  
362158513 MDExOlB1bGxSZXF1ZXN0MzYyMTU4NTEz 3690 closed 0 Fix mypy type checking tests failure in ds.merge TomNicholas 35968931 Hopefully fixes the type checking error introduced in #3677, as [pointed out](https://github.com/pydata/xarray/pull/3618#issuecomment-573678101) by @kmuehlbauer. 2020-01-13T14:51:59Z 2020-01-13T16:33:05Z 2020-01-13T16:33:05Z 2020-01-13T16:33:04Z 8a650a11d1f859a88cc91b8815c16597203892aa     0 42397c05c51bbb3a7a211a592e2c833d91721c62 1689db493f10262555196f658c52e370aacb4a33 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3690  
397320781 MDExOlB1bGxSZXF1ZXN0Mzk3MzIwNzgx 3925 closed 0 sel along 1D non-index coordinates TomNicholas 35968931 As a user, I find not being able to select along one-dimensional non-dimensional coordinates actually comes up fairly often. I think it's quite common to use multiple coordinates to be able to choose between plotting in different coordinate systems (or units) easily. I've tried to close #2028 in the simplest (but also least efficient) way which was suggested by @shoyer ([suggestion 1 here](https://github.com/pydata/xarray/issues/934#issuecomment-236960237)). This should be temporary anyway: it will get superseded by the [explicit indexes refactor](https://github.com/pydata/xarray/issues/1603). If there is another approach which would achieve the same functionality as this PR but actually bring us closer to #1603 then I would be happy to take a stab at that instead. I don't really know what to do about the [failing test](https://github.com/pydata/xarray/blob/b3bafeefbd6e6d70bce505ae1f0d9d5a2b015089/xarray/tests/test_dataset.py#L3632) in groupby arithmetic - I think it's [caused here](https://github.com/pydata/xarray/blob/b3bafeefbd6e6d70bce505ae1f0d9d5a2b015089/xarray/core/groupby.py#L497) but I'm not sure what to replace the triple error type catching (?!) with. - [x] Closes #2028 - [x] Tests added - [ ] Passes `isort -rc . && black . && mypy . && flake8` - [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-04-02T02:23:56Z 2022-09-07T14:31:58Z 2022-09-07T14:31:58Z   a14cfae1f3083d3eb01a105f573dbbcf93966c6e     0 558721e71da2b627028ebc533887c0e6e7a30db5 d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3925  
397335567 MDExOlB1bGxSZXF1ZXN0Mzk3MzM1NTY3 3926 closed 0 Remove old auto combine TomNicholas 35968931 - [x] Finishes deprecation cycle started in #2616 (was supposed to have been done in 0.15) - [x] Passes `isort -rc . && black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API I've set `combine='by_coords'` as the default argument to `open_mfdataset`. Technically we could go for either, as the deprecation warning just told users to make it explicit from now on, but going for `by_coords` rather than `nested` means that: - The `concat_dim` argument is not needed by default, - The default behaviour of the function is the "magic" one - users have to opt-in to the more explicit behaviour. 2020-04-02T03:25:54Z 2020-06-24T18:22:55Z 2020-06-24T18:22:55Z 2020-06-24T18:22:55Z 3088de25987f6863ba6c7a73b23a7ca7a8c93a69     0 4a31d8bdd7ed8b489415768f3f9cc0b97ed624f1 2a8cd3b0545851cff2773d493e30d5c84aa1c4db MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3926  
398639444 MDExOlB1bGxSZXF1ZXN0Mzk4NjM5NDQ0 3934 closed 0 Bugfix plot 2d coords transpose TomNicholas 35968931 Simple fix for #3933 - just required transposing y data before passing to matplotlib. - [x] Closes #3933 - [x] Tests added - [x] Passes `isort -rc . && black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-04-04T16:55:24Z 2020-04-04T17:57:20Z 2020-04-04T17:57:20Z 2020-04-04T17:57:20Z 8d280cd7b1d80567cfdc6ae55165c522a5d4c2ce     0 feefedf79e9f2fce584f1e0ba48b5c4c0af66763 0181aa5741ce376a9dad45750754f3cf1ed41dde MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3934  
400048113 MDExOlB1bGxSZXF1ZXN0NDAwMDQ4MTEz 3943 closed 0 Updated list of core developers TomNicholas 35968931 Names listed in order of date added. - [x] Closes #3892 - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-04-07T05:31:55Z 2020-04-07T19:28:37Z 2020-04-07T19:28:25Z 2020-04-07T19:28:25Z f07adb293e67ae01d305fd1c8fb42f5bad2238e7     0 5d29a9bcbd69641e43aaa220a325dca789342859 604835603c83618dbe101331813cc6ae428d8be1 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3943  
403204129 MDExOlB1bGxSZXF1ZXN0NDAzMjA0MTI5 3970 closed 0 keep attrs in interpolate_na TomNicholas 35968931 `dataarray.interpolate_na` was dropping attrs because even though the internal `apply_ufunc` call was being passed `keep_attrs=True`, the order of arguments `index, da` to `apply_ufunc` meant that it was trying to keep only the non-existent attrs from the first argument. I just swapped them round, and added a globally-aware `keep_attrs` kwarg. - [x] Closes #3968 - [x] Tests added - [x] Passes `isort -rc . && black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-04-14T14:02:33Z 2020-04-17T20:16:27Z 2020-04-17T20:16:27Z 2020-04-17T20:16:26Z 2c92f69ab208c02344b8d5e5edef3e71e3495d3b     0 713d127945b9507cc8c592568b915b3666af3381 2c77eb531b6689f9f1d2adbde0d8bf852f1f7362 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3970  
405578506 MDExOlB1bGxSZXF1ZXN0NDA1NTc4NTA2 3982 closed 0 Combine by point coords TomNicholas 35968931 This PR was based off of #3926, though it probably doesn't need to be and could be rebased if we wanted to merge this first. - [x] Closes #3774 - [x] Tests added - [x] Passes `isort -rc . && black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-04-19T00:00:30Z 2021-06-24T08:48:51Z 2021-06-23T15:58:30Z         0 f27b8c56d21701e2df730ad3bc246ef6163e5982 7bf9df9d75c40bcbf2dd28c47204529a76561a3f MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3982  
406892377 MDExOlB1bGxSZXF1ZXN0NDA2ODkyMzc3 3993 closed 0 dim -> coord in DataArray.integrate TomNicholas 35968931 - [x] Closes #3992 - [x] Tests added - [x] Passes `isort -rc . && black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API 2020-04-21T20:30:35Z 2021-02-05T21:48:39Z 2021-01-29T22:59:30Z 2021-01-29T22:59:30Z f4b95cd28f5f34ed5ef6cbd9280904fb5449c2a7     0 92ac2dcefd647e2c5d1338495df287b11bd4f0ad 8cc34cb412ba89ebca12fc84f76a9e452628f1bc MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/3993  
625489541 MDExOlB1bGxSZXF1ZXN0NjI1NDg5NTQx 5231 closed 0 open_mfdataset: Raise if combine='by_coords' and concat_dim=None TomNicholas 35968931 Fixes bug which allowed incorrect arguments to be passed to `open_mfdataset` without complaint. The combination `open_mfdataset(files, combine='by_coords', concat_dim='t')` should never have been permitted, and in fact it [wasn't permitted](https://github.com/pydata/xarray/blob/795926a50c690cae20e928f2514b2269f09a9b91/xarray/core/combine.py#L597) until the last part of the deprecation process from the old `auto_combine`. It makes no sense to pass this combination because the `combine_by_coords` function does not have a `concat_dim` argument at all! The effect was pretty benign - the `concat_dim` arg wasn't really used for anything in that case, and the result of passing dodgy datasets would just be a less informative error. However there were multiple tests which assumed this behaviour was okay - I had to remove that particular parametrization for a bunch of your join tests @dcherian because they now fail with a different (clearer) error. I also noticed a related issue which I fixed - internally `open_mfdataset` was performing a rearrangement of the input datasets that it needs for the case `combine='nested'`, even in the case `combine='by_coords'`. I hadn't previously realised that we can just skip this rearrangement without issue, so `open_mfdataset(combine='by_coords')` should be a little bit faster now. - [x] Closes #5230 - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-04-28T19:16:19Z 2021-04-30T12:41:17Z 2021-04-30T12:41:17Z 2021-04-30T12:41:17Z 01b6cc76c6b7c77f2f93fc1766eb76f851529b5d     0 07d8ec01ef01b196e3f1d198da99c3d198e60148 0021cdab91f7466f4be0fb32dae92bf3f8290e19 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5231  
626286842 MDExOlB1bGxSZXF1ZXN0NjI2Mjg2ODQy 5237 closed 0 Add deprecation warnings for lock kwarg TomNicholas 35968931 Does this need a test? - [x] Closes #5073 - [ ] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-04-29T16:45:45Z 2021-05-04T19:17:31Z 2021-05-04T19:17:31Z   1683720c024883137b68fa29e450810ac333746f     0 db3ee3a824b714825f4cede49c45511ca5fb9905 0021cdab91f7466f4be0fb32dae92bf3f8290e19 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5237  
629254854 MDExOlB1bGxSZXF1ZXN0NjI5MjU0ODU0 5255 closed 0 Warn instead of error on combine='nested' with concat_dim supplied TomNicholas 35968931 Changes error introduced in #5231 into a warning, [as discussed](https://github.com/pydata/xarray/discussions/5253). 2021-05-03T17:38:10Z 2021-05-04T02:45:52Z 2021-05-04T02:45:52Z 2021-05-04T02:45:51Z f2a3318758cd448b773bff1ba7b44685212ecc9c     0 c1fbcda84c65688b4f3e2a5e807b52fb82429776 9f118624e7924c80fc305f351fa9621d2b58514c MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5255  
631825792 MDExOlB1bGxSZXF1ZXN0NjMxODI1Nzky 5274 closed 0 Update release guide TomNicholas 35968931 Updated the release guide to account for what is now automated via github actions, and any other bits I felt could be clearer. Now only 16 easy steps! - Motivated by #5232 and #5244 - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-05-06T19:50:53Z 2021-05-13T17:44:47Z 2021-05-13T17:44:47Z 2021-05-13T17:44:47Z 1305d9b624723b86050ca5b2d854e5326bbaa8e6     0 871db62f6f34983fdfaf4d79e1185b4ed1df361b 751f76ac95761e18d2bf2b5c7ac3c84bd2ee69ea MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5274  
640819533 MDExOlB1bGxSZXF1ZXN0NjQwODE5NTMz 5289 closed 0 Explained what a deprecation cycle is TomNicholas 35968931 Inspired by a question asked in #4696, but does not close that issue - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-05-11T15:15:08Z 2021-05-13T16:38:19Z 2021-05-13T16:38:19Z 2021-05-13T16:38:18Z 1f52ae0e841d75e3f331f16c0f31cd06a1675e23     0 67f0951fa392865c0f14ac4cfd3ea340259a60ec 6e14df62f0b01d8ca5b04bd0ed2b5ee45444265d MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5289  
654156509 MDExOlB1bGxSZXF1ZXN0NjU0MTU2NTA5 5383 closed 0 Corrected reference to blockwise to refer to apply_gufunc instead TomNicholas 35968931 I noticed that the apply_ufunc tutorial notebook says that `xarray.apply_ufunc` uses `dask.array.blockwise`, but that's no longer true as of PR #4060 . - [x] Passes `pre-commit run --all-files` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-05-26T19:23:53Z 2021-05-26T21:34:06Z 2021-05-26T21:34:06Z 2021-05-26T21:34:06Z a6a1e48b57499f91db7e7c15593aadc7930020e8     0 8c34caf9df9e90e374f35d6a652551120cf502bb f9a535c130615fe81379d785dffcc6c814fc1126 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5383  
657015858 MDExOlB1bGxSZXF1ZXN0NjU3MDE1ODU4 5398 closed 0 Multi dimensional histogram (see #5400 instead) TomNicholas 35968931 Initial work on integrating the multi-dimensional dask-powered histogram functionality from xhistogram into xarray. Just working on the skeleton to fit around the histogram algorithm for now, to be filled in later. - [ ] Closes #4610 - [x] API skeleton - [x] Redirect `plot.hist` - [ ] Tests added - [ ] Type hinting - [ ] 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` EDIT: Didn't notice that using `git commit --amend` has polluted the git history for this branch... 2021-05-28T19:59:02Z 2021-05-30T15:34:33Z 2021-05-28T20:00:08Z   b844f739b77fec226357c17f92dc4a6c8deba25b     0 6c69ae906310029fa8b8772a6c70cb33a2742dd5 2b38adc1bdd1dd97934fb061d174149c73066f19 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5398  
657061829 MDExOlB1bGxSZXF1ZXN0NjU3MDYxODI5 5400 open 0 Multidimensional histogram TomNicholas 35968931 Initial work on integrating the multi-dimensional dask-powered histogram functionality from xhistogram into xarray. Just working on the skeleton to fit around the histogram algorithm for now, to be filled in later. - [x] Closes #4610 - [x] API skeleton - [x] Input checking - [ ] Internal `blockwise` algorithm from https://github.com/xgcm/xhistogram/pull/49 - [x] Redirect `plot.hist` - [x] `da.weighted().hist()` - [ ] Tests added for results - [x] Hypothesis tests for different chunking patterns - [ ] Examples in documentation - [ ] Examples in docstrings - [x] Type hints (first time trying these so might be wrong) - [ ] Passes `pre-commit run --all-files` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` - [x] Range argument - [ ] Handle multidimensional bins (for a future PR? - See https://github.com/xgcm/xhistogram/pull/59) - [ ] Handle `np.datetime64` dtypes by refactoring to use `np.searchsorted` (for a future PR? See [discussion](https://github.com/xgcm/xhistogram/pull/44#issuecomment-861139042)) - [ ] Fast path for uniform bin widths (for a future PR? See [suggestion](https://github.com/xgcm/xhistogram/issues/63#issuecomment-861662430)) Question: `da.hist()` or `da.histogram()`? 2021-05-28T20:38:53Z 2022-11-21T22:41:01Z     3c1c200e8284915d290b20bba8fdc5b618c404c9     0 d276838c8120856b678b1afbbe2169230576ad63 d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5400  
673638442 MDExOlB1bGxSZXF1ZXN0NjczNjM4NDQy 5493 open 0 Fix bug when querying unnamed dataarray TomNicholas 35968931 There might be a slightly neater way to do this, but this works. - [x] Closes #5492 - [x] Tests added - [ ] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-06-18T17:51:01Z 2022-11-21T22:32:37Z     a00222ec32a9589e20c32ddd5216dfef4825d052     0 3603ccd8555d5dc09b7ab7abfdeb4c566f4edf75 d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5493  
676486834 MDExOlB1bGxSZXF1ZXN0Njc2NDg2ODM0 5519 closed 0 Type hints for combine functions TomNicholas 35968931 Added type hints to `combine_nested` and `combine_by_coords`. Builds on #4696 because that PR generalised the argument types to include DataArrays, but I couldn't see that branch in the list to base this PR off of. The "nested list-of-lists" argument to `combine_nested` opens up a can of worms: the only way I can see to specify the type of a nested list of arbitrary depth is to [define the type recursively](https://stackoverflow.com/a/53845083/3154101), but [mypy does not currently support recursive type definitions](https://github.com/python/mypy/issues/731), though some other type checkers can, e.g. [Microsoft's Pylance does](https://devblogs.microsoft.com/python/pylance-introduces-five-new-features-that-enable-type-magic-for-python-developers/). We're going to have the same problem when specifying types for `open_mfdataset`. For now this problem is just ignored by the type checker, meaning that we don't actually check the type of the nested-list-of-lists. - [x] Passes `pre-commit run --all-files` - [ ] ~~User visible changes (including notable bug fixes) are documented in `whats-new.rst`~~ 2021-06-23T17:33:36Z 2021-09-30T20:16:45Z 2021-09-30T19:52:47Z 2021-09-30T19:52:47Z 043d68bd1c285245cdfe2282cec42c5843e4ed44     0 2cd5a5d598737e9e1c7cd001fa9468c823a1d0dd 434090909dfad3e77df2488ab957ceb650045285 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5519  
682255419 MDExOlB1bGxSZXF1ZXN0NjgyMjU1NDE5 5561 closed 0 Plots get labels from pint arrays TomNicholas 35968931 Stops you needing to call `.pint.dequantify()` before plotting. Builds on top of #5568, so that should be merged first. - [x] Closes (1) from https://github.com/pydata/xarray/issues/3245#issue-484240082 - [x] Tests added - [x] Tests passing - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-07-02T00:44:28Z 2021-07-21T23:06:21Z 2021-07-21T22:38:34Z 2021-07-21T22:38:34Z 92cb751a52eec9e8b5fa521e0f9f83162eff7e3b     0 4c537901edeb7df9e57d6241b81a4283d8f6fd5b c5ee050f5faf09bb047528cca07ab57051282894 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5561  
682863283 MDExOlB1bGxSZXF1ZXN0NjgyODYzMjgz 5568 closed 0 Add to_numpy() and as_numpy() methods TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Closes #3245 - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` 2021-07-02T20:17:40Z 2021-07-21T22:06:47Z 2021-07-21T21:42:48Z 2021-07-21T21:42:47Z c5ee050f5faf09bb047528cca07ab57051282894     0 7bc5d6ff47f88f5685bd0a7124ce0ef54d87d7f8 86ca67ed67dbf605b50c682fa374471c012a3e35 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5568  
683067959 MDExOlB1bGxSZXF1ZXN0NjgzMDY3OTU5 5571 closed 0 Rely on NEP-18 to dispatch to dask in duck_array_ops TomNicholas 35968931 Removes special-casing for dask in `duck_array_ops.py`, instead relying on NEP-18 to call it when the input is a dask array. Probably actually don't need the `_dask_or_eager_func()` (now `_module_func()`) helper function at all, because all remaining instances look like `pandas_isnull = _module_func("isnull", module=pd)`, which could just be `pandas_isnull = pd.isnull`. Only problem is that I seem to have broken one (parameterized) test: `test_duck_array_ops.py::test_min_count[True-True-None-sum-True-bool_-1]` fails with ```python @pytest.mark.parametrize("dim_num", [1, 2]) @pytest.mark.parametrize("dtype", [float, int, np.float32, np.bool_]) @pytest.mark.parametrize("dask", [False, True]) @pytest.mark.parametrize("func", ["sum", "prod"]) @pytest.mark.parametrize("aggdim", [None, "x"]) @pytest.mark.parametrize("contains_nan", [True, False]) @pytest.mark.parametrize("skipna", [True, False, None]) def test_min_count(dim_num, dtype, dask, func, aggdim, contains_nan, skipna): if dask and not has_dask: pytest.skip("requires dask") da = construct_dataarray(dim_num, dtype, contains_nan=contains_nan, dask=dask) min_count = 3 # If using Dask, the function call should be lazy. with raise_if_dask_computes(): > actual = getattr(da, func)(dim=aggdim, skipna=skipna, min_count=min_count) /home/tegn500/Documents/Work/Code/xarray/xarray/tests/test_duck_array_ops.py:578: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/tegn500/Documents/Work/Code/xarray/xarray/core/common.py:56: in wrapped_func return self.reduce(func, dim, axis, skipna=skipna, **kwargs) /home/tegn500/Documents/Work/Code/xarray/xarray/core/dataarray.py:2638: in reduce var = self.variable.reduce(func, dim, axis, keep_attrs, keepdims, **kwargs) /home/tegn500/Documents/Work/Co… 2021-07-03T19:24:33Z 2022-07-09T18:12:05Z 2021-09-29T17:48:40Z 2021-09-29T17:48:39Z cd6065e98d99c8f749050172d5e2fc5f8f36a768     0 a349538c82cadf5d89da6486d335ced1f2e319ff 434090909dfad3e77df2488ab957ceb650045285 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5571  
696198471 MDExOlB1bGxSZXF1ZXN0Njk2MTk4NDcx 5632 closed 0 v0.19.0 release notes TomNicholas 35968931 Release notes: ```rst This release brings improvements to plotting of categorical data, the ability to specify how attributes are combined in xarray operations, a new high-level :py:func:`unify_chunks` function, as well as various deprecations, bug fixes, and minor improvements. ``` - [x] Closes #5588 2021-07-23T20:38:49Z 2021-07-23T21:39:50Z 2021-07-23T21:12:53Z 2021-07-23T21:12:52Z 53790638f3eb0801efd2ac2aa0ae205b8a8f10e0     0 3452d8ab9bc1ea5f74467a1b80c4566e766c02f3 c5530d52d1bcbd071f4a22d471b728a4845ea36f MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5632  
700512687 MDExOlB1bGxSZXF1ZXN0NzAwNTEyNjg3 5653 closed 0 Roll coords deprecation TomNicholas 35968931 The default behaviour of `da.roll()` caught me out whilst trying to hand-write a `diff` function, so I completed the transition to defaulting to `roll_coords=False` as the default. It's been throwing a warning for 3 years so I think it's time! I also improved the docstrings and added type hints whilst there, although mypy doesn't seem to like some of the type hinting :/ - [x] Completes deprecation started in #2360 - [x] Tests updated - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-07-30T19:16:59Z 2021-10-01T19:24:02Z 2021-10-01T18:54:22Z 2021-10-01T18:54:22Z a62e3133b2a002e2894c6d6c58b218190c982282     0 358b24dda5d32db69a83833aa96e5c8a6ed4a9f3 91d4d086f4e2783387bd9aece2640bbd1e79c6c3 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5653  
702449485 MDExOlB1bGxSZXF1ZXN0NzAyNDQ5NDg1 5669 closed 0 Combine='by_coords' and concat dim deprecation in open_mfdataset TomNicholas 35968931 Noticed this hadn't been completed in https://github.com/pydata/xarray/discussions/5659 - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-08-03T17:03:44Z 2021-10-01T18:52:00Z 2021-10-01T18:52:00Z 2021-10-01T18:52:00Z 91d4d086f4e2783387bd9aece2640bbd1e79c6c3     0 0e75d8cc2723440e41cfbeb57eb01dd64f6d1ca7 ebfc6a3db0580cc11418e906766805ff4bf36455 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5669  
746897223 PR_kwDOAMm_X84shL9H 5834 closed 0 Combine by coords dataarray bugfix TomNicholas 35968931 Also reorganised the logic that deals with combining mixed sets of objects (i.e. named dataarrays, unnamed dataarrays, datasets) that was added in #4696. TODO - same reorganisation / testing but for `combine_nested` as well as `combine_by_coords`. EDIT: I'm going to do this in a separate PR, so that this bugfix can be merged without it. - [x] Closes #5833 - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2021-09-30T17:17:00Z 2021-10-29T19:57:36Z 2021-10-29T19:57:36Z 2021-10-29T19:57:35Z 867646fa75cb00413f1c21ca152d07a9bc4eb444     0 f475f444740496cc5a2208113988f09b70d90c0b 3bfa8c01490ec82506b66bc64446425f43b0362b MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5834  
747121520 PR_kwDOAMm_X84siCtw 5835 open 0 combine_nested dataarrays TomNicholas 35968931 The spiritual successor to #4696 , this attempts to generalise `combine_nested` to handle both named and unnamed `DataArrays` in the same way that `combine_by_coords` does. Unfortunately it doesn't actually work yet - I think the problem is a bit more subtle than I originally thought. Ideally I would implement this using the same logical structure as in #5834, but my attempt to do that was thwarted by how tricky it is to iterate over a nested list-of-lists of arbitrary and modify the stored objects in place... - [x] Tests added - [x] 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`~~ 2021-09-30T23:19:03Z 2022-06-09T14:50:16Z     d06cdf937ee9bbfb664c12a051b5fce36cf77ef3     0 bd17056a28977534d16ce73e8e5efec37dbe89fd d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5835  
750079791 PR_kwDOAMm_X84stU8v 5839 closed 0 Dataset.__setitem__ raise on being passed a Dataset (for single key) TomNicholas 35968931 Inspired by confusion in #5833, this PR slightly clarifies the error thrown when the user attempts to do `ds['var'] = xr.Dataset`. The original error is ``` TypeError: cannot directly convert an xarray.Dataset into a numpy array. Instead, create an xarray.DataArray first, either with indexing on the Dataset or by invoking the `to_array()` method. ``` while the new error is ``` TypeError: Cannot assign a Dataset to a single key - only a DataArray or Variable object can be stored under a single key. ``` - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - ~~New functions/methods are listed in `api.rst`~~ 2021-10-05T17:18:43Z 2021-10-23T19:01:24Z 2021-10-23T19:01:24Z 2021-10-23T19:01:24Z 214bbe09fb34496eadb4f266d3bb8c943cdae85d     0 119864dcb82c410343652b6d5df5c41249f15bc0 5499949b5937277dcd599a182201d0e2fc5e818e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5839  
753610759 PR_kwDOAMm_X84s6zAH 5846 closed 0 Change return type of DataArray.chunks and Dataset.chunks to a dict TomNicholas 35968931 Rectifies the the issue in #5843 by making `DataArray.chunks` and `Variable.chunks` consistent with `Dataset.chunks`. This would obviously need a deprecation cycle before it were merged. Currently a WIP - I changed the behaviour but this obviously broke quite a few tests and I haven't looked at them yet. - [x] Closes #5843 - [ ] Tests added - [x] 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` 2021-10-08T00:02:20Z 2021-10-26T15:52:00Z 2021-10-26T15:51:59Z   3677164822e8f790bece0ee1e0fac4575fc907cc     1 690bde86b1524e9a7aca88e364a6aa58d9baef13 5499949b5937277dcd599a182201d0e2fc5e818e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5846  
764455744 PR_kwDOAMm_X84tkKtA 5886 closed 0 Use .to_numpy() for quantified facetgrids TomNicholas 35968931 Follows on from https://github.com/pydata/xarray/pull/5561 by replacing `.values` with `.to_numpy()` in more places in the plotting code. This allows `pint.Quantity` arrays to be plotted without issuing a `UnitStrippedWarning` (and will generalise better to other duck arrays later). I noticed the need for this when trying out [this example](https://pint-xarray.readthedocs.io/en/latest/examples/plotting.html#plot) (but trying it without the `.dequantify()` call first). (@Illviljan in theory `.values` should be replaced with `.to_numpy()` everywhere in the plotting code by the way) - [ ] Closes #xxxx - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-10-22T19:25:24Z 2021-10-28T22:42:43Z 2021-10-28T22:41:59Z 2021-10-28T22:41:59Z 36f05d70c864ee7c61603c8a43ba721bf7f434b3     0 baad9de14dc2f95a777f88a33f1815ffd9ab2dfc c210f8b9e3356590ee0d4e25dbb21b93cf7a5309 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5886  
766616311 PR_kwDOAMm_X84tsaL3 5900 closed 0 Add .chunksizes property TomNicholas 35968931 Adds a new `.chunksizes` property to `Dataset`, `DataArray` and `Variable`, which returns a mapping from dimensions names to chunk sizes in all cases. Supercedes #5846 because this PR is backwards-compatible. - [x] Closes #5843 - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` 2021-10-26T15:51:09Z 2023-10-20T16:00:15Z 2021-10-29T18:12:22Z 2021-10-29T18:12:22Z 1d94b1ebc323f55448c07d3778cd51d72666683b     0 419025a9e24608d7deb24c9832d0467627c41945 df7646182b17d829fe9b2199aebf649ddb2ed480 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5900  
768794069 PR_kwDOAMm_X84t0t3V 5912 closed 0 Remove lock kwarg TomNicholas 35968931 These were due to be removed post-0.19. - [x] Completes deprecation cycle started in #5256 - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-10-28T23:36:13Z 2021-12-29T16:34:45Z 2021-12-29T16:34:45Z 2021-12-29T16:34:45Z 2957fdf0785af0a1bbb1073049e44cfd4eef933d     0 ce266b5ac23cf6924a38acfa6594f12459ab19bb 2694046c748a51125de6d460073635f1d789958e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5912  
769366652 PR_kwDOAMm_X84t25p8 5916 closed 0 Update open_rasterio deprecation version number TomNicholas 35968931   2021-10-29T15:56:04Z 2021-11-02T18:03:59Z 2021-11-02T18:03:58Z 2021-11-02T18:03:58Z 960010b00119367ff6b82e548f2b54ca25c7a59c     0 b4ec8d2de52d73e4eca113aa33dd1bbc66f26373 ba00852d061a330adbb922a2485c4de92a99540d MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5916  
769468744 PR_kwDOAMm_X84t3SlI 5917 closed 0 Update minimum dependencies for 0.20 TomNicholas 35968931 =============== ====== ==== Package Old New =============== ====== ==== cartopy 0.17 0.18 cftime 1.1 1.2 dask 2.15 2.30 distributed 2.15 2.30 hdf5 1.10 1.12 lxml 4.5 4.6 matplotlib-base 3.2 3.3 numba 0.49 0.51 numpy 1.17 1.18 pandas 1.0 1.1 pint 0.15 0.16 scipy 1.4 1.5 seaborn 0.10 0.11 sparse 0.8 0.11 toolz 0.10 0.11 zarr 2.4 2.5 =============== ====== ==== - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-10-29T18:38:37Z 2021-11-01T21:14:03Z 2021-11-01T21:14:02Z 2021-11-01T21:14:02Z 971b1f58c86629fe56df760a2e84c8fa8f4fb1d4     0 8418fccdb89b7d7fb9877be24b4d35feed7775f4 13a2695b47bf81390993c448d229446954290ffa MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5917  
770911227 PR_kwDOAMm_X84t8yv7 5924 closed 0 v0.20 Release notes TomNicholas 35968931 @pydata/xarray the release notes for your approval #5889 2021-11-01T21:53:29Z 2021-11-02T19:22:46Z 2021-11-02T16:37:45Z 2021-11-02T16:37:44Z 12590005f2c39e3a9459b7ec4966fd535b64c759     0 138a33874de9f57ce6d0ea5dfa4e53ecdbd58d86 3e442e760cc99a4b695eaaed27a286ce6e8fa6aa MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5924  
776620818 PR_kwDOAMm_X84uSksS 5961 closed 0 [Experimental] Refactor Dataset to store variables in a manifest TomNicholas 35968931 This PR is part of an experiment to see how to integrate a `DataTree` into xarray. What is does is refactor `Dataset` to store variables in a `DataManifest` class, which is also capable of maintaining a ledger of child tree nodes. The point of this is to prevent name collisions between stored variables and child datatree nodes, as first mentioned in https://github.com/TomNicholas/datatree/issues/38 and explained further in https://github.com/TomNicholas/datatree/issues/2. ("Manifest" in the old sense, of a noun meaning "a document giving comprehensive details of a ship and its cargo and other contents") - [x] Would eventually close https://github.com/TomNicholas/datatree/issues/38 - [ ] Tests added - [x] Passes `pre-commit run --all-files` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2021-11-09T14:51:03Z 2023-12-06T17:38:53Z 2023-12-06T17:38:52Z   0c4c6baf99c63a92355fefe944afdd84c1c78078     0 183b92be0c55e26e28913c06c7d9b249572aa207 d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/5961  
801540716 PR_kwDOAMm_X84vxops 6076 closed 0 Add labels to dataset diagram TomNicholas 35968931 While making a talk I made a version of our data structure diagram but with added labels along the bottom: ![dataset-diagram](https://user-images.githubusercontent.com/35968931/145866668-49db26fd-53f4-478b-90a1-d861bcae15bc.png) I think this helps clarify the relationship between `Variables`, `DataArrays`, and `Datasets` for new users. I just made it quickly in inkscape by adding to the previous png - I only realised afterwards that the original was made in LaTeX, so maybe it would be better to add labels directly to that code? 2021-12-13T18:21:02Z 2022-07-11T14:49:40Z 2022-01-03T16:58:51Z 2022-01-03T16:58:51Z b88c65af4b02b7951865efb23f0d8fd62a15514e     0 76a392fe0bd6ea9c4437aa999f7ecde7ee932459 2694046c748a51125de6d460073635f1d789958e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6076  
805582762 PR_kwDOAMm_X84wBDeq 6083 closed 0 Manifest as variables attribute TomNicholas 35968931 Another attempt like #5961 @shoyer - [ ] 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` 2021-12-17T18:14:26Z 2023-09-14T15:37:38Z 2023-09-14T15:37:37Z   fdb8eb1eda3552452d52c9e9b8d6f13b520dc2c8     1 d626b4bc83b908bbbc317d31593d2a6f68de1584 d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6083  
806156345 PR_kwDOAMm_X84wDPg5 6086 closed 0 Type protocol for internal variable mapping TomNicholas 35968931 In #5961 and #6083 I've been experimenting extending `Dataset` to store variables in a custom mapping object (instead of always in a `dict`), so as to eventually fix [this mutability problem](https://github.com/TomNicholas/datatree/issues/38) with `DataTree`. I've been writing out new storage class implementations in those PRs, but on Friday @shoyer suggested that I could instead simply alter the allowed type for `._variables` in `xarray.Dataset`'s type hints. That would allow me to mess about with storage class implementations outside of xarray, whilst guaranteeing type compatibility with xarray `main` itself with absolutely minimal changes (hopefully no runtime changes to `Dataset` at all!). The idea is to define a [protocol](https://www.python.org/dev/peps/pep-0544/) in xarray which specifies the structural subtyping behaviour of any custom variable storage class that I might want to set as `Dataset._variables`. The type hint for the `._variables` attribute then refers to this protocol, and will be satisfied as long as whatever object is set as `._variables` has compatibly-typed methods. Adding type hints to the `._construct_direct` and `._replace` constructors is enough to propagate this new type specification all over the codebase. In practice this means writing a protocol which describes the type behaviour of all the methods on `dict` that currently get used by `._variable` accesses. So far I've written out a `CopyableMutableMapping` protocol which defines all the methods needed. The issues I'm stuck on at the moment are: 1) The typing behaviour of overloaded methods, specifically `update`. (`setdefault` also has similar problems but I think I can safely omit that from the protocol definition because we don't call `._variables.setdefault()` anywhere.) Mypy complains that `CopyableMutableMapping` is not a compatible type when `Dict` is specified because the type specification of overloaded methods isn't quite right somehow: ``` xarray/core/computation.py:410: error: Argument 1 to "… 2021-12-19T23:32:04Z 2023-12-06T17:20:48Z 2023-12-06T17:19:30Z   8c8442974fd6b45a7f9310099e1d5813f4d7fc87     1 4ad93a8dc6648aef68ae66e568761ea54262775b d1e4164f3961d7bbb3eb79037e96cae14f7182f8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6086  
863662656 PR_kwDOAMm_X84zenJA 6307 closed 0 Drop duplicates over multiple dims, and add Dataset.drop_duplicates TomNicholas 35968931 Allows for dropping duplicates over multiple dims at once, and adds `Dataset.drop_duplicates`. - [x] Inspired by [this discussion question](https://github.com/pydata/xarray/discussions/6297) - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` 2022-02-25T17:34:12Z 2022-03-01T23:13:38Z 2022-02-25T21:08:30Z 2022-02-25T21:08:30Z 17acbb027326ac5f2379fc6cabf425459759e0ca     0 33d05e80a8f5bcb992e353b87986fad8eecaac0f de965f342e1c9c5de92ab135fbc4062e21e72453 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6307  
869628383 PR_kwDOAMm_X84z1Xnf 6319 closed 0 v2022.03.0 release notes TomNicholas 35968931   2022-03-02T14:43:34Z 2022-03-02T19:49:25Z 2022-03-02T15:49:23Z 2022-03-02T15:49:23Z 9b4d0b29c319f4b68f89328b1bf558711f339504     0 3ea5ac5b9543463636c99fdc336d9600ac3be5ce cdab326bab0cf86f96bcce4292f4fae24bddc7b6 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6319  
906289700 PR_kwDOAMm_X842BOIk 6471 closed 0 Support **kwargs form in `.chunk()` TomNicholas 35968931 Also adds some explicit tests (and type hinting) for `Variable.chunk()`, as I don't think it had dedicated tests before. - [x] Closes #6459 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2022-04-11T17:37:38Z 2022-04-12T03:34:49Z 2022-04-11T19:36:40Z 2022-04-11T19:36:40Z ec13944bbd4022614491b6ec479ff2618da14ba8     0 2dcf444c3236c8a24264130d007c2d6bcc430ae0 2a6392b645029100de748fd2823f62e70d80f0c8 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6471  
925889142 PR_kwDOAMm_X843L_J2 6566 closed 0 New inline_array kwarg for open_dataset TomNicholas 35968931 Exposes the `inline_array` kwarg of [`dask.array.from_array`](https://docs.dask.org/en/stable/generated/dask.array.from_array.html) in `xr.open_dataset`, and `ds/da/variable.chunk`. What setting this to True does is inline the array into the opening/chunking task, which avoids an an extra array object at the start of the task graph. That's useful because the presence of that single common task connecting otherwise independent parts of the graph can confuse the graph optimizer. With `open_dataset(..., inline_array=False)`: <img src="https://user-images.githubusercontent.com/35968931/166312998-611dc79e-610c-44ab-b8ab-1f6f55e145d1.png" width="400"> With `open_dataset(..., inline_array=True)`: <img src="https://user-images.githubusercontent.com/35968931/166313051-1ef7ffc4-eab3-4e69-b58f-5f7befca7fd2.png" width="400"> In our case (xGCM) this is important because once inlined the optimizer understands that all the remaining parts of the graph are embarrasingly-parallel, and realizes that it can fuze all our chunk-wise padding tasks into one padding task per chunk. I think this option could help in any case where someone is opening data from a Zarr store (the reason we had this opener task) or a netCDF file. The value of the kwarg should be kept optional because in theory [inlining is a tradeoff](https://docs.dask.org/en/stable/generated/dask.array.from_array.html) between fewer tasks and more memory use, but I think there might be a case for setting the default to be True? Questions: 1) How should I test this? 2) Should it default to `False` or `True`? 3) `inline_array` or `inline`? (`inline_array` doesn't really make sense for `open_dataset`, which creates multiple arrays) - [x] Closes #1895 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` @rabernat @jbusecke 2022-05-02T19:39:07Z 2022-05-11T22:12:24Z 2022-05-11T20:26:43Z 2022-05-11T20:26:42Z 0512da117388a451653484b4f45927ac337b596f     0 102b503584da56f2c5faa59d0d508feae96fff34 6fbeb13105b419cb0a6646909df358d535e09faf MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "New inline_array kwarg for open_dataset (#6566)",
    "commit_message": "* added inline_array kwarg\r\n\r\n* remove cheeky print statements\r\n\r\n* Remove another rogue print statement\r\n\r\n* bump dask dependency\r\n\r\n* update multiple dependencies based on min-deps-check.py\r\n\r\n* update environment to match #6559\r\n\r\n* Update h5py in ci/requirements/min-all-deps.yml\r\n\r\n* Update ci/requirements/min-all-deps.yml\r\n\r\n* remove pynio from test env\r\n\r\n* Update ci/requirements/min-all-deps.yml\r\n\r\n* promote inline_array kwarg to be top-level kwarg\r\n\r\n* whatsnew\r\n\r\n* add test\r\n\r\n* Remove repeated docstring entry\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* Remove repeated docstring entry\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* hyperlink to dask functions\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/6566  
1021852804 PR_kwDOAMm_X8486DyE 6903 open 0 Duckarray tests for constructors and properties TomNicholas 35968931 Builds on top of #4972 to add tests for `Variable/DataArray/Dataset` constructors and properties when wrapping duck arrays. Adds a file `xarray/tests/duckarrays/base/constructors.py` which contains new test base classes. Also uses those new base classes to test Sparse array integration (not yet tried for pint integration). - [x] Closes part of #6894 - [ ] Tests added (tests for tests?? Maybe...) - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` 2022-08-09T18:36:56Z 2024-01-01T13:33:22Z     e17821a91112150b72cc08d4f1d57ec27cba37fe     0 d2b35c5a183b322b184691a4668d3af0e63ee8fd 2971994ef1dd67f44fe59e846c62b47e1e5b240b MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6903  
1024003776 PR_kwDOAMm_X849CQ7A 6908 open 0 Hypothesis strategies in xarray.testing.strategies TomNicholas 35968931 Adds a whole suite of hypothesis strategies for generating xarray objects, inspired by and separated out from the new hypothesis strategies in #4972. They are placed into the namespace `xarray.testing.strategies`, and publicly mentioned in the API docs, but with a big warning message. There is also a new `testing` page in the user guide documenting how to use these strategies. - [x] Closes #6911 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` EDIT: A `variables` strategy and user-facing documentation were shipped in https://github.com/pydata/xarray/pull/8404 2022-08-11T15:20:56Z 2024-04-01T16:01:21Z     c285e97b0e565238b4f240f0d9ab50575f77a919     0 0aab116ce9c90a4bd6d8b75be04c03c6e6cc80f3 b80260781ee19bddee01ef09ac0da31ec12c5152 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6908  
1025282197 PR_kwDOAMm_X849HJCV 6912 closed 0 Automatic PR labeler TomNicholas 35968931 GH action to automatically label new PRs according to which files they touch. Idea stolen from dask, see https://github.com/dask/dask/pull/7506 . Their PR labelling by file/module is specified [here](https://github.com/dask/dask/blob/main/.github/labeler.yml). (My first use of this bot so might well be a mistake.) @max-sixty you will probably enjoy this extra automation :robot: - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` 2022-08-12T18:40:27Z 2022-08-12T19:52:49Z 2022-08-12T19:47:19Z 2022-08-12T19:47:19Z 95aca7d6a4a63aa08702dd6f6ceca7d498e20fbc     0 1135581ca67885dd9c0797b2e186f36f3c5699a9 f8fee902360f2330ab8c002d54480d357365c172 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6912  
1025630381 PR_kwDOAMm_X849IeCt 6913 closed 0 Fix core team page TomNicholas 35968931 Adds missing core team members @alexamici and @aurghs to docs, as well as fixing @benbovy 's username. 2022-08-13T17:05:51Z 2022-08-15T13:39:47Z 2022-08-15T13:39:43Z 2022-08-15T13:39:43Z d797bfbce2db75131ca094e741e50be7b69b9f15     0 912f355f84b0dd497a752273c1b4c85d35bbe6a7 95aca7d6a4a63aa08702dd6f6ceca7d498e20fbc MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/6913  
1049288684 PR_kwDOAMm_X84-it_s 7006 open 0 Fix decorators in ipython code blocks in docs TomNicholas 35968931 There was [a bug in ipython's sphinx extension](https://github.com/ipython/ipython/pull/13612) causing decorators to be skipped when evaluating code blocks. I assume that's why there is this weird workaround in the docs page on defining accessors (which uses decorators). I fixed that bug, and the fix is in the most recent release of ipython, so this PR bumps our ipython version for the docs, and removes the workaround. - [ ] 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` 2022-09-07T22:38:07Z 2023-01-15T18:11:17Z     6c7f2fb4e75694ab24d53444a80882b79fc8e7f3     0 2f690d4f55196b72b70c32b0226fe719f4bcef6d b741d8311fdc3d6150fd10d6421635eb4d84c7d5 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7006  
1050631234 PR_kwDOAMm_X84-n1xC 7011 open 0 Add sphinx-codeautolink extension to docs build TomNicholas 35968931 I think that sphinx-codeautolink is different from `sphinx.ext.linkcode`... - [x] Closes #7010 - [ ] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` 2022-09-08T17:43:47Z 2023-02-06T17:55:52Z     b6318f2b3505533d83bd9848104dd685cf5bde75     1 8f67808ba80759ed28169d21d36de08ff38a3eec d385e2063a6b5919e1fe9dd3e27a24bc7117137e MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7011  
1052339012 PR_kwDOAMm_X84-uWtE 7019 closed 0 Generalize handling of chunked array types TomNicholas 35968931 Initial attempt to get cubed working within xarray, as an alternative to dask. - [x] Closes #6807, at least for the case of cubed - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` - [x] Correct type hints I've added a `manager` kwarg to the `.chunk` methods so you can do `da.chunk(manager="cubed")` to convert to a chunked `cubed.CoreArray`, with the default still being `da.chunk(manager="dask")`. (I couldn't think of a better name than "manager", as "backend" and "executor" are already taken.) ~~At the moment it should work except for an import error that I don't understand, see below.~~ Fro cubed to work at all with this PR we would also need: - [x] Cubed to expose the correct array type consistently https://github.com/tomwhite/cubed/issues/123 - [x] A cubed version of `apply_gufunc` https://github.com/tomwhite/cubed/pull/119 - implemented in https://github.com/tomwhite/cubed/pull/149 :partying_face: To-dos for me on this PR: - [x] Re-route `xarray.apply_ufunc` through `cubed.apply_gufunc` instead of dask's `apply_gufunc` when appropriate, - [x] Add `from_array_kwargs` to opening functions, e.g. `open_zarr`, and `open_dataset`, - [x] Add `from_array_kwargs` to creation functions, such as `full_like`, - [x] Add `store_kwargs` as a way to propagate cubed-specific kwargs when saving `to_zarr`. To complete this project more generally we should also: - [ ] Have `cubed.apply_gufunc` support multiple output arguments https://github.com/tomwhite/cubed/issues/152 - [x] Have a top-level `cubed.unify_chunks` to match `dask.array.core.unify_chunks` - [ ] Write a test suite for wrapping cubed arrays, which would be best done via #6894 - [ ] Generalise `xarray.map_blocks` to work on cubed arrays, ideally by first rewriting xarray's implementation of `map_blocks` to use `dask.array.map_blocks` cc @tomwhite 2022-09-10T22:02:18Z 2023-07-24T20:40:29Z 2023-05-18T17:34:31Z 2023-05-18T17:34:31Z 6cd6122ab7850842624bfe40579c5b7dc80185f9     0 c69c56319dfbe84ac5e59b97a497ed8de799905d 964d350a80fe21d4babf939c108986d5fd90a2cf MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7019  
1053794502 PR_kwDOAMm_X84-z6DG 7023 closed 0 Remove dask_array_type checks TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [ ] From https://github.com/pydata/xarray/pull/7019#discussion_r968606140 - [ ] ~~Tests added~~ - [ ] ~~User visible changes (including notable bug fixes) are documented in `whats-new.rst`~~ - [ ] ~~New functions/methods are listed in `api.rst`~~ 2022-09-12T19:31:04Z 2022-09-13T00:35:25Z 2022-09-13T00:35:22Z 2022-09-13T00:35:22Z 073f414eb810af02e2ad12d35bcd313558921837     0 8b1c5628792a2c27a08ea978cea95aaf9077f43e b018442c8dfa3e71ec35e294de69e2011949afec MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7023  
1067717283 PR_kwDOAMm_X84_pBKj 7090 closed 0 Fill in missing docstrings for ndarray properties TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [ ] ~~Closes #xxxx~~ - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2022-09-26T21:05:37Z 2022-09-26T22:24:13Z 2022-09-26T22:05:34Z 2022-09-26T22:05:34Z 77b9e8a9186b74acc1c64bb56f4293bd042b80a0     0 69e24cbe48fdae945e2e066daac475fcb4cef1bf 404a6e268d3d83e8bad04768971ba1bc207a155d MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Fill in missing docstrings for ndarray properties (#7090)",
    "commit_message": "* fill in missing docstrings for ndarray properties\r\n\r\n* whatsnew"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7090  
1071728044 PR_kwDOAMm_X84_4UWs 7107 closed 0 2022.09.0 release summary TomNicholas 35968931 Thumbs up if it looks fine to you 2022-09-29T18:34:02Z 2022-09-29T21:57:43Z 2022-09-29T21:54:14Z 2022-09-29T21:54:14Z 208e58869758d7ceb01fba8422e2caaa7296268c     0 1063cc75e73ab9ce2db490a90e8fd232762d2835 2fe78758dc47b2de329df6807a6c7dd2c293946c MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "2022.09.0 release summary (#7107)",
    "commit_message": "* release summary\r\n\r\n* Update doc/whats-new.rst\r\n\r\nCo-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>\r\n\r\n* correct after Max's wording change\r\n\r\nCo-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7107  
1094478481 PR_kwDOAMm_X85BPGqR 7192 closed 0 Example using Coarsen.construct to split map into regions TomNicholas 35968931 I realised there is very little documentation on `Coarsen.construct`, so I added this example. Unsure whether it should instead live in the page on reshaping and reorganising data though, as it is essentially a reshape operation. EDIT: Now on the reshape page - [ ] ~~Closes #xxxx~~ - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ cc @jbusecke @paigem 2022-10-20T22:14:31Z 2022-10-21T18:14:59Z 2022-10-21T18:14:56Z 2022-10-21T18:14:55Z 6cb97f645475bddf2f3b1e1a5f24f0f9de690683     0 cfe405b146f65cfd1fcad2132477086c4cd870bb 8f34b32cd77c7e7e2e559c1ced9adf3100ecf40d MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7192  
1102359579 PR_kwDOAMm_X85BtKwb 7233 closed 0 Ensure Coarsen.construct keeps all coords TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Closes #7232 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2022-10-27T23:46:49Z 2022-10-28T17:46:50Z 2022-10-28T17:46:50Z 2022-10-28T17:46:50Z e1936a98059ae29da2861f58a7aff4a56302aac1     0 8a3d2002dc11fa8546609534a0d723e3b8866d2a 51d37d1be95547059251076b3fadaa317750aab3 MEMBER
{
    "enabled_by": {
        "login": "dcherian",
        "id": 2448579,
        "node_id": "MDQ6VXNlcjI0NDg1Nzk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2448579?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dcherian",
        "html_url": "https://github.com/dcherian",
        "followers_url": "https://api.github.com/users/dcherian/followers",
        "following_url": "https://api.github.com/users/dcherian/following{/other_user}",
        "gists_url": "https://api.github.com/users/dcherian/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/dcherian/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/dcherian/subscriptions",
        "organizations_url": "https://api.github.com/users/dcherian/orgs",
        "repos_url": "https://api.github.com/users/dcherian/repos",
        "events_url": "https://api.github.com/users/dcherian/events{/privacy}",
        "received_events_url": "https://api.github.com/users/dcherian/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Ensure Coarsen.construct keeps all coords (#7233)",
    "commit_message": "* test\r\n\r\n* fix\r\n\r\n* whatsnew\r\n\r\n* group related tests into a class\r\n\r\n* Update xarray/core/rolling.py\r\n\r\n* Update xarray/core/rolling.py\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7233  
1140703190 PR_kwDOAMm_X85D_b_W 7338 closed 0 Docs: add example of writing and reading groups to netcdf TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Came from https://github.com/pydata/xarray/discussions/7329#discussioncomment-4256845 - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ @dcherian 2022-11-30T18:01:32Z 2022-12-01T16:24:08Z 2022-12-01T16:24:04Z 2022-12-01T16:24:04Z 43ec7a907c7e384608b4c6b1f4c9b1258898f0dc     0 16f485bb4b560630e738903950c9cd430dbccaa8 3aa75c8d00a4a2d4acf10d80f76b937cadb666b7 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7338  
1185417960 PR_kwDOAMm_X85GqAro 7418 closed 0 Import datatree in xarray? TomNicholas 35968931 I want [datatree](https://github.com/xarray-contrib/datatree) to live in xarray main, as right now it's in a separate package but imports many xarray internals. This presents a few questions: 1) At what stage is datatree "ready" to moved in here? At what stage should it become encouraged public API? 2) What's a good way to slowly roll the feature out? 3) How do I decrease the bus factor on datatree's code? Can I get some code reviews during the merging process? :pray: 4) Should I make a new CI environment just for testing datatree stuff? Today @jhamman and @keewis suggested for now I make it so that you can `from xarray import DataTree`, using the current xarray-datatree package as an optional dependency. That way I can create a smoother on-ramp, get some more users testing it, but without committing all the code into this repo yet. @pydata/xarray what do you think? Any other thoughts about best practices when moving a good few thousand lines of code into xarray? - [x] First step towards moving solution of #4118 into this repository - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` 2023-01-04T20:48:09Z 2023-12-22T17:38:04Z 2023-12-22T17:38:04Z   cc8dfe882e7c6962ebe3dd108a9330a8c31d17ad     0 7cf1d5532cbad1aaf9841cbe959e764ad9661835 67d0ee20f66517627a2ce795b650b980dd982de9 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7418  
1224298678 PR_kwDOAMm_X85I-VC2 7497 open 0 Enable datatree * dataset commutativity TomNicholas 35968931 Change binary operations involving `DataTree` objects and `Dataset` objects to be handled by the `DataTree` class. Necessary to enable `ds * dt` to return the same type as `dt * ds`. Builds on top of #7418. - [x] Closes https://github.com/xarray-contrib/datatree/issues/146 - [x] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` 2023-02-01T05:24:53Z 2023-02-03T17:32:20Z     31219ae5fa8647fdd55e17e36e49cb370cc69f14     0 87f5e2591cfa3f399031ebec0331b114aa01e2ee 67d0ee20f66517627a2ce795b650b980dd982de9 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7497  
1231289701 PR_kwDOAMm_X85JY_1l 7509 closed 0 Update apply_ufunc output_sizes error message TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Closes poor error message reported in https://github.com/pydata/xarray/discussions/7503 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-02-07T01:35:08Z 2023-02-07T15:45:54Z 2023-02-07T05:01:36Z 2023-02-07T05:01:36Z d2a68d05a2a7e76fa3d4b78671a79608d233260c     0 8aac59752dfcfc84509c602a8405913149fec532 5b6d757e870e3006fa5df974cbeeb242251fabb6 MEMBER
{
    "enabled_by": {
        "login": "dcherian",
        "id": 2448579,
        "node_id": "MDQ6VXNlcjI0NDg1Nzk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2448579?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dcherian",
        "html_url": "https://github.com/dcherian",
        "followers_url": "https://api.github.com/users/dcherian/followers",
        "following_url": "https://api.github.com/users/dcherian/following{/other_user}",
        "gists_url": "https://api.github.com/users/dcherian/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/dcherian/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/dcherian/subscriptions",
        "organizations_url": "https://api.github.com/users/dcherian/orgs",
        "repos_url": "https://api.github.com/users/dcherian/repos",
        "events_url": "https://api.github.com/users/dcherian/events{/privacy}",
        "received_events_url": "https://api.github.com/users/dcherian/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Update apply_ufunc output_sizes error message (#7509)",
    "commit_message": "* test for error message\r\n\r\n* fix\r\n\r\n* whatsnew\r\n\r\n---------\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7509  
1236823941 PR_kwDOAMm_X85JuG-F 7518 closed 0 State which variables not present in drop vars error message TomNicholas 35968931 Makes the error message more informative - [ ] Closes #xxxx - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-02-10T15:00:35Z 2023-03-09T20:47:47Z 2023-03-09T20:47:47Z 2023-03-09T20:47:47Z 49ae0f8dd39e8fc59ed3476f50b9938bbb40d0c4     0 6699f6dbcc9f6797cc28438c4d9aa7f0192d4627 6d771fc82228bdaf8a4b77d0ceec1cc444ebd090 MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "State which variables not present in drop vars error message (#7518)",
    "commit_message": "* test\r\n\r\n* improve error message\r\n\r\n* whatsnew\r\n\r\n* order the names of missing variables before raising\r\n\r\n* escape regex so it matches"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7518  
1242341592 PR_kwDOAMm_X85KDKDY 7534 open 0 Docs page on numpy to xarray TomNicholas 35968931 - [x] Closes #7533 - [ ] ~~Tests added~~ - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-02-15T16:16:53Z 2023-02-15T16:16:53Z     fc86b607a2b267e2f85f4609d95cc31b6784fcec     0 4becceac26b0cf01ee115014afd3095f715992e9 21d86450b3cec595c74aa410cbcc367c9c7f8a0a MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7534  
1268138688 PR_kwDOAMm_X85LlkLA 7595 closed 0 Clarifications in contributors guide TomNicholas 35968931 Add suggestions @paigem made in #7439, as well as fix a few small formatting things and broken links. I would like to merge this so that it can be helpful for the new contributors we will hopefully get through Outreachy. - [x] Closes #7439 - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-03-08T16:35:45Z 2023-03-13T17:55:43Z 2023-03-13T17:51:24Z 2023-03-13T17:51:24Z 4faecb453d414b829803abeda4ba1bedd8142f5d     0 ad84fb98c9bb6e068aff4d9ffa93de6d8c4b67dc 485f801d4bbfc8b2b8c20a390a859ae6cd71ba16 MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Clarifications in contributors guide (#7595)",
    "commit_message": "* update links to issue labels\r\n\r\n* clarify that we actually use ruff now in pre-commit\r\n\r\n* mention absolufy-imports which we use in pre-commit\r\n\r\n* checked that example test file works\r\n\r\n* fix formatting of nested bullets\r\n\r\n* add pre-commit to docs env\r\n\r\n* clarify which environment to use for docstrings\r\n\r\n* explain how to view local html docs build\r\n\r\n* clarify what pip -e does\r\n\r\n* update git commit message requirements\r\n\r\n* clarify that small changes don't require local testing\r\n\r\n* whatsnew\r\n\r\n* point to CI build of the docs\r\n\r\n* add suggestion to use github desktop\r\n\r\n* image to help find view docs button on readthedocs\r\n\r\n* update outdated screenshot of green ci\r\n\r\n* internal link to point to where you can view RTD build\r\n\r\n* Add ruff as separate entry in list of pre-commit checks\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7595  
1335673210 PR_kwDOAMm_X85PnMF6 7811 open 0 Generalize delayed TomNicholas 35968931 A small follow-on to #7019 to allow using non-dask implementations of `delayed`. (Builds off of #7019) - [x] Closes #7810 - [ ] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` 2023-05-02T18:34:26Z 2024-04-23T17:41:55Z     336e84ecad21cb5f1f324fde326ec5d4aa3a3bdf     0 c183e73e8488636d99a64d805e290e9544a4fa08 da8746b46265a61a5a5020924d27aeccd1f43f98 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7811  
1337758866 PR_kwDOAMm_X85PvJSS 7815 closed 0 Array API fixes for astype TomNicholas 35968931 While it's common for duck arrays to have a `.astype` method, this doesn't exist in the new array API standard. We now have `duck_array_ops.astype` to deal with this, but for some reason changing it in just a couple more places broke practically every pint test in `test_units.py` :confused: @keewis Builds on top of #7019 with just one extra commit to separate out this issue. - [ ] 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` 2023-05-04T04:33:52Z 2023-05-18T20:10:48Z 2023-05-18T20:10:43Z   1aaa863b646c97b6845673eeb97be64106f96f86     0 18be6e9a5f378fa8c47fbc28b5451e3570321706 306310050f6278f4d8107159c9c3649fbd6b5dea MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7815  
1356222019 PR_kwDOAMm_X85Q1k5D 7847 closed 0 Array API fixes for astype TomNicholas 35968931 Follows on from #7067 and #6804, ensuring that we call `xp.astype()` on arrays rather than `arr.astype()`, as the latter is commonly-implemented by array libraries but not part of the array API standard. A bit of a pain to test in isolation because I made the changes so that xarray's .pad would work with array-API-conforming libraries, but actually `np.pad` is not part of the array API either, so it's going to coerce to numpy for that reason anyway. (This PR replaces #7815, as making a new branch was easier than merging/rebasing with all the changes in #7019.) - [ ] ~~Closes #xxxx~~ - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-05-18T20:09:32Z 2023-05-19T15:11:17Z 2023-05-19T15:11:16Z 2023-05-19T15:11:16Z 05c7888d0faf753968e12cd338730f7a7f3c891a     0 e69c4fa5d226438294c0246c1c2f8588415e4c22 97a2032a163bb36f6d9e4bf7bff3eca7d7e3faa4 MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Array API fixes for astype (#7847)",
    "commit_message": "* array API fixes for astype\r\n\r\n* whatsnew"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7847  
1356351875 PR_kwDOAMm_X85Q2EmD 7849 closed 0 Whats new for release of v2023.05.0 TomNicholas 35968931 Summary: This release adds some new methods and operators, updates our deprecation policy for python versions, fixes some bugs with groupby, and introduces experimental support for alternative chunked parallel array computation backends via a new plugin system! 2023-05-18T22:30:32Z 2023-05-19T02:18:03Z 2023-05-19T02:17:55Z 2023-05-19T02:17:55Z 97a2032a163bb36f6d9e4bf7bff3eca7d7e3faa4     0 04a2509d0fb28715b4c088e139b0aca1d148cebb 08f06c434546fc1de8eaf04011591d2d31b874b2 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7849  
1389285079 PR_kwDOAMm_X85Szs7X 7911 closed 0 Duck array documentation improvements TomNicholas 35968931 Draft improvements to the user guide page on using duck arrays. Intended as part of the [scipy tutorial](https://github.com/xarray-contrib/xarray-tutorial/issues/170) effort, though I wasn't sure whether to concentrate on content in the main xarray docs or the tutorial repo. (I wrote this on a train without enough internet to update my conda environment so I will come back and fix anything that doesn't run.) - [x] Part of https://github.com/xarray-contrib/xarray-tutorial/issues/170 - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` cc @dcherian and @keewis 2023-06-12T19:10:41Z 2023-07-10T09:36:05Z 2023-06-29T14:39:22Z 2023-06-29T14:39:22Z 4b544211b42a66744893a80c3ddc45dd9f9479de     0 08c0f8476e6817a098a0cb262c04cfe7f7b09790 1146c5a3cdb15d402e95153c3ea68826b158d953 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7911  
1402136292 PR_kwDOAMm_X85Tkubk 7934 closed 0 Release summary for v2023.06.0 TomNicholas 35968931 Release summary: This release adds features to ``curvefit``, improves the performance of concatenation, and fixes various bugs. --- For some reason when I try to use `git log "$(git tag --sort=v:refname | tail -1).." --format=%aN | sort -u | perl -pe 's/\n/$1, /'` to return the list of all contributors since last release, it only returns Deepak :laughing: I'm not sure what's going wrong there - I definitely have all the git tags fetched, and other people have definitely contributed since the last version! 2023-06-21T17:34:29Z 2023-06-23T03:02:12Z 2023-06-23T03:02:11Z 2023-06-23T03:02:11Z a80ff50830b032d0e422c1e7344164d239906e92     0 ff11c4aef11d0b0bd11ae485730e58c61a88935f cbbf347d8153a786e8398beab79a32220038a381 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7934  
1406746614 PR_kwDOAMm_X85T2T_2 7941 closed 0 Allow cubed arrays to be passed to flox groupby TomNicholas 35968931 Generalizes a small check for chunked arrays in groupby so it now allows cubed arrays through to flox rather than just dask arrays. Does not actually mean that flox groupby will work with cubed yet though, see https://github.com/tomwhite/cubed/issues/223 and https://github.com/xarray-contrib/flox/issues/224 - [x] Should have been done in #7019 - [ ] ~~Tests added~~ (The place to test this would be in [`cubed-xarray`] - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-06-25T16:48:56Z 2023-06-26T15:28:06Z 2023-06-26T15:28:03Z 2023-06-26T15:28:03Z e5071aad4a081253a6df5ce372c4637df7cad3f5     0 f7d452a834be961c273946aa60469a78a65d54b4 86f99337d803866a4288fc7550f9ee8c495baf87 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7941  
1412510011 PR_kwDOAMm_X85UMTE7 7951 closed 0 Chunked array docs TomNicholas 35968931 Builds upon #7911 - [x] Documentation for #7019 - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-06-28T23:01:42Z 2023-07-05T20:33:33Z 2023-07-05T20:08:19Z 2023-07-05T20:08:19Z 58096a6549ac96e7fd751fe1c0ca83b1d69ee2ef     0 a66c25af33e55693bbc64cffcf14ddff172cd700 0de77610a5a7f90212a7c2f2d2545c32865ad60c MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Chunked array docs (#7951)",
    "commit_message": "* draft updates\r\n\r\n* discuss array API standard\r\n\r\n* fix sparse examples so they run\r\n\r\n* Deepak's suggestions\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* link to duck arrays user guide from internals page\r\n\r\n* fix various links\r\n\r\n* itemized list\r\n\r\n* mention dispatching on functions not in the array API standard\r\n\r\n* examples of duckarrays\r\n\r\n* add intended audience to xarray internals section\r\n\r\n* draft page on chunked arrays\r\n\r\n* move paragraph on why its called a duck array upwards\r\n\r\n* delete section on numpy ufuncs\r\n\r\n* explain difference between .values and to_numpy\r\n\r\n* strongly prefer to_numpy over values\r\n\r\n* recommend to_numpy instead of values in the how do I? page\r\n\r\n* clearer about using to_numpy\r\n\r\n* merge section on missing features\r\n\r\n* remove todense from examples\r\n\r\n* whatsnew\r\n\r\n* double that\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* numpy array class clarification\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* Remove sentence about xarray's internals\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* array API standard\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* proper link for sparse.COO type\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* links to docstrings of array types\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* don't put variable in parentheses\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* double backquote formatting\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* better bracketing\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* fix list formatting\r\n\r\n* add links to glue packages, dask, and cubed\r\n\r\n* link to todense method\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* link to numpy-like arrays page\r\n\r\n* link to numpy ufunc docs\r\n\r\n* more text about chunkmanagers\r\n\r\n* add example of using .to_numpy\r\n\r\n* note on ideally not having an entrypoint system\r\n\r\n* parallel processing without chunks\r\n\r\n* explain the user interface\r\n\r\n* how to register the chunkmanager\r\n\r\n* show example of .values failing\r\n\r\n* link from duck arrays page\r\n\r\n* whatsnew\r\n\r\n* move whatsnew entry to unreleased version\r\n\r\n* capitalization\r\n\r\n* fix warning in docs build\r\n\r\n* fix a bunch of links\r\n\r\n* display API of ChunkManagerEntrypoint class attributes and methods\r\n\r\n* improve docstrings in ABC\r\n\r\n* add cubed to intersphinx mapping\r\n\r\n* link to dask.array as module not class\r\n\r\n* typo\r\n\r\n* fix bold formatting\r\n\r\n* proper docstrings\r\n\r\n* mention from_array specifically and link to requirements section of duck array internals page\r\n\r\n* add explicit link to cubed\r\n\r\n* mention ramba and arkouda\r\n\r\n* [pre-commit.ci] auto fixes from pre-commit.com hooks\r\n\r\nfor more information, see https://pre-commit.ci\r\n\r\n* py:mod\r\n\r\n* Present tense regarding wrapping cubed\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* add links to cubed\r\n\r\n* add references for numpy links in apply_gufunc docstring\r\n\r\n* fix some broken links to docstrings\r\n\r\n---------\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7951  
1418691392 PR_kwDOAMm_X85Uj4NA 7960 closed 0 Update minimum version of typing extensions in pre-commit TomNicholas 35968931 Attempt to fix the pre-commit build failure I keep seeing in the CI (e.g. [this failure](https://results.pre-commit.ci/run/github/13221727/1688407091.YvAQyUabR0mkXgYloCyiVQ) from https://github.com/pydata/xarray/pull/7881) 2023-07-03T21:27:40Z 2023-07-05T19:09:04Z 2023-07-05T15:43:40Z 2023-07-05T15:43:40Z 429ff9b1339004de27453874dd2f4aef5461a49a     0 6c408314460a132ca22feca8a356db8b2fd555ed 77e2db5aa1d8828bc7310062680ad9fe15a65d8a MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7960  
1421643298 PR_kwDOAMm_X85UvI4i 7963 open 0 Suggest installing dask when not discovered by ChunkManager TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Closes #7962 - [ ] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-07-05T19:34:06Z 2023-10-16T13:31:44Z     5596c3f6021e79205f6ca253590a51fcdd5873ee     0 2a8552687eada16f8aee60763dfa166780be1558 dafd726c36e24ac77427513a4a149a6933353b66 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7963  
1429947827 PR_kwDOAMm_X85VO0Wz 7979 closed 0 Release summary for v2023.07.0 TomNicholas 35968931   2023-07-11T17:59:28Z 2023-07-13T16:33:43Z 2023-07-13T16:33:43Z 2023-07-13T16:33:43Z 0040bbc09af0262ac18d1ab2e7d2f6fafda51768     0 2e392a3318c4d17ca07064a6ad7632f81e56a10f 799f12d756f9edf1a40188461cf3833a0788af82 MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Release summary for v2023.07.0 (#7979)",
    "commit_message": "* release summary\r\n\r\n* Date format\r\n\r\nCo-authored-by: Anderson Banihirwe <13301940+andersy005@users.noreply.github.com>\r\n\r\n---------\r\n\r\nCo-authored-by: Anderson Banihirwe <13301940+andersy005@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7979  
1431658026 PR_kwDOAMm_X85VVV4q 7981 open 0 Document that Coarsen accepts coord func as callable TomNicholas 35968931 Documents a hidden feature I noticed yesterday, corrects incorrect docstrings, and tidies up some of the typing internally. - [ ] ~~Closes #xxxx~~ - [ ] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-07-12T17:01:31Z 2023-09-19T01:18:49Z     5493d9be1e81fc2607c038f7faba7382844b562d     0 9b8da97e35f50accbeaf9035ecd3c4b009d0b038 799f12d756f9edf1a40188461cf3833a0788af82 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7981  
1436581288 PR_kwDOAMm_X85VoH2o 7991 closed 0 Docs page on internal design TomNicholas 35968931 Adds a new page to the xarray internals documentation giving an overview of the internal design of xarray. This should be helpful for xarray contributors and for developers of extensions because nowhere in the docs does it really explain how `DataArray` and `Dataset` are constructed from `Variable`. - [ ] ~~Closes #xxxx~~ - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-07-17T04:46:55Z 2023-09-08T15:41:32Z 2023-09-08T15:41:32Z 2023-09-08T15:41:32Z 67268f1159fc5b4aee5c644b37d84036d8fc1528     0 440f95a4b14aee8339e5d74acdc2ef8fbf35c0f4 e2b6f3468ef829b8a83637965d34a164bf3bca78 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7991  
1436603724 PR_kwDOAMm_X85VoNVM 7992 closed 0 Docs page on interoperability TomNicholas 35968931 Builds upon #7991 by adding a page to the internals enumerating all the different ways in which xarray is interoperable. Would be nice if https://github.com/pydata/xarray/pull/6975 were merged so that I could link to it from this new page. - [x] Addresses comment in https://github.com/pydata/xarray/pull/6975#issuecomment-1246487152 - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-07-17T05:02:29Z 2023-10-26T16:08:56Z 2023-10-26T16:04:33Z 2023-10-26T16:04:33Z 78f749166ae4330c638f8daec3cf25530ea6588b     0 ae4619b8706c3392925a7209424e45abebfbeb04 cef76ecc38751a615a7615b29244f99ab6a8995c MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Docs page on interoperability (#7992)",
    "commit_message": "* add page on internal design\r\n\r\n* add xarray-datatree to intersphinx mapping\r\n\r\n* typo\r\n\r\n* add subheadings to the accessors page\r\n\r\n* Revert \"add page on internal design\"\r\n\r\nThis reverts commit 198f67b9a5a5f0b1b37ba3f0f844c2d706a2bfab.\r\n\r\n* rename page on variables\r\n\r\n* whatsnew\r\n\r\n* page on interoperability\r\n\r\n* add interoperability page to index\r\n\r\n* fix whatsnew\r\n\r\n* sel->isel\r\n\r\n* add section on lazy indexing\r\n\r\n* actually show lazy indexing example\r\n\r\n* link to custom indexes page\r\n\r\n* fix some formatting\r\n\r\n* put encoding last\r\n\r\n* attrs and encoding are not ordered dicts\r\n\r\nCo-authored-by: Illviljan <14371165+Illviljan@users.noreply.github.com>\r\n\r\n* reword lack of support for subclassing\r\n\r\nCo-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>\r\n\r\n* remove duplicate word\r\n\r\n* encourage contributions to supporting subclassing\r\n\r\n---------\r\n\r\nCo-authored-by: Illviljan <14371165+Illviljan@users.noreply.github.com>\r\nCo-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7992  
1436668109 PR_kwDOAMm_X85VodDN 7993 closed 0 Update whats-new.rst for new release TomNicholas 35968931 Needed because I started the release process earlier this week by writing a whatsnew, that apparently got merged, but the release hasn't been issued since. I'll self-merge this and release now. 2023-07-17T06:03:19Z 2023-07-17T06:03:43Z 2023-07-17T06:03:42Z 2023-07-17T06:03:42Z 69236b8cfae9cf38682d79b766e92d6eba215c3c     0 1f3ad9c49431cca330423860d47c0305ea3a59a0 a47ff4ed7ff6d6a5a16d0e604bdb120557c42e13 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/7993  
1439463058 PR_kwDOAMm_X85VzHaS 7999 closed 0 Core team member guide TomNicholas 35968931 Adds a guide for core developers of xarray. Mostly adapted from [napari's core dev guide](https://napari.org/stable/developers/core_dev_guide.html), but with some extra sections and ideas from the [pandas maintainance guide](https://pandas.pydata.org/docs/development/maintaining.html). @pydata/xarray please give your feedback on this! If you prefer to give feedback in a non-public channel for whatever reason then please use the private core team email. - [ ] ~~Closes #xxxx~~ - [ ] ~~Tests added~~ - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-07-18T15:26:01Z 2023-07-21T14:51:57Z 2023-07-21T13:48:26Z 2023-07-21T13:48:26Z efa28639eae14b3958363b83fe6f89c37f870478     0 e11e498912f58ac7dce92bf4a47e5ba091723625 6b1ff6d13bf360df786500dfa7d62556d23e6df9 MEMBER
{
    "enabled_by": {
        "login": "TomNicholas",
        "id": 35968931,
        "node_id": "MDQ6VXNlcjM1OTY4OTMx",
        "avatar_url": "https://avatars.githubusercontent.com/u/35968931?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/TomNicholas",
        "html_url": "https://github.com/TomNicholas",
        "followers_url": "https://api.github.com/users/TomNicholas/followers",
        "following_url": "https://api.github.com/users/TomNicholas/following{/other_user}",
        "gists_url": "https://api.github.com/users/TomNicholas/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/TomNicholas/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/TomNicholas/subscriptions",
        "organizations_url": "https://api.github.com/users/TomNicholas/orgs",
        "repos_url": "https://api.github.com/users/TomNicholas/repos",
        "events_url": "https://api.github.com/users/TomNicholas/events{/privacy}",
        "received_events_url": "https://api.github.com/users/TomNicholas/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Core team member guide (#7999)",
    "commit_message": "* copy napari core dev guide\r\n\r\n* replace all instance of napari with xarray\r\n\r\n* rewrite some napari-specific sentences\r\n\r\n* update links in the resources\r\n\r\n* list tasks\r\n\r\n* fixes\r\n\r\n* mention the plan to merge label\r\n\r\nCo-authored-by: Michael Niklas  <mick.niklas@gmail.com>\r\n\r\n* core dev -> core team member\r\n\r\n* choose your own title\r\n\r\n* rearrange sections to put tasks before code contributions\r\n\r\n* remove dramatic nuclear launch keys analogy\r\n\r\n* link to bi-weekly developers meeting\r\n\r\n* add more types of tasks\r\n\r\n* mention presenting tutorials\r\n\r\n* mention representing xarray in user communities\r\n\r\n* yet more tasks\r\n\r\n* note that you don't have to do everything\r\n\r\n* paragraph at top making it clear no extra work is required!\r\n\r\n* whatsnew\r\n\r\n* add section on issue triage\r\n\r\n* Apply suggestions from Deepak's code review\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\n\r\n* various fixes\r\n\r\n* Update CORE_TEAM_GUIDE.md\r\n\r\nCo-authored-by: Joe Hamman <jhamman1@gmail.com>\r\n\r\n* [pre-commit.ci] auto fixes from pre-commit.com hooks\r\n\r\nfor more information, see https://pre-commit.ci\r\n\r\n* How to run benchmark CI using PR label\r\n\r\n---------\r\n\r\nCo-authored-by: Michael Niklas <mick.niklas@gmail.com>\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>\r\nCo-authored-by: Joe Hamman <jhamman1@gmail.com>\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/7999  
1448840491 PR_kwDOAMm_X85WW40r 8019 closed 0 Generalize cumulative reduction (scan) to non-dask types TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Needed for https://github.com/tomwhite/cubed/issues/277#issuecomment-1648567431 - should have been added in #7019 - [ ] ~~Tests added~~ (would go in cubed-xarray) - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` (new ABC method will be documented on chunked array types page automatically) 2023-07-25T17:22:07Z 2023-12-18T19:30:18Z 2023-12-18T19:30:18Z 2023-12-18T19:30:18Z 766da3480f50d7672fe1a7c1cdf3aa32d8181fcf     0 f41a35c45dfaf3f4bfc9b5bf14b88a75348d099d 2971994ef1dd67f44fe59e846c62b47e1e5b240b MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/8019  
1558999807 PR_kwDOAMm_X85c7HL_ 8319 closed 0 Move parallelcompat and chunkmanagers to NamedArray TomNicholas 35968931 @dcherian I got to this point before realizing that simply moving `parallelcompat.py` over isn't [what it says in the design doc](https://github.com/pydata/xarray/blob/main/design_notes/named_array_design_doc.md#appendix-implementation-details), which instead talks about > - Could this functionality be left in Xarray proper for now? Alternative array types like JAX also have some notion of "chunks" for parallel arrays, but the details differ in a number of ways from the Dask/Cubed. > - Perhaps variable.chunk/load methods should become functions defined in xarray that convert Variable objects. This is easy so long as xarray can reach in and replace `.data` I personally think that simply moving parallelcompat makes sense so long as you expect people to use chunked `NamedArray` objects. I see the chunked arrays as special cases of duck arrays, and my understanding is that `NamedArray` is supposed to have full support for duckarrays. cc @andersy005 - [x] As requested in #8238 - [ ] ~~Tests added~~ - [ ] ~~User visible changes (including notable bug fixes) are documented in `whats-new.rst`~~ - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-10-16T16:34:26Z 2024-02-12T22:09:24Z 2024-02-12T22:09:24Z 2024-02-12T22:09:24Z d64460795e406bc4a998e2ddae0054a1029d52a9     0 ea7feef45437b2f0b8a97aae61d4685cd7ee6eb9 3d490ec3f1cd0ac9114a5d270550ce6e7864ade7 MEMBER
{
    "enabled_by": {
        "login": "andersy005",
        "id": 13301940,
        "node_id": "MDQ6VXNlcjEzMzAxOTQw",
        "avatar_url": "https://avatars.githubusercontent.com/u/13301940?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/andersy005",
        "html_url": "https://github.com/andersy005",
        "followers_url": "https://api.github.com/users/andersy005/followers",
        "following_url": "https://api.github.com/users/andersy005/following{/other_user}",
        "gists_url": "https://api.github.com/users/andersy005/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/andersy005/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/andersy005/subscriptions",
        "organizations_url": "https://api.github.com/users/andersy005/orgs",
        "repos_url": "https://api.github.com/users/andersy005/repos",
        "events_url": "https://api.github.com/users/andersy005/events{/privacy}",
        "received_events_url": "https://api.github.com/users/andersy005/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Move parallelcompat and chunkmanagers to NamedArray (#8319)",
    "commit_message": "Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: Anderson Banihirwe <13301940+andersy005@users.noreply.github.com>\r\nCo-authored-by: Anderson Banihirwe <axbanihirwe@ualr.edu>\r\n"
}
xarray 13221727 https://github.com/pydata/xarray/pull/8319  
1584712126 PR_kwDOAMm_X85edMm- 8404 closed 0 Hypothesis strategy for generating Variable objects TomNicholas 35968931 Breaks out just the part of #6908 needed for generating arbitrary `xarray.Variable` objects. (so ignore the ginormous number of commits) EDIT: [Check out this test](https://github.com/pydata/xarray/pull/8404#discussion_r1382313965) which performs a mean on any subset of any Variable object! ```python In [36]: from xarray.testing.strategies import variables In [37]: variables().example() <xarray.Variable (ĭ: 3)> array([-2.22507386e-313-6.62447795e+016j, nan-6.46207519e+185j, -2.22507386e-309+3.33333333e-001j]) ``` @andersy005 @maxrjones @jhamman I thought this might be useful for the `NamedArray` testing. (xref #8370 and #8244) @keewis and @Zac-HD sorry for letting that PR languish for literally a year :sweat_smile: This PR addresses [your feedback about accepting a callable](https://github.com/pydata/xarray/pull/6908#discussion_r974956861) that returns a strategy generating arrays. That suggestion makes some things a bit more complex in user code but actually allows me to simplify the internals of the `variables` strategy significantly. I'm actually really happy with this PR - I think it solves what we were discussing, and is a sensible checkpoint to merge before going back to making strategies for generating composite objects like DataArrays/Datasets work. - [x] Closes part of #6911 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] New functions/methods are listed in `api.rst` 2023-11-02T17:04:03Z 2023-12-05T22:45:57Z 2023-12-05T22:45:57Z 2023-12-05T22:45:57Z ab6a2553e142e1d6f90548bba66b7f8ead483dca     0 ea9016231eb3b60dad0c09762f8bec64de69b0d9 1f94829eeae48e82858bee946c8bba92dab6c754 MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/8404  
1622468303 PR_kwDOAMm_X85gtObP 8491 closed 0 Warn on repeated dimension names during construction TomNicholas 35968931 <!-- Feel free to remove check-list items aren't relevant to your change --> - [x] Closes #2226 and #1499 by forbidding those situations (but we should leave #3731 open as the "official" place to discuss supporting repeated dimensions - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-11-29T19:30:51Z 2023-12-01T01:37:36Z 2023-12-01T00:40:18Z 2023-12-01T00:40:18Z d46c5b66463dfb0fed7e105514dda07e7ef4b5ef     0 2bd10afea413202dfba1058420f831b8e3a8abe2 8ea565deae1e7be3a1f48242f8394cb23d2ebe91 MEMBER
{
    "enabled_by": {
        "login": "andersy005",
        "id": 13301940,
        "node_id": "MDQ6VXNlcjEzMzAxOTQw",
        "avatar_url": "https://avatars.githubusercontent.com/u/13301940?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/andersy005",
        "html_url": "https://github.com/andersy005",
        "followers_url": "https://api.github.com/users/andersy005/followers",
        "following_url": "https://api.github.com/users/andersy005/following{/other_user}",
        "gists_url": "https://api.github.com/users/andersy005/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/andersy005/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/andersy005/subscriptions",
        "organizations_url": "https://api.github.com/users/andersy005/orgs",
        "repos_url": "https://api.github.com/users/andersy005/repos",
        "events_url": "https://api.github.com/users/andersy005/events{/privacy}",
        "received_events_url": "https://api.github.com/users/andersy005/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Warn on repeated dimension names during construction (#8491)",
    "commit_message": "Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\n"
}
xarray 13221727 https://github.com/pydata/xarray/pull/8491  
1626146371 PR_kwDOAMm_X85g7QZD 8500 closed 0 Deprecate ds.dims returning dict TomNicholas 35968931 - [x] Closes first step of #8496, would require another PR later to actually change the return type. Also really resolves the second half of #921. - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] ~~New functions/methods are listed in `api.rst`~~ 2023-12-01T18:29:28Z 2024-04-28T20:04:00Z 2023-12-06T17:52:24Z 2023-12-06T17:52:24Z 299abd6276a4c10a84cb8081fb157cabfba070f6     0 ddbab7214622e382c2a4dd7a51721a5394500f3b 3fc0ee5b4f7a03568115ced1b4ee8c95301529dc MEMBER
{
    "enabled_by": {
        "login": "dcherian",
        "id": 2448579,
        "node_id": "MDQ6VXNlcjI0NDg1Nzk=",
        "avatar_url": "https://avatars.githubusercontent.com/u/2448579?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/dcherian",
        "html_url": "https://github.com/dcherian",
        "followers_url": "https://api.github.com/users/dcherian/followers",
        "following_url": "https://api.github.com/users/dcherian/following{/other_user}",
        "gists_url": "https://api.github.com/users/dcherian/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/dcherian/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/dcherian/subscriptions",
        "organizations_url": "https://api.github.com/users/dcherian/orgs",
        "repos_url": "https://api.github.com/users/dcherian/repos",
        "events_url": "https://api.github.com/users/dcherian/events{/privacy}",
        "received_events_url": "https://api.github.com/users/dcherian/received_events",
        "type": "User",
        "site_admin": false
    },
    "merge_method": "squash",
    "commit_title": "Deprecate ds.dims returning dict (#8500)",
    "commit_message": "* raise FutureWarning\r\n\r\n* change some internal instances of ds.dims -> ds.sizes\r\n\r\n* improve clarity of which unexpected errors were raised\r\n\r\n* whatsnew\r\n\r\n* return a class which warns if treated like a Mapping\r\n\r\n* fix failing tests\r\n\r\n* avoid some warnings in the docs\r\n\r\n* silence warning caused by #8491\r\n\r\n* fix another warning\r\n\r\n* typing of .get\r\n\r\n* fix various uses of ds.dims in tests\r\n\r\n* fix some warnings\r\n\r\n* add test that FutureWarnings are correctly raised\r\n\r\n* more fixes to avoid warnings\r\n\r\n* update tests to avoid warnings\r\n\r\n* yet more fixes to avoid warnings\r\n\r\n* also warn in groupby.dims\r\n\r\n* change groupby tests to match\r\n\r\n* update whatsnew to include groupby deprecation\r\n\r\n* filter warning when we actually test ds.dims\r\n\r\n* remove error I used for debugging\r\n\r\n---------\r\n\r\nCo-authored-by: Deepak Cherian <dcherian@users.noreply.github.com>"
}
xarray 13221727 https://github.com/pydata/xarray/pull/8500  
1631588815 PR_kwDOAMm_X85hQBHP 8525 closed 0 Remove PR labeler bot TomNicholas 35968931 RIP - [x] Closes #8524 2023-12-06T02:31:56Z 2023-12-06T02:45:46Z 2023-12-06T02:45:41Z 2023-12-06T02:45:41Z ce1af977b1330fd8e60660777e864325c2b1f198     0 f8de2d302e15901eea0433a7b2e911560cc825e6 ab6a2553e142e1d6f90548bba66b7f8ead483dca MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/8525  
1658330289 PR_kwDOAMm_X85i2Byx 8573 closed 0 ddof vs correction kwargs in std/var TomNicholas 35968931 - [x] Attempt to closes issue described in https://github.com/pydata/xarray/issues/8566#issuecomment-1870472827 - [x] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` 2023-12-27T18:10:52Z 2024-04-04T16:46:55Z 2024-04-04T16:46:55Z   13221641d4d24400d9122837d99be2c6f4196b8f     0 d3aedd44fc4e9a522ed45ffa67afc397f4fe2a80 03ec3cb4d3fc97dd31b2269887ddc63a13ee518c MEMBER   xarray 13221727 https://github.com/pydata/xarray/pull/8573  

Next page

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [pull_requests] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [state] TEXT,
   [locked] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [body] TEXT,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [merged_at] TEXT,
   [merge_commit_sha] TEXT,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [draft] INTEGER,
   [head] TEXT,
   [base] TEXT,
   [author_association] TEXT,
   [auto_merge] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [url] TEXT,
   [merged_by] INTEGER REFERENCES [users]([id])
);
CREATE INDEX [idx_pull_requests_merged_by]
    ON [pull_requests] ([merged_by]);
CREATE INDEX [idx_pull_requests_repo]
    ON [pull_requests] ([repo]);
CREATE INDEX [idx_pull_requests_milestone]
    ON [pull_requests] ([milestone]);
CREATE INDEX [idx_pull_requests_assignee]
    ON [pull_requests] ([assignee]);
CREATE INDEX [idx_pull_requests_user]
    ON [pull_requests] ([user]);
Powered by Datasette · Queries took 60.732ms · About: xarray-datasette