docs: def _process_ups(ups):  # pragma: no cover
      """This function processes the UpdateInfo instances of the two
      undo stacks (clustering and cluster metadata) and concatenates them
      into a single UpdateInfo instance."""
      if len(ups) == 0:
          return
      elif len(ups) == 1:
          return ups[0]
      elif len(ups) == 2:
          up = ups[0]
          up.update(ups[1])
          return up
      else:
          raise NotImplementedError()