code: def execute(cls, ctx, op):
      if op.stage == OperandStage.map:
          cls._execute_map(ctx, op)
      elif op.stage == OperandStage.reduce:
          cls._execute_reduce(ctx, op)
      else:
          cls._execute_single(ctx, op)
  
imports: from typing import List, Tuple
  import numpy
  from ....None import opcodes
  from ....core import recursive_tile
  from ....core.operand import OperandStage
  from ....serialization.serializables import FieldTypes, KeyField, AnyField, Float16Field, Int32Field, TupleField
  from ....utils import has_unknown_shape, require_module, ensure_own_data
  from ....config import options
  from ...operands import TensorMapReduceOperand, TensorOperandMixin, TensorShuffleProxy
  from ...array_utils import as_same_device, device, cp
  from ...core import TensorOrder
  from ...datasource.array import tensor
label_desc: Use image node_id 23 for calling the TensorPdist obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types