docs: def extract_source_hypocentral_depths(src):
      """
      Extract source hypocentral depths.
      """
      if "pointSource" not in src.tag and "areaSource" not in src.tag:
          hds = dict([(key, None) for key, _ in HDEPTH_PARAMS])
          hdsw = dict([(key, None) for key, _ in HDW_PARAMS])
          return hds, hdsw
  
      tags = get_taglist(src)
      hdd_nodeset = src.nodes[tags.index("hypoDepthDist")]
      if len(hdd_nodeset) > MAX_HYPO_DEPTHS:
          raise ValueError("Number of hypocentral depths %s exceeds stated "
                           "maximum of %s" % (str(len(hdd_nodeset)),
                                              str(MAX_HYPO_DEPTHS)))
      if len(hdd_nodeset):
          hds = []
          hdws = []
          for hdd_node in hdd_nodeset:
              hds.append(float(hdd_node.attrib["depth"]))
              hdws.append(float(hdd_node.attrib["probability"]))
  
          hds = expand_src_param(hds, HDEPTH_PARAMS)
          hdsw = expand_src_param(hdws, HDW_PARAMS)
      else:
          hds = dict([(key, None) for key, _ in HDEPTH_PARAMS])
          hdsw = dict([(key, None) for key, _ in HDW_PARAMS])
  
      return hds, hdsw