code: def _get_chunk_size(
      a: TileableType, chunk_size: chunk_size_type
  ) -> Tuple[Tuple[int], ...]:
      if isinstance(a, DATAFRAME_TYPE):
          itemsize = max(getattr(dt, "itemsize", 8) for dt in a.dtypes)
      else:
          itemsize = a.dtype.itemsize
      return get_nsplits(a, chunk_size, itemsize)
  
file_path: mars/mars/dataframe/base/rechunk.py
imports: from typing import Tuple
  import numpy
  import pandas
  from ...None import opcodes
  from ...core import OutputType
  from ...serialization.serializables import AnyField
  from ...tensor.rechunk.core import get_nsplits, gen_rechunk_infos, chunk_size_type
  from ...typing import TileableType
  from ...utils import has_unknown_shape
  from ..initializer import DataFrame, Series, Index
  from ..operands import DataFrameOperand, DataFrameOperandMixin, DATAFRAME_TYPE
  from ..utils import indexing_index_value, merge_index_value
label_desc: Use image node_id 1 for calling a global function with example usage: _get_chunk_size(a, chunk_size) and returns: get_nsplits