id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 2266442492,PR_kwDOAMm_X85t4NhR,8976,Migration of datatree/ops.py -> datatree_ops.py,479480,closed,0,,,4,2024-04-26T20:14:11Z,2024-05-02T19:49:39Z,2024-05-02T19:49:39Z,CONTRIBUTOR,,0,pydata/xarray/pulls/8976,"I considered wedging this into core/ops.py, but it didn't look like it fit there. This is a basic lift and shift from datatree_/ops.py to core/datatree_ops.py I did fix the document addendum injection and added a couple of tests. - [x] Contributes to migration step for miscellaneous modules in Track merging datatree into xarray #8572 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8976/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2266443797,PR_kwDOAMm_X85t4Nzs,8977,preliminary pr to examine the DataTree injected docs.,479480,open,0,,,5,2024-04-26T20:15:22Z,2024-04-26T22:36:00Z,,CONTRIBUTOR,,1,pydata/xarray/pulls/8977,"This PR should never be merged, it is opened only to run the build-the-docs with the changes from #8976 I just wanted to make sure I could point to what the final doc pages will look like when datatree is released. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8977/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2248692681,PR_kwDOAMm_X85s8dDt,8953,stop pruning datatree_ directory from distribution,479480,closed,0,,,0,2024-04-17T16:14:13Z,2024-04-23T15:39:06Z,2024-04-23T15:35:20Z,CONTRIBUTOR,,0,pydata/xarray/pulls/8953,"This PR removes the directive that strips out the datatree_ directory from the xarray distribution. It also cleans a few typing errors and removes exceptions for the datatree_ directory for mypy. It does NOT remove the exception for pre-commit config. - [X] Closes #8768 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8953/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 1, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2257054431,I_kwDOAMm_X86Gh-rf,8963,datatree ops.py migration cleanup,479480,open,0,,,0,2024-04-22T17:06:36Z,2024-04-22T18:23:31Z,,CONTRIBUTOR,,,,"### What is your issue? During the 3/26/2024 design discussion meeting (#8747), we discussed the monkey patching of methods that was required to wrap datatree nodes with the desired Xarray API function. This was a primarily done as a necessity due to the datatree code not living in the xarray repository. The better implementation could be to add the wrapping to xarray's `generate_aggregations.py` module. The ultimate decision made by Stephan and Tom was to add this as a future issue (this one) and migrate the file as is for now. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8963/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 2187399013,I_kwDOAMm_X86CYQ9l,8836,DataTree should support Hashable names.,479480,open,0,,,0,2024-03-14T22:37:09Z,2024-03-15T04:57:44Z,,CONTRIBUTOR,,,,"### What is your issue? In porting xarray-contrib/datatree into pydata/xarray. [We discovered some type mismatches](https://github.com/pydata/xarray/pull/8789#discussion_r1508388168). The general feeling was that we should support Hashable in order to improve `DataTree` interactions with `Dataset` and `DataArray`s. The quick solution of changing the name type to Hashable in NamedNode fails quickly because of it's PathPurePath inheritance. This issue just tracks that we want to come back to this. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8836/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 2167879988,I_kwDOAMm_X86BNzk0,8807,Collection of breaking changes in Datatree occurring during the migration from xarray-contrib/datatree into pydata/xarray proper,479480,open,0,,,3,2024-03-04T22:14:10Z,2024-03-04T22:57:49Z,,CONTRIBUTOR,,,,"### What is your issue? This is an Issue to keep track of changes that have been made to DataTree from the initial migration ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8807/reactions"", ""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 2110363401,PR_kwDOAMm_X85llc-6,8688,datatree import (clean),479480,closed,0,,,4,2024-01-31T15:26:44Z,2024-03-01T11:00:48Z,2024-01-31T18:19:43Z,CONTRIBUTOR,,0,pydata/xarray/pulls/8688,"This is the exact same steps followed in #8656 But hopefully with a clean history. I am copying the notes from the previous PR below. https://github.com/flamingbear/rewritten-datatree is the version of datatree that was m erged in this PR. --- Previous PR notes This PR imports [xarray-contrib/datatree](https://github.com/xarray-contrib/datatree) and its history to [pydata/xarray/xarray/datatree_](https://github.com/pydata/xarray) Step one of issue #8572. This imports the datatree code without exposing `DataTree` as a public API. git filter repo https://github.com/newren/git-filter-repo was used to preserve some history for the merge. Datatree tags were renamed to `legacy-datatree-{tag}`: ``` shell git filter-repo --tag-rename '':'legacy-datatree-' ``` Links to [xarray-contrib/datatree](https://github.com/xarray-contrib/datatree) original PRs are preserved by rewriting the messages using a `replace-message` file. ``` text # standard github style pull request (#39) regex:\(#(\d+)\)==>https://github.com/xarray-contrib/datatree/pull/\1 # ""Merge pull request #11 from TomNicholas/single_datanode_class"" regex:pull request #(\d+)==>https://github.com/xarray-contrib/datatree/pull/\1 ``` Links to the [xarray-contrib/datatree](https://github.com/xarray-contrib/datatree) Issues are preserved with a `replace-text` file. ``` text # standard comment change "" # see issue #38"" regex:(\s*?#.*[ ])#(\d+)==>\1https://github.com/xarray-contrib/datatree/issues/\2 # also "" @pytest.mark.xfail(reason=""Indexing needs to return whole tree (GH #77)"")"" regex:(\(GH #(\d+)\))==>(GH https://github.com/xarray-contrib/datatree/issues/\2) ``` The datatree repo was relocated to a subdirectory ``` shell git-filter-repo --to-subdirectory xarray/datatree_ ``` and the prepared datatree repository was added as a remote and merged into xarray. ``` shell git merge prepared-datatree/main --no-commit --allow-unrelated-histories ``` This should allow work to begin on the rest of the steps in #8572 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8688/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2137443514,PR_kwDOAMm_X85nBoy_,8757,Migrate treenode module.,479480,closed,0,,,6,2024-02-15T21:04:11Z,2024-02-28T22:02:31Z,2024-02-27T16:40:19Z,CONTRIBUTOR,,0,pydata/xarray/pulls/8757,"Migrate datatree's treenode module the base class representing node of a tree, with methods for accessing nodes and traversal. - [X] completes step 2 `datatree/treenode.py` #8572 - [x] Tests added or updated - [N/A] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [X] Internal Changes (including notable bug fixes) are documented in `whats-new.rst` - [N/A] New functions/methods are listed in `api.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8757/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2115733488,PR_kwDOAMm_X85l4Aq8,8697,add open_datatree to xarray,479480,closed,0,,,18,2024-02-02T20:20:03Z,2024-02-14T23:41:03Z,2024-02-14T21:50:29Z,CONTRIBUTOR,,0,pydata/xarray/pulls/8697,"Draft: I'd like to open this up and start a discussion on a couple of things. Here is a first stab at adding open_datatree to the backend of xarray. 1. ~~I'm not sure which tests to migrate/write with this change. The only datatree tests that have open_datatree are the ones in tests/test_io.py. While those (and all of the datatree tests) run and pass, they are still located in _datatree, and they don't seem to fit in the test_backends.py. I do see that Tom did a good job of naming the tests so that they would fit with the existing tests in many places.~~ Migrated tests over into xarray/tests/datatree once approved and merged can be added into the existing tests where appropriate [(from Tom)](https://github.com/pydata/xarray/pull/8697#pullrequestreview-1860425936). 2. I was able to open datatrees with each of the engines, netcdf4, h5netcdf and zarr. 3. I haven't moved any documentation. I remember hearing that we could add it and mark it as experimental? Is that the correct way forward? No check boxes checked yet. - [ ] Closes part of first bullet of https://github.com/pydata/xarray/issues/8572 - [ ] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8697/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 1, ""eyes"": 0}",,,13221727,pull 2098617770,PR_kwDOAMm_X85k-Koy,8656,Datatree import,479480,closed,0,,,28,2024-01-24T16:17:02Z,2024-01-31T18:42:28Z,2024-01-31T18:20:19Z,CONTRIBUTOR,,0,pydata/xarray/pulls/8656,"This PR imports [xarray-contrib/datatree](https://github.com/xarray-contrib/datatree) and its history to [pydata/xarray/xarray/datatree_](https://github.com/pydata/xarray) Step one of issue #8572. This imports the datatree code without exposing `DataTree` as a public API. git filter repo https://github.com/newren/git-filter-repo was used to preserve some history for the merge. Datatree tags were renamed to `legacy-datatree-{tag}`: ``` shell git filter-repo --tag-rename '':'legacy-datatree-' ``` Links to [xarray-contrib/datatree](https://github.com/xarray-contrib/datatree) original PRs are preserved by rewriting the messages using a `replace-message` file. ``` text # standard github style pull request (#39) regex:\(#(\d+)\)==>https://github.com/xarray-contrib/datatree/pull/\1 # ""Merge pull request #11 from TomNicholas/single_datanode_class"" regex:pull request #(\d+)==>https://github.com/xarray-contrib/datatree/pull/\1 ``` Links to the [xarray-contrib/datatree](https://github.com/xarray-contrib/datatree) Issues are preserved with a `replace-text` file. ``` text # standard comment change "" # see issue #38"" regex:(\s*?#.*[ ])#(\d+)==>\1https://github.com/xarray-contrib/datatree/issues/\2 # also "" @pytest.mark.xfail(reason=""Indexing needs to return whole tree (GH #77)"")"" regex:(\(GH #(\d+)\))==>(GH https://github.com/xarray-contrib/datatree/issues/\2) ``` The datatree repo was relocated to a subdirectory ``` shell git-filter-repo --to-subdirectory xarray/datatree_ ``` and the prepared datatree repository was added as a remote and merged into xarray. ``` shell git merge prepared-datatree/main --no-commit --allow-unrelated-histories ``` This should allow work to begin on the rest of the steps in #8572 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8656/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 1, ""eyes"": 0}",,,13221727,pull