class_docstr: An object that stores necessary information for saving and loading
  checkpoints.
  
  Args:
      attack_args (textattack.AttackArgs): Arguments of the original attack
      attack_log_manager (textattack.loggers.AttackLogManager): Object for storing attack results
      worklist (deque[int]): List of examples that will be attacked. Examples are represented by their indicies within the dataset.
      worklist_candidates (int): List of other available examples we can attack. Used to get the next dataset element when `attack_n=True`.
      chkpt_time (float): epoch time representing when checkpoint was made
code: def save(self, quiet=False):
      file_name = "{}.ta.chkpt".format(int(self.time * 1000))
      if not os.path.exists(self.attack_args.checkpoint_dir):
          os.makedirs(self.attack_args.checkpoint_dir)
      path = os.path.join(self.attack_args.checkpoint_dir, file_name)
      if not quiet:
          print("\n\n" + "=" * 125)
          logger.info(
              'Saving checkpoint under "{}" at {} after {} attacks.'.format(
                  path, self.datetime, self.results_count
              )
          )
          print("=" * 125 + "\n")
      with open(path, "wb") as f:
          pickle.dump(self, f, protocol=pickle.HIGHEST_PROTOCOL)
  
imports: import copy
  import datetime
  import os
  import pickle
  import time
  import textattack
  from textattack.attack_results import FailedAttackResult, MaximizedAttackResult, SkippedAttackResult, SuccessfulAttackResult
  from textattack.shared import logger, utils
label_desc: Use image node_id 11 for calling the AttackCheckpoint obj's underlying member method code with example usage: obj.save(quiet) without return types