Raise if Index.create_variables returns more variables than passed in through set_xindex#10503
Merged
dcherian merged 5 commits intopydata:mainfrom Jul 9, 2025
Merged
Raise if Index.create_variables returns more variables than passed in through set_xindex#10503dcherian merged 5 commits intopydata:mainfrom
Index.create_variables returns more variables than passed in through set_xindex#10503dcherian merged 5 commits intopydata:mainfrom
Conversation
Contributor
|
Thanks! given the discussion on the issue, can you change to raise an error if extra variables are returned please? That will be a good improvement until we decide to change behaviour |
Contributor
Author
|
@dcherian I have already implemented it accordingly, as I after then commented (#10499 (comment)) on issue too. I think you can review it. |
create_variables returns more variables than passed in through set_xindex
create_variables returns more variables than passed in through set_xindexIndex.create_variables returns more variables than passed in through set_xindex
Contributor
|
Nice, can you add a test to https://github.com/pydata/xarray/blob/main/xarray/tests/test_indexes.py please |
Contributor
Author
|
@dcherian i have added the tests. |
dcherian
reviewed
Jul 8, 2025
dcherian
reviewed
Jul 8, 2025
dcherian
reviewed
Jul 8, 2025
dcherian
reviewed
Jul 8, 2025
dcherian
reviewed
Jul 8, 2025
dcherian
reviewed
Jul 8, 2025
dcherian
reviewed
Jul 9, 2025
2 tasks
dcherian
added a commit
to jsignell/xarray
that referenced
this pull request
Jul 18, 2025
* main: (94 commits) Restructure API documentation into organized sections (pydata#10540) Fix convert calendar with different dimension name (pydata#10544) Fix kerchunk error in docs build (pydata#10545) Call super().__init__() in st.SearchStrategy subclasses (pydata#10543) CI: update actions location (pydata#10529) meta: Fix labeler topic-documentation (pydata#10524) drop_vars: use emit_user_level_warning (pydata#10528) Pydap flaky tests (pydata#10525) Remove test skip (pydata#10523) Improve warning message and tests for timedelta decoding (pydata#10508) Add dev whats-new (pydata#10522) Add release notes for v2025.07.1 (pydata#10520) Updates for Zarr 3 Dtypes (pydata#10456) Update Custom Indexes section in api.rst (pydata#10517) Expression not assigned (pydata#10507) Raise if `Index.create_variables` returns more variables than passed in through `set_xindex` (pydata#10503) Allow setting (or skipping) new indexes in open_dataset (pydata#8051) doc: add Pandas(Multi)Index to api reference (pydata#10515) Update pre-commit hooks (pydata#10510) Update pre-commit ruff legacy alias (pydata#10511) ...
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.
whats-new.rstPreviously,
set_xindexsilently ignored any extra variables returned by custom indexes'create_variablesmethod, only adding variables that matched the original coordinate names. This prevented custom indexes from providing additional computed variables, limiting their usefulness for advanced indexing scenarios like weather forecasting where derived coordinates are needed.This change modifies
set_xindexindataset.pyto add all variables returned bycreate_variables(), not just those matching coordinate names. The implementation simply iterates through all returned variables instead of filtering by coordinate names.The fix enables custom indexes to provide computed variables while maintaining full backward compatibility. Existing code continues to work unchanged, but custom indexes can now return additional variables that will be properly added to the dataset, resolving the silent ignoring behavior that was confusing to users.