code: def record_tileable_tile_info(
      self,
      tileable: TileableType,
      curr_iter: int,
      generated_chunks: List[ChunkType],
  ):
      if tileable not in self._tileable_to_tile_infos:
          self._tileable_to_tile_infos[tileable] = []
      prev_progress = sum(
          info.tile_progress
          for info in self._tileable_to_tile_infos[tileable]
      )
      curr_progress = self.get_progress(tileable)
      infos = self._tileable_to_tile_infos[tileable]
      infos.append(
          _TileableTileInfo(
              curr_iter=curr_iter,
              tile_progress=curr_progress - prev_progress,
              generated_chunks=generated_chunks,
          )
      )
  
imports: import dataclasses
  import functools
  from typing import Callable, Dict, Generator, Iterable, List, Optional, Set, Type, Union
  from ....core import FUSE_CHUNK_TYPE, CHUNK_TYPE, TILEABLE_TYPE
  from ....typing import EntityType, TileableType, ChunkType
  from ....utils import copy_tileables, build_fetch
  from ...entity.tileables import handler
  from ...mode import enter_mode
  from ..entity import TileableGraph, ChunkGraph
  from .base import AbstractGraphBuilder
label_desc: Use image node_id 7 for calling the TileContext obj's underlying member method code with example usage: obj.record_tileable_tile_info(tileable, curr_iter, generated_chunks) without return types