class_docstr: Allow users to create a specific file as a signal to pause
  and iteratively debug the training.
  Once the :meth:`trigger` method is called, it detects whether the file exists, and opens an
  IPython/pdb shell if yes.
  In the shell, ``self`` is this callback, ``self.trainer`` is the trainer, and
  from that you can access everything else.
  
  Example:
  
  .. code-block:: none
  
      callbacks=[InjectShell('/path/to/pause-training.tmp'), ...]
  
      # the following command will pause the training and start a shell when the epoch finishes:
      $ touch /path/to/pause-training.tmp
code: def _trigger(self):
      if os.path.isfile(self._file):
          logger.info(
              "File {} exists, entering shell.".format(self._file)
          )
          self._inject()
  
imports: import numpy
  import os
  import time
  from collections import deque
  from ..utils import logger
  from ..utils.utils import humanize_time_delta
  from .base import Callback
label_desc: Use image node_id 2 for calling the InjectShell obj's underlying member method code with example usage: obj._trigger() without return types