docs: def walk_comic_archive(filename_full, image_format, optimize_after):
      """
      Optimize a comic archive.
  
      This is done mostly inline to use the master processes process pool
      for workers. And to avoid calling back up into walk from a dedicated
      module or format processor. It does mean that we block on uncompress
      and on waiting for the contents subprocesses to compress.
      """
      # uncompress archive
      tmp_dir, report_stats = comic.comic_archive_uncompress(filename_full,
                                                             image_format)
      if tmp_dir is None and report_stats:
          return Settings.pool.apply_async(_comic_archive_skip,
                                           args=report_stats)
  
      # optimize contents of archive
      archive_mtime = os.stat(filename_full).st_mtime
      result_set = walk_dir(tmp_dir, optimize_after, True, archive_mtime)
  
      # wait for archive contents to optimize before recompressing
      nag_about_gifs = False
      for result in result_set:
          res = result.get()
          nag_about_gifs = nag_about_gifs or res.nag_about_gifs
  
      # recompress archive
      args = (filename_full, image_format, Settings, nag_about_gifs)
      return Settings.pool.apply_async(comic.comic_archive_compress,
                                       args=(args,))