old_contents: """
  :class:`~allennlp.common.tqdm.Tqdm` wraps tqdm so we can add configurable
  global defaults for certain tqdm parameters.
  """
  
  from tqdm import tqdm as _tqdm
  
  # This is neccesary to stop tqdm from hanging
  # when exceptions are raised inside iterators.
  # It should have been fixed in 4.2.1, but it still
  # occurs.
  # TODO(Mark): Remove this once tqdm cleans up after itself properly.
  # https://github.com/tqdm/tqdm/issues/469
  _tqdm.monitor_interval = 0
  
  
  class Tqdm:
      # These defaults are the same as the argument defaults in tqdm.
      default_mininterval: float = 0.1
  
      @staticmethod
      def set_default_mininterval(value: float) -> None:
          Tqdm.default_mininterval = value
  
      @staticmethod
      def set_slower_interval(use_slower_interval: bool) -> None:
          """
          If ``use_slower_interval`` is ``True``, we will dramatically slow down ``tqdm's`` default
          output rate.  ``tqdm's`` default output rate is great for interactively watching progress,
          but it is not great for log files.  You might want to set this if you are primarily going
          to be looking at output through log files, not the terminal.
          """
          if use_slower_interval:
              Tqdm.default_mininterval = 10.0
          else:
              Tqdm.default_mininterval = 0.1
  
      @staticmethod
      def tqdm(*args, **kwargs):
          new_kwargs = {"mininterval": Tqdm.default_mininterval, **kwargs}
  
          return _tqdm(*args, **new_kwargs)
  
new_contents: """
  :class:`~allennlp.common.tqdm.Tqdm` wraps tqdm so we can add configurable
  global defaults for certain tqdm parameters.
  """
  
  try:
      SHELL = str(type(get_ipython()))  # type:ignore # noqa: F821
  except:  # noqa: E261
      SHELL = ""
  
  if "zmqshell.ZMQInteractiveShell" in SHELL:
      from tqdm import tqdm_notebook as _tqdm
  else:
      from tqdm import tqdm as _tqdm
  
  # This is neccesary to stop tqdm from hanging
  # when exceptions are raised inside iterators.
  # It should have been fixed in 4.2.1, but it still
  # occurs.
  # TODO(Mark): Remove this once tqdm cleans up after itself properly.
  # https://github.com/tqdm/tqdm/issues/469
  _tqdm.monitor_interval = 0
  
  
  class Tqdm:
      # These defaults are the same as the argument defaults in tqdm.
      default_mininterval: float = 0.1
  
      @staticmethod
      def set_default_mininterval(value: float) -> None:
          Tqdm.default_mininterval = value
  
      @staticmethod
      def set_slower_interval(use_slower_interval: bool) -> None:
          """
          If ``use_slower_interval`` is ``True``, we will dramatically slow down ``tqdm's`` default
          output rate.  ``tqdm's`` default output rate is great for interactively watching progress,
          but it is not great for log files.  You might want to set this if you are primarily going
          to be looking at output through log files, not the terminal.
          """
          if use_slower_interval:
              Tqdm.default_mininterval = 10.0
          else:
              Tqdm.default_mininterval = 0.1
  
      @staticmethod
      def tqdm(*args, **kwargs):
          new_kwargs = {"mininterval": Tqdm.default_mininterval, **kwargs}
  
          return _tqdm(*args, **new_kwargs)
  
subject: Support tqdm in interactive shells (#3124)