docs: def get_distributed_seismicity_source_nodes(source):
      """
      Returns list of nodes of attributes common to all distributed seismicity
      source classes
  
      :param source:
          Seismic source as instance of :class:
          `openquake.hazardlib.source.area.AreaSource` or :class:
          `openquake.hazardlib.source.point.PointSource`
      :returns:
          List of instances of :class:`openquake.baselib.node.Node`
      """
      source_nodes = []
      #  parse msr
      source_nodes.append(
          Node("magScaleRel",
               text=source.magnitude_scaling_relationship.__class__.__name__))
      # Parse aspect ratio
      source_nodes.append(
          Node("ruptAspectRatio", text=source.rupture_aspect_ratio))
      # Parse MFD
      source_nodes.append(obj_to_node(source.mfd))
      # Parse nodal plane distribution
      source_nodes.append(
          build_nodal_plane_dist(source.nodal_plane_distribution))
      # Parse hypocentral depth distribution
      source_nodes.append(
          build_hypo_depth_dist(source.hypocenter_distribution))
      return source_nodes