Skip to content

Commit 0753803

Browse files
committed
Inherit __array__ from ExplicitlyIndexed
1 parent 201eeba commit 0753803

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

xarray/core/indexing.py

+4-10
Original file line numberDiff line numberDiff line change
@@ -443,13 +443,13 @@ class ExplicitlyIndexed:
443443

444444
__slots__ = ()
445445

446+
def __array__(self, dtype=None):
447+
return np.asarray(self.get_duck_array(), dtype=dtype)
448+
446449

447450
class ExplicitlyIndexedNDArrayMixin(NDArrayMixin, ExplicitlyIndexed):
448451
__slots__ = ()
449452

450-
def __array__(self, dtype=None):
451-
return np.asarray(self.get_duck_array(), dtype=dtype)
452-
453453
def get_duck_array(self):
454454
key = BasicIndexer((slice(None),) * self.ndim)
455455
return self[key]
@@ -465,7 +465,7 @@ def __init__(self, array, indexer_cls=BasicIndexer):
465465
self.indexer_cls = indexer_cls
466466

467467
def __array__(self, dtype=None):
468-
return np.asarray(self.array, dtype=dtype)
468+
return np.asarray(self.get_duck_array(), dtype=dtype)
469469

470470
def get_duck_array(self):
471471
return self.array.get_duck_array()
@@ -531,9 +531,6 @@ def shape(self) -> tuple[int, ...]:
531531
shape.append(k.size)
532532
return tuple(shape)
533533

534-
def __array__(self, dtype=None):
535-
return np.asarray(self.get_duck_array(), dtype=dtype)
536-
537534
def get_duck_array(self):
538535
array = as_indexable(self.array)
539536
array = array[self.key]
@@ -646,9 +643,6 @@ def _ensure_copied(self):
646643
self.array = as_indexable(np.array(self.array))
647644
self._copied = True
648645

649-
def __array__(self, dtype=None):
650-
return np.asarray(self.array, dtype=dtype)
651-
652646
def get_duck_array(self):
653647
return self.array.get_duck_array()
654648

0 commit comments

Comments
 (0)