docstr: Generate chunk graphs
  
  Returns
  -------
  chunk_graph_generator: Generator
       Chunk graphs.
docstr_tok: ["Generate","chunk","graphs","Returns","--","--","--","-","chunk_graph_generator",":","Generator","Chunk","graphs","."]
code: def tile(self, tileable_graph: TileableGraph) -> Iterable[ChunkGraph]:
      """
      Generate chunk graphs
  
      Returns
      -------
      chunk_graph_generator: Generator
           Chunk graphs.
      """
      from ....optimization.logical.chunk import (
          optimize as optimize_chunk_graph,
      )
  
      self._fill_fetch_tileable_with_chunks(tileable_graph)
      # iterative chunk graph builder
      chunk_graph_builder = ChunkGraphBuilder(
          tileable_graph,
          fuse_enabled=self._task.fuse_enabled,
          tile_context=self.tile_context,
          tiler_cls=self._get_tiler_cls(),
      )
      optimize = self._config.optimize_chunk_graph
      for t in tileable_graph:
          if hasattr(t.op, "logic_key") and t.op.logic_key is None:
              t.op.logic_key = t.op.get_logic_key()
      for chunk_graph in chunk_graph_builder.build():
          if len(chunk_graph) == 0:
              continue
          # optimize chunk graph
          if optimize:
              self.chunk_optimization_records_list.append(
                  optimize_chunk_graph(chunk_graph)
              )
          yield chunk_graph
  
imports: import asyncio
  import logging
  from functools import partial
  from typing import Callable, Dict, List, Iterable, Set
  from ....config import Config
  from ....core import TileableGraph, ChunkGraph, ChunkGraphBuilder, TileContext
  from ....core.graph.builder.chunk import Tiler, _TileableHandler
  from ....core.operand import Fetch, ShuffleFetchType
  from ....resource import Resource
  from ....typing import BandType, TileableType, ChunkType
  from ...subtask import Subtask, SubtaskGraph
  from ..analyzer import GraphAnalyzer
  from ..core import Task, MapReduceInfo
label_desc: Use image node_id 5 for calling the TaskPreprocessor obj's underlying member method code with example usage: obj.tile(tileable_graph) without return types