code: def _encode_dask_array(values, uniques=None, encode=False, onehot_dtype=None):
      
  
      if uniques is None:
          if encode and onehot_dtype:
              raise ValueError("Cannot use 'encode` and 'onehot_dtype' simultaneously.")
          if encode:
              uniques, encoded = da.unique(values, return_inverse=True)
              return uniques, encoded
          else:
              return da.unique(values)
  
      if encode:
          if onehot_dtype:
              dtype = onehot_dtype
              new_axis = 1
              chunks = values.chunks + (len(uniques),)
          else:
              dtype = np.dtype("int")
              new_axis = None
              chunks = values.chunks
  
          return (
              uniques,
              values.map_blocks(
                  _check_and_search_block,
                  uniques,
                  onehot_dtype=onehot_dtype,
                  dtype=dtype,
                  new_axis=new_axis,
                  chunks=chunks,
              ),
          )
      else:
          return uniques
docs: One-hot or label encode a dask array.
  
      Parameters
      ----------
      values : da.Array, shape [n_samples,]
      unqiques : np.ndarray, shape [n_uniques,]
      encode : bool, default False
          Whether to encode the values (True) or just discover the uniques.
      onehot_dtype : np.dtype, optional
          Optional dtype for the resulting one-hot encoded array. This changes
          the shape, dtype, and underlying storage of the returned dask array.
  
          ======= ================= =========================
          thing   onehot_dtype=None onehot_dtype=onehot_dtype
          ======= ================= =========================
          shape   (n_samples,)      (n_samples, len(uniques))
          dtype   np.intp           onehot_dtype
          storage np.ndarray        scipy.sparse.csr_matrix
          ======= ================= =========================
  
      Returns
      -------
      uniques : ndarray
          The discovered uniques (uniques=None) or just `uniques`
      encoded : da.Array, optional
          The encoded values. Only returend when ``encode=True``.