docs: def set_params(w, src):
      """
      Set source parameters.
      """
      params = extract_source_params(src)
      # this is done because for characteristic sources geometry is in
      # 'surface' attribute
      params.update(extract_geometry_params(src))
  
      mfd_pars, rate_pars = extract_mfd_params(src)
      params.update(mfd_pars)
      params.update(rate_pars)
  
      strikes, dips, rakes, np_weights = extract_source_nodal_planes(src)
      params.update(strikes)
      params.update(dips)
      params.update(rakes)
      params.update(np_weights)
  
      hds, hdsw = extract_source_hypocentral_depths(src)
      params.update(hds)
      params.update(hdsw)
  
      pstrikes, pdips = extract_source_planes_strikes_dips(src)
      params.update(pstrikes)
      params.update(pdips)
      params['sourcetype'] = striptag(src.tag)
      w.record(**params)