code: def match_operand(self, op: OperandType) -> bool:
      node = op.outputs[0]
      input_node = self._graph.predecessors(node)[0]
      successors = self._graph.successors(input_node)
      return self._all_successor_head_pushdown(successors)
  
file_path: mars/mars/optimization/logical/common/head.py
imports: from typing import List
  from ....core import OperandType, TileableType, CHUNK_TYPE
  from ....dataframe.base.value_counts import DataFrameValueCounts
  from ....dataframe.datasource.core import HeadOptimizedDataSource
  from ....dataframe.sort.core import DataFrameSortOperand
  from ....dataframe.utils import parse_index
  from ....utils import implements
  from ..core import OperandBasedOptimizationRule, OptimizationRecord, OptimizationRecordType
label_desc: Use image node_id 1 for calling the HeadPushDown obj's underlying member method code with example usage: obj.match_operand(op) and returns: self