class_docstr: Evaluates how well a perturbed attacked_text object is achieving a
  specified goal.
  
  Args:
      model_wrapper (:class:`~textattack.models.wrappers.ModelWrapper`):
          The victim model to attack.
      maximizable(:obj:`bool`, `optional`, defaults to :obj:`False`):
          Whether the goal function is maximizable, as opposed to a boolean result of success or failure.
      query_budget (:obj:`float`, `optional`, defaults to :obj:`float("in")`):
          The maximum number of model queries allowed.
      model_cache_size (:obj:`int`, `optional`, defaults to :obj:`2**20`):
          The maximum number of items to keep in the model results cache at once.
class_docstr_tok: ["Evaluates","how","well","a","perturbed","attacked_text","object","is","achieving","a","specified","goal",".","Args",":","model_wrapper","(",":","class",":","`","~textattack.models.wrappers.ModelWrapper","`",")",":","The","victim","model","to","attack",".","maximizable","(",":","obj",":","`","bool","`",",","`","optional","`",",","defaults","to",":","obj",":","`","False","`",")",":","Whether","the","goal","function","is","maximizable",",","as","opposed","to","a","boolean","result","of","success","or","failure",".","query_budget","(",":","obj",":","`","float","`",",","`","optional","`",",","defaults","to",":","obj",":","`","float","(","``","in","''",")","`",")",":","The","maximum","number","of","model","queries","allowed",".","model_cache_size","(",":","obj",":","`","int","`",",","`","optional","`",",","defaults","to",":","obj",":","`","2","*","*","20","`",")",":","The","maximum","number","of","items","to","keep","in","the","model","results","cache","at","once","."]
docstr: Gets predictions for a list of ``AttackedText`` objects.
  
  Gets prediction from cache if possible. If prediction is not in
  the cache, queries model and stores prediction in cache.
docstr_tok: ["Gets","predictions","for","a","list","of","``","AttackedText","``","objects",".","Gets","prediction","from","cache","if","possible",".","If","prediction","is","not","in","the","cache",",","queries","model","and","stores","prediction","in","cache","."]
code: def _call_model(self, attacked_text_list):
      """Gets predictions for a list of ``AttackedText`` objects.
  
      Gets prediction from cache if possible. If prediction is not in
      the cache, queries model and stores prediction in cache.
      """
      if not self.use_cache:
          return self._call_model_uncached(attacked_text_list)
      else:
          uncached_list = []
          for text in attacked_text_list:
              if text in self._call_model_cache:
                  # Re-write value in cache. This moves the key to the top of the
                  # LRU cache and prevents the unlikely event that the text
                  # is overwritten when we store the inputs from `uncached_list`.
                  self._call_model_cache[text] = self._call_model_cache[
                      text
                  ]
              else:
                  uncached_list.append(text)
          uncached_list = [
              text
              for text in attacked_text_list
              if text not in self._call_model_cache
          ]
          outputs = self._call_model_uncached(uncached_list)
          for text, output in zip(uncached_list, outputs):
              self._call_model_cache[text] = output
          all_outputs = [
              self._call_model_cache[text]
              for text in attacked_text_list
          ]
          return all_outputs
  
imports: from abc import ABC, abstractmethod
  import lru
  import numpy
  import torch
  from textattack.goal_function_results.goal_function_result import GoalFunctionResultStatus
  from textattack.shared import validators
  from textattack.shared.utils import ReprMixin
label_desc: Use image node_id 15 for calling the GoalFunction obj's underlying member method code with example usage: obj._call_model(attacked_text_list) and returns: self, all_outputs