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
        """

        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
        
tensorpack/predict/base.py