class_docstr: Protocol for numpy ndarray-like objects
  
  This is more stringent than :class:`numpy.typing.ArrayLike`, but guarantees
  access to shape, ndim and slicing.
class_docstr_tok: ["Protocol","for","numpy","ndarray-like","objects","This","is","more","stringent","than",":","class",":","`","numpy.typing.ArrayLike","`",",","but","guarantees","access","to","shape",",","ndim","and","slicing","."]
code: def __array__(
      self, dtype: None = ..., /
  ) -> np.ndarray[ty.Any, np.dtype[ty.Any]]:
      ...
  
imports: from __future__ import annotations
  import typing
  import warnings
  from contextlib import contextmanager
  from threading import RLock
  import numpy
  from .None import openers
  from .fileslice import canonical_slicers, fileslice
  from .volumeutils import apply_read_scaling, array_from_file
label_desc: Use image node_id 2 for calling the ArrayLike obj's underlying member method code with example usage: obj.__array__() without return types