code: def _new_tileables(self, inputs, kws=None, **kw):
      # Override this method to automatically decide the output type,
      # when `labels` is a list, we will set `output_types` as series,
      # otherwise it will be a scalar.
      output_types = getattr(self, "_output_types", None)
      shape = kw.pop("shape", None)
      is_scalar = not isinstance(self._labels, list)
      if not output_types:
          output_types = (
              [OutputType.scalar] if is_scalar else [OutputType.series]
          )
          self.output_types = output_types
      if shape is None:
          shape = () if is_scalar else ((len(self._labels)),)
          kw["shape"] = shape
      if not is_scalar:
          index_value = kw.pop("index_value", None) or parse_index(
              pd.Index(self._labels)
          )
          kw["index_value"] = index_value
      return super()._new_tileables(inputs, kws=kws, **kw)
  
imports: import itertools
  from numbers import Integral
  import pandas
  import numpy
  from ...None import opcodes
  from ...config import options
  from ...core import ENTITY_TYPE, OutputType, recursive_tile
  from ...serialization.serializables import AnyField, Int32Field, BoolField
  from ...tensor.core import TENSOR_TYPE, TENSOR_CHUNK_TYPE
  from ...tensor.datasource import tensor
  from ...utils import has_unknown_shape
  from ..align import align_dataframe_series, align_dataframe_dataframe
  from ..core import SERIES_TYPE, SERIES_CHUNK_TYPE, DATAFRAME_TYPE, DATAFRAME_CHUNK_TYPE, is_chunk_meta_lazy
  from ..merge import DataFrameConcat
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ..utils import parse_index, in_range_index
  from .utils import calc_columns_index
label_desc: Use image node_id 6 for calling the SeriesIndex obj's underlying member method code with example usage: obj._new_tileables(inputs, kws) and returns: super