def from_array(
        self, data: duckarray[Any, Any], chunks: _Chunks, **kwargs: Any
    ) -> T_ChunkedArray:
        """
        Create a chunked array from a non-chunked numpy-like array.

        Generally input should have a ``.shape``, ``.ndim``, ``.dtype`` and support numpy-style slicing.

        Called when the .chunk method is called on an xarray object that is not already chunked.
        Also called within open_dataset (when chunks is not None) to create a chunked array from
        an xarray lazily indexed array.

        Parameters
        ----------
        data : array_like
        chunks : int, tuple
            How to chunk the array.

        See Also
        --------
        dask.array.from_array
        cubed.from_array
        """
        raise NotImplementedError()

        Create a chunked array from a non-chunked numpy-like array.

        Generally input should have a ``.shape``, ``.ndim``, ``.dtype`` and support numpy-style slicing.

        Called when the .chunk method is called on an xarray object that is not already chunked.
        Also called within open_dataset (when chunks is not None) to create a chunked array from
        an xarray lazily indexed array.

        Parameters
        ----------
        data : array_like
        chunks : int, tuple
            How to chunk the array.

        See Also
        --------
        dask.array.from_array
        cubed.from_array
        
xarray/namedarray/parallelcompat.py