docs: def extract_hcurves(dstore, what):
      """
      Extracts hazard curves. Use it as /extract/hcurves?kind=mean or
      /extract/hcurves?kind=rlz-0, /extract/hcurves?kind=stats,
      /extract/hcurves?kind=rlzs etc
      """
      info = get_info(dstore)
      if what == '':  # npz exports for QGIS
          sitecol = dstore['sitecol']
          mesh = get_mesh(sitecol, complete=False)
          dic = _get_dict(dstore, 'hcurves-stats', info['imtls'], info['stats'])
          yield from hazard_items(
              dic, mesh, investigation_time=info['investigation_time'])
          return
      params = parse(what, info)
      if 'imt' in params:
          [imt] = params['imt']
          slc = info['imtls'](imt)
      else:
          slc = ALL
      sids = params.get('site_id', ALL)
      if params['rlzs']:
          dset = dstore['hcurves-rlzs']
          for k in params['k']:
              yield 'rlz-%03d' % k, hdf5.extract(dset, sids, k, slc)[:, 0]
      else:
          dset = dstore['hcurves-stats']
          stats = list(info['stats'])
          for k in params['k']:
              yield stats[k], hdf5.extract(dset, sids, k, slc)[:, 0]
      yield from params.items()