docs: def build_multi_point_source_node(multi_point_source):
      """
      Parses a point source to a Node class
  
      :param point_source:
          MultiPoint source as instance of :class:
          `openquake.hazardlib.source.point.MultiPointSource`
      :returns:
          Instance of :class:`openquake.baselib.node.Node`
      """
      # parse geometry
      pos = []
      for p in multi_point_source.mesh:
          pos.append(p.x)
          pos.append(p.y)
      mesh_node = Node('gml:posList', text=pos)
      upper_depth_node = Node(
          "upperSeismoDepth", text=multi_point_source.upper_seismogenic_depth)
      lower_depth_node = Node(
          "lowerSeismoDepth", text=multi_point_source.lower_seismogenic_depth)
      source_nodes = [Node(
          "multiPointGeometry",
          nodes=[mesh_node, upper_depth_node, lower_depth_node])]
      # parse common distributed attributes
      source_nodes.extend(get_distributed_seismicity_source_nodes(
          multi_point_source))
      return Node("multiPointSource",
                  get_source_attributes(multi_point_source),
                  nodes=source_nodes)