Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate indexing and broadcasting logic to xarray.namedarray (Part 1) #8856

Draft
wants to merge 21 commits into
base: backend-indexing
Choose a base branch
from

Conversation

andersy005
Copy link
Member

@andersy005 andersy005 commented Mar 19, 2024

This pull request is the first part of migrating the indexing and broadcasting logic from xarray.core.variable to xarray.namedarray. I intend to open follow-up pull requests to address additional changes related to this refactoring, as outlined in the proposal for decoupling lazy indexing functionality from NamedArray.

  • Closes #xxxx
  • Tests added
  • User visible changes (including notable bug fixes) are documented in whats-new.rst
  • New functions/methods are listed in api.rst

andersy005 and others added 3 commits April 9, 2024 17:43
* add .oindex and .vindex to BackendArray

* Add support for .oindex and .vindex in H5NetCDFArrayWrapper

* Add support for .oindex and .vindex in NetCDF4ArrayWrapper, PydapArrayWrapper, NioArrayWrapper, and ZarrArrayWrapper

* add deprecation warning

* Fix deprecation warning message formatting

* add tests

* Update xarray/core/indexing.py

Co-authored-by: Deepak Cherian <[email protected]>

* Update ZarrArrayWrapper class in xarray/backends/zarr.py

Co-authored-by: Deepak Cherian <[email protected]>

---------

Co-authored-by: Deepak Cherian <[email protected]>
@andersy005 andersy005 changed the base branch from main to backend-indexing April 30, 2024 12:47
andersy005 and others added 6 commits April 30, 2024 05:52
* origin/main:
  clean up the upstream-dev setup script (pydata#8986)
  Skip flaky `test_open_mfdataset_manyfiles` test (pydata#8989)
  Remove `.drop` warning allow (pydata#8988)
  Add notes on when to add ignores to warnings (pydata#8987)
  Docstring and documentation improvement for the Dataset class (pydata#8973)
…dexing adapters and explicitly indexed arrays (pydata#8870)

* pass key tuple to indexing adapters and explicitly indexed arrays

* update indexing in StackedBytesArray

* Update indexing in StackedBytesArray

* Add _IndexerKey type to _typing.py

* Update indexing in StackedBytesArray

* use tuple indexing in test_backend_array_deprecation_warning

* Add support for CompatIndexedTuple in explicit indexing adapter

This commit updates the `explicit_indexing_adapter` function to accept both
`ExplicitIndexer` and the new `CompatIndexedTuple`. The `CompatIndexedTuple` is
designed to facilitate the transition towards using raw tuples by carrying
additional metadata about the indexing type (basic, vectorized, or outer).

* remove unused code

* type hint fixes

* fix docstrings

* fix tests

* fix docstrings

* Apply suggestions from code review

Co-authored-by: Deepak Cherian <[email protected]>

* update docstrings and pass tuples directly

* Some test cleanup

* update docstring

* use `BasicIndexer` instead of `CompatIndexedTuple`

* support explicit indexing with tuples

* fix mypy errors

* remove unused IndexerMaker

* Update LazilyIndexedArray._updated_key to support explicit indexing with tuples

---------

Co-authored-by: Deepak Cherian <[email protected]>
Co-authored-by: Deepak Cherian <[email protected]>
* origin/main:
  call `np.cross` with 3D vectors only (pydata#8993)
  Mark `test_use_cftime_false_standard_calendar_in_range` as an expected failure (pydata#8996)
  Migration of datatree/ops.py -> datatree_ops.py (pydata#8976)
  avoid a couple of warnings in `polyfit` (pydata#8939)
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.

1 participant