docs: def comic_archive_compress(args):
      """
      Called back by every optimization inside a comic archive.
  
      When they're all done it creates the new archive and cleans up.
      """
      try:
          filename, old_format, settings, nag_about_gifs = args
          Settings.update(settings)
          tmp_dir = _get_archive_tmp_dir(filename)
  
          # archive into new filename
          new_filename = files.replace_ext(filename, _NEW_ARCHIVE_SUFFIX)
  
          _comic_archive_write_zipfile(new_filename, tmp_dir)
  
          # Cleanup tmpdir
          if os.path.isdir(tmp_dir):
              if Settings.verbose:
                  print('.', end='')
              shutil.rmtree(tmp_dir)
          if Settings.verbose:
              print('done.')
  
          report_stats = files.cleanup_after_optimize(
              filename, new_filename, old_format, _CBZ_FORMAT)
          report_stats.nag_about_gifs = nag_about_gifs
          stats.report_saved(report_stats)
          return report_stats
      except Exception as exc:
          print(exc)
          traceback.print_exc(exc)
          raise exc