Uh oh!
There was an error while loading. Please reload this page.
Raise if Index.create_variables returns more variables than passed in through set_xindex - #10503
Conversation
dcherian
commented
Jul 7, 2025
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 |
@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_xindexcreate_variables returns more variables than passed in through set_xindexIndex.create_variables returns more variables than passed in through set_xindexdcherian
commented
Jul 8, 2025
Nice, can you add a test to https://github.com/pydata/xarray/blob/main/xarray/tests/test_indexes.py please |
dhruvak001
commented
Jul 8, 2025
@dcherian i have added the tests. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
* 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) ...
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.