code: def fetch(self, offsets: List[int] = None, sizes: List[int] = None):
      if offsets is None:
          offsets = self._chunk_op_key_to_offsets
  
      if sizes is None:
          sizes = 1 * 1024**2  # 1M each time
  
      result: dict = self._session.fetch_tileable_op_logs(
          self._tileable_op_key, offsets=offsets, sizes=sizes
      )
  
      if result is None:
          return
  
      for chunk_key, chunk_result in result.items():
          self._chunk_op_key_to_result[chunk_key] = chunk_result["log"]
          self._chunk_op_key_to_offsets[chunk_key] = chunk_result[
              "offset"
          ]
  
imports: import functools
  import io
  import os
  import sys
  import textwrap
  import weakref
  from typing import List, Callable, Type
  from ..typing import OperandType, TileableType, SessionType
  from .context import Context
label_desc: Use image node_id 6 for calling the LogFetcher obj's underlying member method code with example usage: obj.fetch(offsets, sizes) without return types