html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/4118#issuecomment-905427176,https://api.github.com/repos/pydata/xarray/issues/4118,905427176,IC_kwDOAMm_X84197jo,4160723,2021-08-25T11:47:10Z,2021-08-25T11:47:10Z,MEMBER,"Great work @TomNicholas! For rich/html reprs, I think that we could take much inspiration from some of the dask reprs shown in this [blog post](https://blog.dask.org/2021/08/23/gsoc-2021-project). I haven't looked at your repository in detail yet, but I have one general question about the design: what is the rationale of having two separate classes `DataTree` and `DataNode`? Could those classes be merged somehow? To me it seems that any node could be the root of a (sub)tree. `h5py` has a separate `File` object that [does double duty as the HDF5 root group, and serves as entry point into the file](https://docs.h5py.org/en/stable/high/group.html), but in the case of Xarray maybe this is less relevant since Xarray object are abstract data containers? Zarr (abstract data store) has no such separate class and uses a regular [`zarr.hierarchy.Group` as the root](https://zarr.readthedocs.io/en/stable/tutorial.html#groups). ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,628719058 https://github.com/pydata/xarray/issues/4118#issuecomment-801785278,https://api.github.com/repos/pydata/xarray/issues/4118,801785278,MDEyOklzc3VlQ29tbWVudDgwMTc4NTI3OA==,4160723,2021-03-18T09:54:42Z,2021-03-18T09:54:42Z,MEMBER,"FWIW, a while ago I wrote a mock-up (and probably outdated) `DatasetNode` class: https://gist.github.com/benbovy/92e7c76220af1aaa4b3a0b65374e233a ([nbviewer link](https://nbviewer.jupyter.org/gist/benbovy/92e7c76220af1aaa4b3a0b65374e233a))","{""total_count"": 3, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 3, ""rocket"": 0, ""eyes"": 0}",,628719058