docs: def process_dataset(dataset, models, **kargs):
          """ Convert ``dataset`` to processed data using ``models``.
  
          :class:`gvar.dataset.Dataset` (or similar dictionary) object
          ``dataset`` is processed by each model in list ``models``,
          and the results collected into a new dictionary ``pdata`` for use in
          :meth:`MultiFitter.lsqfit` and :meth:`MultiFitter.chained_lsqft`.
          Assumes that the models have defined method
          :meth:`MultiFitterModel.builddataset`. Keyword arguments
          ``kargs`` are passed on to :func:`gvar.dataset.avg_data` when
          averaging the data.
          """
          dset = collections.OrderedDict()
          for m in MultiFitter.flatten_models(models):
              dset[m.datatag] = (
                  m.builddataset(dataset) if m.ncg <= 1 else
                  MultiFitter.coarse_grain(m.builddataset(dataset), ncg=m.ncg)
                  )
          return gvar.dataset.avg_data(dset, **kargs)