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 __init__(
      self,
      attack_args,
      attack_log_manager,
      worklist,
      worklist_candidates,
      chkpt_time=None,
  ):
      assert isinstance(
          attack_args, textattack.AttackArgs
      ), "`attack_args` must be of type `textattack.AttackArgs`."
      assert isinstance(
          attack_log_manager, textattack.loggers.AttackLogManager
      ), "`attack_log_manager` must be of type `textattack.loggers.AttackLogManager`."
  
      self.attack_args = copy.deepcopy(attack_args)
      self.attack_log_manager = attack_log_manager
      self.worklist = worklist
      self.worklist_candidates = worklist_candidates
      if chkpt_time:
          self.time = chkpt_time
      else:
          self.time = time.time()
  
      self._verify()
  
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 1 to create a new AttackCheckpoint object  with example: obj = AttackCheckpoint(attack_args, attack_log_manager, worklist, worklist_candidates, chkpt_time)