code: def sqrt(
      data: AnnData,
      copy: bool = False,
      chunked: bool = False,
      chunk_size: Optional[int] = None,
  ) -> Optional[AnnData]:
      
      if isinstance(data, AnnData):
          adata = data.copy() if copy else data
          if chunked:
              for chunk, start, end in adata.chunked_X(chunk_size):
                  adata.X[start:end] = sqrt(chunk)
          else:
              adata.X = sqrt(data.X)
          return adata if copy else None
      X = data  # proceed with data matrix
      if not issparse(X):
          return np.sqrt(X)
      else:
          return X.sqrt()
docs: Square root the data matrix.
  
      Computes :math:`X = \\sqrt(X)`.
  
      Parameters
      ----------
      data
          The (annotated) data matrix of shape ``n_obs`` × ``n_vars``.
          Rows correspond to cells and columns to genes.
      copy
          If an :class:`~scanpy.api.AnnData` is passed,
          determines whether a copy is returned.
      chunked
          Process the data matrix in chunks, which will save memory.
          Applies only to :class:`~anndata.AnnData`.
      chunk_size
          ``n_obs`` of the chunks to process the data in.
  
      Returns
      -------
      Returns or updates `data`, depending on `copy`.