code: def send(
      self,
      edge_index,
      message_func,
      src_feat=None,
      dst_feat=None,
      edge_feat=None,
      node_feat=None,
  ):
      if (
          src_feat is not None or dst_feat is not None
      ) and node_feat is not None:
          raise ValueError(
              "Can not use src/dst feat and node feat at the same time"
          )
  
      src_feat_temp = {}
      dst_feat_temp = {}
      if node_feat is not None:
          assert isinstance(
              node_feat, dict
          ), "The input node_feat must be a dict"
          src_feat_temp.update(node_feat)
          dst_feat_temp.update(node_feat)
      else:
          if src_feat is not None:
              assert isinstance(
                  src_feat, dict
              ), "The input src_feat must be a dict"
              src_feat_temp.update(src_feat)
          if dst_feat is not None:
              assert isinstance(
                  dst_feat, dict
              ), "The input dst_feat must be a dict"
              dst_feat_temp.update(dst_feat)
  
      edge_feat_temp = {}
      if edge_feat is not None:
          assert isinstance(
              edge_feat, dict
          ), "The input edge_feat must be a dict"
          edge_feat_temp.update(edge_feat)
  
      src = edge_index[:, 0]
      dst = edge_index[:, 1]
  
      src_feat = op.RowReader(src_feat_temp, src)
      dst_feat = op.RowReader(dst_feat_temp, dst)
      msg = message_func(src_feat, dst_feat, edge_feat_temp)
  
      if not isinstance(msg, dict):
          raise TypeError(
              "The outputs of the %s function is expected to be a dict, but got %s"
              % (message_func.__name__, type(msg))
          )
      return msg
  
file_path: PGL/examples/gnn_depoly/models/base_conv.py
imports: import pdb
  import paddle
  import paddle.nn
  from pgl.utils import op
  from pgl.message import Message
  from pgl.utils.helper import unique_segment
label_desc: Use image node_id 3 for calling the BaseConv obj's underlying member method code with example usage: obj.send(edge_index, message_func, src_feat, dst_feat, edge_feat, node_feat) and returns: msg