From 7bb738f520fb98ff691bbe95530c61a5da288440 Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 12:22:13 -0400 Subject: [PATCH 01/19] add DeprecationWarning on import --- datatree/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/datatree/__init__.py b/datatree/__init__.py index 3b97ea9d..70f1c2f1 100644 --- a/datatree/__init__.py +++ b/datatree/__init__.py @@ -1,3 +1,12 @@ +import warnings + +warnings.warn( + "The repository `xarray-contrib/datatree` has been archived! It is no longer maintained as of October 2024. " \ + "Datatree functionality has been migrated upstream to `pydata/xarray`, so please use `xarray.DataTree` instead. " \ + "To help you migrate there is a guide at https://github.com/pydata/xarray/blob/main/DATATREE_MIGRATION_GUIDE.md", + DeprecationWarning, +) + # import public API from .datatree import DataTree from .extensions import register_datatree_accessor From 0191f7048238f28507543a018a8a855906dfb1da Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 12:36:30 -0400 Subject: [PATCH 02/19] big wrarning in README --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 43d73a1d..bc861358 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,17 @@ that was more flexible than a single `xarray.Dataset` object. The initial motivation was to represent netCDF files / Zarr stores with multiple nested groups in a single in-memory object, but `datatree.DataTree` objects have many other uses. -### DEPRECATION NOTICE +# :rotating_light: :bell: :warning: NO LONGER MAINTAINED :rotating_light: :bell: :warning: -Datatree is in the process of being merged upstream into xarray (as of [v0.0.14](https://github.com/xarray-contrib/datatree/releases/tag/v0.0.14), see xarray issue [#8572](https://github.com/pydata/xarray/issues/8572)). We are aiming to preserve the record of contributions to this repository during the migration process. However whilst we will hapily accept new PRs to this repository, this repo will be deprecated and any PRs since [v0.0.14](https://github.com/xarray-contrib/datatree/releases/tag/v0.0.14) might be later copied across to xarray without full git attribution. +**This repository has been archived and the code is no longer maintained!** -Hopefully for users the disruption will be minimal - and just mean that in some future version of xarray you only need to do `from xarray import DataTree` rather than `from datatree import DataTree`. Once the migration is complete this repository will be archived. +Datatree has been [merged upstream into `pydata/xarray`](https://github.com/pydata/xarray/issues/8572), and released as of xarray version `2024.10.0`. -PLEASE RAISE NEW ISSUES ON THE XARRAY REPOSITORY UPSTREAM +There will be no further bugfixes or feature additions to this respository. + +Users of this repository should migrate to using `xarray.DataTree` instead, following the [Migration Guide](https://github.com/pydata/xarray/blob/main/DATATREE_MIGRATION_GUIDE.md). + +The information below is all outdated, and is left only for historical interest. ### Installation You can install datatree via pip: From 967662d50eafd57f61a607ae0d06ef43d4f0d3ed Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 12:40:33 -0400 Subject: [PATCH 03/19] add big fat warning to docs landing page too --- docs/source/index.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/source/index.rst b/docs/source/index.rst index a88a5747..b87d5c22 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -5,6 +5,18 @@ Datatree **Datatree is a prototype implementation of a tree-like hierarchical data structure for xarray.** +# !!! NO LONGER MAINTAINED !!! + +**This repository has been archived and the code is no longer maintained!** + +Datatree has been `merged upstream into pydata/xarray `_, and released as of xarray version `2024.10.0`. + +There will be no further bugfixes or feature additions to this respository. + +Users of this repository should migrate to using `xarray.DataTree` instead, following the `Migration Guide `_. + +The information below is all outdated, and is left only for historical interest. + Why Datatree? ~~~~~~~~~~~~~ From d241cdcca72e6ddf829b8007d8e35f879fbe0419 Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 12:43:02 -0400 Subject: [PATCH 04/19] try adding prolog to every page --- docs/source/conf.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8a9224de..b6d2804b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -30,6 +30,11 @@ parent = os.path.dirname(cwd) sys.path.insert(0, parent) +# -- Deprecation Warning banner ----------------------------------------------------- + +rst_prolog = """.. attention:: + This repository has been archived. Please use xarray.DataTree instead. +""" # -- General configuration ----------------------------------------------------- From 8d65f3106f4aacf85aa53d17832b488b65ac900f Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 13:09:16 -0400 Subject: [PATCH 05/19] rearrange emojis --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc861358..cd0b0f04 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ that was more flexible than a single `xarray.Dataset` object. The initial motivation was to represent netCDF files / Zarr stores with multiple nested groups in a single in-memory object, but `datatree.DataTree` objects have many other uses. -# :rotating_light: :bell: :warning: NO LONGER MAINTAINED :rotating_light: :bell: :warning: +# :rotating_light: :bell: :warning: NO LONGER MAINTAINED :warning: :bell: :rotating_light: **This repository has been archived and the code is no longer maintained!** From 64566c0f2543fe605ed244084f7182c771c6678b Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 14:47:09 -0400 Subject: [PATCH 06/19] try updating micromamba action --- .github/workflows/main.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 37034fc5..80eb6c14 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -25,12 +25,12 @@ jobs: - uses: actions/checkout@v4 - name: Create conda environment - uses: mamba-org/provision-with-micromamba@main + uses: mamba-org/setup-micromamba@v1 with: cache-downloads: true micromamba-version: 'latest' environment-file: ci/environment.yml - extra-specs: | + create-args: >- python=${{ matrix.python-version }} - name: Conda info From 9179cf2843f83350ac43da1ebf61c0aaab0fefc0 Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 14:48:32 -0400 Subject: [PATCH 07/19] also update micromamba for other job --- .github/workflows/main.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 80eb6c14..ab2f585c 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -70,12 +70,12 @@ jobs: - uses: actions/checkout@v4 - name: Create conda environment - uses: mamba-org/provision-with-micromamba@main + uses: mamba-org/setup-micromamba@v1 with: cache-downloads: true micromamba-version: 'latest' environment-file: ci/environment.yml - extra-specs: | + create-args: >- python=${{ matrix.python-version }} - name: Conda info From 019418ee37860fdf131f15d4a13844464dccef8c Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 14:52:49 -0400 Subject: [PATCH 08/19] fix expected repr diff --- datatree/tests/test_formatting.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/datatree/tests/test_formatting.py b/datatree/tests/test_formatting.py index 0f64644c..76c6e072 100644 --- a/datatree/tests/test_formatting.py +++ b/datatree/tests/test_formatting.py @@ -108,13 +108,13 @@ def test_diff_node_data(self): Data in nodes at position '/a' do not match: Data variables only on the left object: - v int64 1 + v int64 8B 1 Data in nodes at position '/a/b' do not match: Differing data variables: - L w int64 5 - R w int64 6""" + L w int64 8B 5 + R w int64 8B 6""" ) actual = diff_tree_repr(dt_1, dt_2, "equals") assert actual == expected From 1c48ed559ef706095d44799f422b2ecff39f4d56 Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 15:11:30 -0400 Subject: [PATCH 09/19] pin xarray --- ci/doc.yml | 2 +- ci/environment.yml | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/doc.yml b/ci/doc.yml index f3b95f71..20ced2d8 100644 --- a/ci/doc.yml +++ b/ci/doc.yml @@ -18,7 +18,7 @@ dependencies: - ipython - h5netcdf - zarr - - xarray + - "xarray>=2022.06.0, <=2024.09.0" - pip: - -e .. - sphinxext-rediraffe diff --git a/ci/environment.yml b/ci/environment.yml index fc0c6d97..1225a597 100644 --- a/ci/environment.yml +++ b/ci/environment.yml @@ -13,4 +13,4 @@ dependencies: - h5netcdf - zarr - pip: - - xarray>=2022.05.0.dev0 + - "xarray>=2022.06.0, <=2024.09.0" diff --git a/pyproject.toml b/pyproject.toml index 40f7d5a5..cda6015f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ classifiers = [ ] requires-python = ">=3.9" dependencies = [ - "xarray >=2023.12.0", + "xarray >=2023.12.0, <=2024.09.0", "packaging", ] dynamic = ["version"] From 0b23e9812d34926a274523ee0147f194b4e45414 Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Wed, 23 Oct 2024 15:14:35 -0400 Subject: [PATCH 10/19] pin to earlier version --- ci/doc.yml | 2 +- ci/environment.yml | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/doc.yml b/ci/doc.yml index 20ced2d8..e06994ea 100644 --- a/ci/doc.yml +++ b/ci/doc.yml @@ -18,7 +18,7 @@ dependencies: - ipython - h5netcdf - zarr - - "xarray>=2022.06.0, <=2024.09.0" + - "xarray>=2022.06.0, <=2024.07.0" - pip: - -e .. - sphinxext-rediraffe diff --git a/ci/environment.yml b/ci/environment.yml index 1225a597..0305daf9 100644 --- a/ci/environment.yml +++ b/ci/environment.yml @@ -13,4 +13,4 @@ dependencies: - h5netcdf - zarr - pip: - - "xarray>=2022.06.0, <=2024.09.0" + - "xarray>=2022.06.0, <=2024.07.0" diff --git a/pyproject.toml b/pyproject.toml index cda6015f..90e2c86f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ classifiers = [ ] requires-python = ">=3.9" dependencies = [ - "xarray >=2023.12.0, <=2024.09.0", + "xarray >=2023.12.0, <=2024.07.0", "packaging", ] dynamic = ["version"] From b53b96290d354eb182a804dc1eaa04de25441aaa Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 23 Oct 2024 21:14:38 +0200 Subject: [PATCH 11/19] upgrade the python version for docs --- ci/doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/doc.yml b/ci/doc.yml index e06994ea..99852c57 100644 --- a/ci/doc.yml +++ b/ci/doc.yml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - pip - - python>=3.9 + - python>=3.12 - netcdf4 - scipy - sphinx>=4.2.0 From aa59a954fb62770ec8ff12668bb54f4d7342aa11 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 23 Oct 2024 21:14:54 +0200 Subject: [PATCH 12/19] require a more recent version of `sphinx` --- ci/doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/doc.yml b/ci/doc.yml index 99852c57..84d7acf0 100644 --- a/ci/doc.yml +++ b/ci/doc.yml @@ -6,7 +6,7 @@ dependencies: - python>=3.12 - netcdf4 - scipy - - sphinx>=4.2.0 + - sphinx>=6.0.0 - sphinx-copybutton - sphinx-panels - sphinx-autosummary-accessors From 47110b4320424dfe6037c11045262c5a42535e30 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 23 Oct 2024 21:15:07 +0200 Subject: [PATCH 13/19] replace `sphinx-panels` with `sphinx-design` --- ci/doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/doc.yml b/ci/doc.yml index 84d7acf0..0978d95d 100644 --- a/ci/doc.yml +++ b/ci/doc.yml @@ -8,7 +8,7 @@ dependencies: - scipy - sphinx>=6.0.0 - sphinx-copybutton - - sphinx-panels + - sphinx-design - sphinx-autosummary-accessors - sphinx-book-theme >= 0.0.38 - nbsphinx From dbeb9582c42d18500cd2586deb91829144e4e257 Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 23 Oct 2024 21:23:55 +0200 Subject: [PATCH 14/19] disable the mypy hook --- .pre-commit-config.yaml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea73c38d..550706cc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,22 +31,22 @@ repos: # hooks: # - id: velin # args: ["--write", "--compact"] - - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.8.0 - hooks: - - id: mypy - # Copied from setup.cfg - exclude: "properties|asv_bench|docs" - additional_dependencies: [ - # Type stubs - types-python-dateutil, - types-pkg_resources, - types-PyYAML, - types-pytz, - # Dependencies that are typed - numpy, - typing-extensions>=4.1.0, - ] + # - repo: https://github.com/pre-commit/mirrors-mypy + # rev: v1.13.0 + # hooks: + # - id: mypy + # # Copied from setup.cfg + # exclude: "properties|asv_bench|docs" + # additional_dependencies: [ + # # Type stubs + # types-python-dateutil, + # types-pkg_resources, + # types-PyYAML, + # types-pytz, + # # Dependencies that are typed + # numpy, + # typing-extensions>=4.1.0, + # ] # run this occasionally, ref discussion https://github.com/pydata/xarray/pull/3194 # - repo: https://github.com/asottile/pyupgrade # rev: v1.22.1 From d9f6d4ae41201866f40e6dcfeacb3a80c1ac9d6b Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 23 Oct 2024 21:24:27 +0200 Subject: [PATCH 15/19] autoupdate hook versions --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 550706cc..15e9a8d4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: - id: isort # https://github.com/python/black#version-control-integration - repo: https://github.com/psf/black - rev: 23.12.1 + rev: 24.10.0 hooks: - id: black - repo: https://github.com/keewis/blackdoc @@ -23,7 +23,7 @@ repos: hooks: - id: blackdoc - repo: https://github.com/PyCQA/flake8 - rev: 6.1.0 + rev: 7.1.1 hooks: - id: flake8 # - repo: https://github.com/Carreau/velin From 6fa34975663a66bec560c9a250782ba9473c9ea0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 19:25:36 +0000 Subject: [PATCH 16/19] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- README.md | 2 +- datatree/__init__.py | 15 ++++++++------- datatree/datatree.py | 3 +-- datatree/formatting_html.py | 8 +++++--- datatree/iterators.py | 3 +-- datatree/tests/test_datatree.py | 6 ++---- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index cd0b0f04..bf400e4f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ that was more flexible than a single `xarray.Dataset` object. The initial motivation was to represent netCDF files / Zarr stores with multiple nested groups in a single in-memory object, but `datatree.DataTree` objects have many other uses. -# :rotating_light: :bell: :warning: NO LONGER MAINTAINED :warning: :bell: :rotating_light: +# :rotating_light: :bell: :warning: NO LONGER MAINTAINED :warning: :bell: :rotating_light: **This repository has been archived and the code is no longer maintained!** diff --git a/datatree/__init__.py b/datatree/__init__.py index 70f1c2f1..437339d1 100644 --- a/datatree/__init__.py +++ b/datatree/__init__.py @@ -1,12 +1,5 @@ import warnings -warnings.warn( - "The repository `xarray-contrib/datatree` has been archived! It is no longer maintained as of October 2024. " \ - "Datatree functionality has been migrated upstream to `pydata/xarray`, so please use `xarray.DataTree` instead. " \ - "To help you migrate there is a guide at https://github.com/pydata/xarray/blob/main/DATATREE_MIGRATION_GUIDE.md", - DeprecationWarning, -) - # import public API from .datatree import DataTree from .extensions import register_datatree_accessor @@ -14,6 +7,14 @@ from .mapping import TreeIsomorphismError, map_over_subtree from .treenode import InvalidTreeError, NotFoundInTreeError +warnings.warn( + "The repository `xarray-contrib/datatree` has been archived! It is no longer maintained as of October 2024. " + "Datatree functionality has been migrated upstream to `pydata/xarray`, so please use `xarray.DataTree` instead. " + "To help you migrate there is a guide at https://github.com/pydata/xarray/blob/main/DATATREE_MIGRATION_GUIDE.md", + DeprecationWarning, +) + + try: # NOTE: the `_version.py` file must not be present in the git repository # as it is generated by setuptools at install time diff --git a/datatree/datatree.py b/datatree/datatree.py index c86c2e2e..b29a3da5 100644 --- a/datatree/datatree.py +++ b/datatree/datatree.py @@ -177,8 +177,7 @@ def __getitem__(self, key: Hashable) -> DataArray: # type: ignore[misc] ... @overload - def __getitem__(self, key: Any) -> Dataset: - ... + def __getitem__(self, key: Any) -> Dataset: ... def __getitem__(self, key) -> DataArray: # TODO call the `_get_item` method of DataTree to allow path-like access to contents of other nodes diff --git a/datatree/formatting_html.py b/datatree/formatting_html.py index 4531f5ae..bebfa27c 100644 --- a/datatree/formatting_html.py +++ b/datatree/formatting_html.py @@ -22,9 +22,11 @@ def summarize_children(children: Mapping[str, Any]) -> str: lines_callback = lambda n, c, end: _wrap_repr(node_repr(n, c), end=end) children_html = "".join( - lines_callback(n, c, end=False) # Long lines - if i < N_CHILDREN - else lines_callback(n, c, end=True) # Short lines + ( + lines_callback(n, c, end=False) # Long lines + if i < N_CHILDREN + else lines_callback(n, c, end=True) + ) # Short lines for i, (n, c) in enumerate(children.items()) ) diff --git a/datatree/iterators.py b/datatree/iterators.py index 52ed8d22..a13dba95 100644 --- a/datatree/iterators.py +++ b/datatree/iterators.py @@ -60,8 +60,7 @@ def __next__(self) -> Iterator[Tree]: @staticmethod @abstractmethod - def _iter(children: List[Tree], filter_, stop, maxlevel) -> Iterator[Tree]: - ... + def _iter(children: List[Tree], filter_, stop, maxlevel) -> Iterator[Tree]: ... @staticmethod def _abort_at_level(level, maxlevel): diff --git a/datatree/tests/test_datatree.py b/datatree/tests/test_datatree.py index e9f373d7..9e6215a7 100644 --- a/datatree/tests/test_datatree.py +++ b/datatree/tests/test_datatree.py @@ -166,8 +166,7 @@ def test_assign_when_already_child_with_variables_name(self): dt.ds = new_ds -class TestGet: - ... +class TestGet: ... class TestGetItem: @@ -450,8 +449,7 @@ def test_setitem_dataarray_replace_existing_node(self): xrt.assert_identical(results.to_dataset(), expected) -class TestDictionaryInterface: - ... +class TestDictionaryInterface: ... class TestTreeFromDict: From 669a8bf610f32f2faae6813f768b13077569521c Mon Sep 17 00:00:00 2001 From: Justus Magin Date: Wed, 23 Oct 2024 21:27:44 +0200 Subject: [PATCH 17/19] ignore `flake8` errors that conflict with `black` --- .flake8 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.flake8 b/.flake8 index f1e3f927..d7bdd345 100644 --- a/.flake8 +++ b/.flake8 @@ -10,6 +10,8 @@ ignore = E731 # line break before binary operator W503 + E701 + E704 exclude= .eggs doc From 2ed21052465758bdabf595a480a5aed53e05369d Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Thu, 24 Oct 2024 18:03:42 -0400 Subject: [PATCH 18/19] update link in warning to release discussion upstream --- datatree/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datatree/__init__.py b/datatree/__init__.py index 437339d1..9705f44b 100644 --- a/datatree/__init__.py +++ b/datatree/__init__.py @@ -10,7 +10,7 @@ warnings.warn( "The repository `xarray-contrib/datatree` has been archived! It is no longer maintained as of October 2024. " "Datatree functionality has been migrated upstream to `pydata/xarray`, so please use `xarray.DataTree` instead. " - "To help you migrate there is a guide at https://github.com/pydata/xarray/blob/main/DATATREE_MIGRATION_GUIDE.md", + "To help you migrate a guide can be found by following https://github.com/pydata/xarray/discussions/9680", DeprecationWarning, ) From fe7e0c25753a541b145c25c5d90ef5b988cea7c9 Mon Sep 17 00:00:00 2001 From: TomNicholas Date: Thu, 24 Oct 2024 18:05:44 -0400 Subject: [PATCH 19/19] update links --- README.md | 2 +- docs/source/index.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf400e4f..7fd9cc62 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Datatree has been [merged upstream into `pydata/xarray`](https://github.com/pyda There will be no further bugfixes or feature additions to this respository. -Users of this repository should migrate to using `xarray.DataTree` instead, following the [Migration Guide](https://github.com/pydata/xarray/blob/main/DATATREE_MIGRATION_GUIDE.md). +Users of this repository should migrate to using `xarray.DataTree` instead, following the [Migration Guide](https://github.com/pydata/xarray/discussions/9680). The information below is all outdated, and is left only for historical interest. diff --git a/docs/source/index.rst b/docs/source/index.rst index b87d5c22..0398863e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,7 +13,7 @@ Datatree has been `merged upstream into pydata/xarray `_. +Users of this repository should migrate to using `xarray.DataTree` instead, following the `Migration Guide `_. The information below is all outdated, and is left only for historical interest.