code: def _update_result_meta(
      cls,
      chunk_to_result: Dict[Chunk, ExecutionChunkResult],
      tileable: TileableType,
  ):
      from ....dataframe.core import DATAFRAME_TYPE, SERIES_TYPE
      from ....tensor.core import TENSOR_TYPE
  
      chunks = [c.data for c in tileable.chunks]
      if isinstance(tileable, DATAFRAME_TYPE):
          for c in chunks:
              i, j = c.index
              meta = chunk_to_result[c].meta
              shape = meta.get("shape")
              update_shape = shape is None
              shape = shape if not update_shape else [None, None]
              if i > 0:
                  # update dtypes_value
                  c0j = chunk_to_result[tileable.cix[0, j].data].meta
                  meta["dtypes_value"] = c0j["dtypes_value"]
                  if update_shape:
                      shape[1] = c0j["shape"][1]
              if j > 0:
                  # update index_value
                  ci0 = chunk_to_result[tileable.cix[i, 0].data].meta
                  meta["index_value"] = ci0["index_value"]
                  if update_shape:
                      shape[0] = ci0["shape"][0]
              if update_shape:
                  meta["shape"] = tuple(shape)
      elif isinstance(tileable, SERIES_TYPE):
          first_meta = chunk_to_result[chunks[0]].meta
          for c in chunks:
              i = c.index[0]
              meta = chunk_to_result[c].meta
              if i > 0:
                  meta["name"] = first_meta["name"]
                  meta["dtype"] = first_meta["dtype"]
      elif isinstance(tileable, TENSOR_TYPE):
          ndim = tileable.ndim
          for i, c in enumerate(chunks):
              meta = chunk_to_result[c].meta
              if "shape" not in meta:
                  shape = []
                  for i, ind in enumerate(c.index):
                      ind0 = [0] * ndim
                      ind0[i] = ind
                      c0 = tileable.cix[tuple(ind0)].data
                      shape.append(chunk_to_result[c0].meta["shape"][i])
                  meta["shape"] = tuple(shape)
              if i > 0:
                  first = chunk_to_result[chunks[0]].meta
                  meta["dtype"] = first["dtype"]
                  meta["order"] = first["order"]
  
imports: import asyncio
  import logging
  import os
  import tempfile
  import time
  from typing import Dict, Iterator, Optional, List, Set
  from ....core import ChunkGraph, TileableGraph, Chunk, TileContext
  from ....core.operand import Fetch
  from ....metrics import Metrics
  from ....optimization.logical import OptimizationRecords
  from ....oscar.profiling import ProfilingData, MARS_ENABLE_PROFILING
  from ....typing import TileableType, ChunkType
  from ....utils import Timer
  from ...subtask import SubtaskResult, Subtask
  from ..core import Task, TaskResult, TaskStatus, new_task_id, MapReduceInfo
  from ..execution.api import TaskExecutor, ExecutionChunkResult
  from .preprocessor import TaskPreprocessor
label_desc: Use image node_id 12 for calling the TaskProcessor obj's underlying member method code with example usage: obj._update_result_meta(cls, chunk_to_result, tileable) without return types