code: def get_fetch_op_cls(self, obj: ChunkType):
      from .shuffle import ShuffleProxy
  
      output_types = get_output_types(obj, unknown_as=OutputType.object)
      fetch_cls, fetch_shuffle_cls = get_fetch_class(output_types[0])
      if isinstance(self, ShuffleProxy):
          cls = fetch_shuffle_cls
      else:
          cls = fetch_cls
  
      def _inner(**kw):
          return cls(output_types=output_types, **kw)
  
      return _inner
  
imports: import sys
  from typing import Any, Callable, Dict, List, Tuple, Type, Union
  import numpy
  from ...metrics import Metrics
  from ...typing import TileableType, ChunkType, OperandType
  from ...utils import calc_data_size
  from ..context import Context
  from ..mode import is_eager_mode
  from ..entity import OutputType, ExecutableTuple, get_chunk_types, get_tileable_types, get_output_types, get_fetch_class
label_desc: Use image node_id 22 for calling the TileableOperandMixin obj's underlying member method code with example usage: obj.get_fetch_op_cls(obj) and returns: _inner, cls