docs: def process_data(data, models):
          """ Convert ``data`` to processed data using ``models``.
  
          Data from dictionary ``data`` 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`.
          """
          pdata = gvar.BufferDict()
          for m in MultiFitter.flatten_models(models):
              pdata[m.datatag] = (
                  m.builddata(data) if m.ncg <= 1 else
                  MultiFitter.coarse_grain(m.builddata(data), ncg=m.ncg)
                  )
          return pdata