Skip to content

Support nested Zarr datasets - #114

Merged
forman merged 7 commits into
mainfrom
konstntokas/support_nested_zarr
Nov 6, 2026
Merged

forman merged 7 commits into
mainfrom
konstntokas/support_nested_zarr

Conversation

@konstntokas

@konstntokas konstntokas commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Added support for nested Zarr structures represented by xarray.DataTree, including atomic rollback of complete DataTree slices and optional per-group variable encoding configuration.

Closes #113

Checklist (strike out non-applicable):

  • Changes documented in CHANGES.md
  • Related issue exists and is referred to in the PR description and CHANGES.md
  • Added docstrings and API docs for any new/modified user-facing classes and functions
  • Changes/features documented in docs/*
  • Unit-tests adapted/added for changes/features
  • Test coverage remains or increases (target 100%)

@codecov

codecov Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (38a530e) to head (a148775).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #114   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           30        30           
  Lines         1467      1559   +92     
=========================================
+ Hits          1467      1559   +92     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@konstntokas
konstntokas force-pushed the konstntokas/support_nested_zarr branch from 67b18a6 to 52e8d3e Compare November 3, 2026 09:43
@forman forman changed the title Konstntokas/support nested zarr Support nested Zarr datasets Nov 3, 2026
backup

backup

ready for review

add issue number

ruff
@konstntokas
konstntokas force-pushed the konstntokas/support_nested_zarr branch from 13e93fc to 700b83a Compare November 3, 2026 13:09
@konstntokas
konstntokas marked this pull request as ready for review November 3, 2026 13:45
@konstntokas
konstntokas requested a review from forman November 3, 2026 13:45

@forman forman left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice. I only have minor suggestions.

Comment thread docs/cli.md Resolved
Comment thread docs/config.md Outdated

Type _string_.
The fully qualified name of a class or function that receives a slice item as argument(s) and provides the slice dataset. If a class is given, it must be derived from `zappend.api.SliceSource`. If the function is a context manager, it must yield an `xarray.Dataset`. If a plain function is given, it must return any valid slice item type. Refer to the user guide for more information.
The fully qualified name of a class or function that receives a slice item as argument(s) and provides a slice object. If a class is given, it must be derived from `zappend.api.SliceSource`. If the function is a context manager, it must yield an `xarray.Dataset` or `xarray.DataTree`. If a plain function is given, it must return any valid slice item type. Refer to the user guide for more information.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do not exceed 80 characters in a line whenever possible.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This is the case in the entire config.md. I applied changes to the entire docs directory so that we do not exceed 89 characters.

Comment thread zappend/config/config.py Outdated
return self._config.get("variables") or {}

@property
def group_variables(self) -> dict[str, dict[str, Any]]:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Avoid Any whenever possible and replace it by any type or type union that is more specific than Any and represents a variable-definition (override).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This come from

@property
def variables(self) -> dict[str, Any]:

I change both to Sequence | dict (see docs for variables)

Comment thread zappend/config/config.py Resolved
Comment thread zappend/config/schema.py Resolved
Comment thread zappend/processor.py Resolved
konstntokas and others added 5 commits November 5, 2026 08:12
Co-authored-by: Norman Fomferra <norman.fomferra@brockmann-consult.de>
Co-authored-by: Norman Fomferra <norman.fomferra@brockmann-consult.de>
Co-authored-by: Norman Fomferra <norman.fomferra@brockmann-consult.de>
@konstntokas
konstntokas requested a review from forman November 5, 2026 07:52
@forman
forman merged commit c086d18 into main Nov 6, 2026
5 checks passed
@konstntokas
konstntokas deleted the konstntokas/support_nested_zarr branch November 6, 2026 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support nested Zarr structures

2 participants