class_docstr: Base class for all async predictors. 
docstr: Args:
      dp (list): A datapoint as inputs. It could be either batched or not
          batched depending on the predictor implementation).
      callback: a thread-safe callback to get called with
          either outputs or (inputs, outputs), if `return_input` is True.
  Returns:
      concurrent.futures.Future: a Future of results
docstr_tok: ["Args",":","dp","(","list",")",":","A","datapoint","as","inputs",".","It","could","be","either","batched","or","not","batched","depending","on","the","predictor","implementation",")",".","callback",":","a","thread-safe","callback","to","get","called","with","either","outputs","or","(","inputs",",","outputs",")",",","if","`","return_input","`","is","True",".","Returns",":","concurrent.futures.Future",":","a","Future","of","results"]
code: def put_task(self, dp, callback=None):
      """
      Args:
          dp (list): A datapoint as inputs. It could be either batched or not
              batched depending on the predictor implementation).
          callback: a thread-safe callback to get called with
              either outputs or (inputs, outputs), if `return_input` is True.
      Returns:
          concurrent.futures.Future: a Future of results
      """
  
imports: from abc import ABCMeta, abstractmethod
  import six
  import tensorflow
  from ..input_source import PlaceholderInput
  from ..tfutils.common import get_tensors_by_names, get_op_tensor_name
  from ..tfutils.tower import PredictTowerContext
label_desc: Use image node_id 1 for calling the AsyncPredictorBase obj's underlying member method code with example usage: obj.put_task(dp, callback) without return types