docs: def _compile_models(models):
          """ Convert ``models`` into a list of tasks.
  
          Each task is tuple ``(name, data)`` where ``name`` indicates the task
          task and ``data`` is the relevant data for that task.
  
          Supported tasks and data:
  
              - ``'fit'`` and list of models
              -  ``'update-kargs'`` and ``None``
              - ``'update-prior'`` and ``None``
              - ``'wavg'`` and number of (previous) fits to average
  
          """
          tasklist = []
          for m in models:
              if isinstance(m, MultiFitterModel):
                  tasklist += [('fit', [m])]
                  tasklist += [('update-prior', None)]
              elif hasattr(m, 'keys'):
                  tasklist += [('update-kargs', m)]
              elif isinstance(m, tuple):
                  tasklist += [('fit', list(m))]
                  tasklist += [('update-prior', None)]
              elif isinstance(m, list):
                  for sm in m:
                      if isinstance(sm, MultiFitterModel):
                          tasklist += [('fit', [sm])]
                      elif isinstance(sm, tuple):
                          tasklist += [('fit', list(sm))]
                      else:
                          raise ValueError(
                              'type {} not allowed in sublists '.format(
                                  str(type(sm))
                                  )
                              )
                  tasklist += [('wavg', len(m))]
                  tasklist += [('update-prior', None)]
              else:
                  raise RuntimeError('bad model list')
          return tasklist