Fix: pass ds_data as dictionary in read_schism_nc to circumvent xarray guard on xr.Dataset parameter#7
Draft
aesgeorges wants to merge 2 commits into
Draft
Conversation
…y guard on xr.Dataset parameter
Building the SxDataset from ``dict(ds_data.data_vars)`` drops the source Dataset's global attributes unless they are forwarded explicitly. This forwards the attributes and test makes sure attrs exist and come back the same.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Calling
sx.read_schism_nc(grid, ds_data)raises:Root
In
read_schism_nc, ds_data (anxr.Dataset) is passed as positional argument toSxDatasetwhich forwards it via*argsthroughux.UxDataset.__init__down toxr.Dataset.__init__, where it lands in the data_vars parameter.Newer versions of xarray (here 2026.4.0) added an explicit isinstance guard:
The error message is misleading however, as using ds_data.copy() instead in
read_schism_nccreates anotherxr.Dataset, triggering the isinstance guard anyway.Fix
Passing the data as a dictionary circumvents the guard, with dimension coordinates (such as time) being preserved.