Skip to content

Conversation

aladinor
Copy link
Contributor

@aladinor aladinor commented Aug 1, 2025

  • Add is_data_empty property to check if node contains data variables with actual data
  • Add prune() method to remove empty nodes while preserving tree structure
  • Include comprehensive tests covering basic pruning, intermediate nodes, and filtering scenarios
  • Useful for cleaning up DataTree after time-based filtering operations
  • Closes Add .prune() method to remove empty nodes from DataTree after filtering operations #10590
  • Tests added
  • User visible changes (including notable bug fixes) are documented in whats-new.rst

│                                                                                                                                                                                                                           │
│   - Add is_data_empty property to check if node contains data variables with actual data                                                                                                                                  │
│   - Add prune() method to remove empty nodes while preserving tree structure                                                                                                                                              │
│   - Include comprehensive tests covering basic pruning, intermediate nodes, and filtering scenarios                                                                                                                       │
│   - Useful for cleaning up DataTree after time-based filtering operations
@github-actions github-actions bot added the topic-DataTree Related to the implementation of a DataTree class label Aug 1, 2025
@aladinor aladinor changed the title Add DataTree.is_data_empty property and .prune() method … Add DataTree.prune() method … Aug 5, 2025
@aladinor aladinor requested a review from TomNicholas August 6, 2025 11:39
Copy link
Member

@TomNicholas TomNicholas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you also add a sentence to the end of this section of the documentation just saying something like "If you want to filter out empty nodes you can use .prune()", with a link to the API docs.

@aladinor aladinor requested a review from TomNicholas August 6, 2025 14:11
@TomNicholas TomNicholas added the plan to merge Final call for comments label Aug 11, 2025
Copy link
Member

@shoyer shoyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thank you!

@TomNicholas TomNicholas merged commit ef180b8 into pydata:main Aug 13, 2025
37 checks passed
@TomNicholas TomNicholas deleted the feature/datatree-prune-method branch August 13, 2025 18:29
dcherian added a commit to dhruvak001/xarray that referenced this pull request Aug 24, 2025
* main: (46 commits)
  use the new syntax of ignoring bots (pydata#10668)
  modification methods on `Coordinates` (pydata#10318)
  Silence warnings from test_tutorial.py (pydata#10661)
  test: update write_empty test for zarr 3.1.2 (pydata#10665)
  Bump actions/checkout from 4 to 5 in the actions group (pydata#10652)
  Add load_datatree function (pydata#10649)
  Support compute=False from DataTree.to_netcdf (pydata#10625)
  Fix typos (pydata#10655)
  In case of misconfiguration of dataset.encoding `unlimited_dims` warn instead of raise (pydata#10648)
  fix ``auto_complex`` for ``open_datatree`` (pydata#10632)
  Fix bug indexing with boolean scalars (pydata#10635)
  Improve DataTree typing (pydata#10644)
  Update Cartopy and Iris references (pydata#10645)
  Empty release notes (pydata#10642)
  release notes for v2025.08.0 (pydata#10641)
  Fix `ds.merge` to prevent altering original object depending on join value (pydata#10596)
  Add asynchronous load method (pydata#10327)
  Add DataTree.prune() method              … (pydata#10598)
  Avoid refining parent dimensions in NetCDF files (pydata#10623)
  clarify lazy behaviour and eager loading chunks=None in open_*-functions (pydata#10627)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plan to merge Final call for comments topic-DataTree Related to the implementation of a DataTree class
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add .prune() method to remove empty nodes from DataTree after filtering operations
3 participants