class_docstr: Timer object can be used to measure (average) time between events.
  
  Args:
      average: if True, then when ``.value()`` method is called, the returned value
          will be equal to total time measured, divided by the value of internal counter.
  
  Attributes:
      total (float): total time elapsed when the Timer was running (in seconds).
      step_count (int): internal counter, useful to measure average time, e.g. of processing a single batch.
          Incremented with the ``.step()`` method.
      running (bool): flag indicating if timer is measuring time.
  
  Note:
      When using ``Timer(average=True)`` do not forget to call ``timer.step()`` every time an event occurs. See
      the examples below.
  
  Examples:
      Measuring total time of the epoch:
  
      .. code-block:: python
  
          from ignite.handlers import Timer
          import time
          work = lambda : time.sleep(0.1)
          idle = lambda : time.sleep(0.1)
          t = Timer(average=False)
          for _ in range(10):
              work()
              idle()
  
          t.value()
          # 2.003073937026784
  
      Measuring average time of the epoch:
  
      .. code-block:: python
  
          t = Timer(average=True)
          for _ in range(10):
              work()
              idle()
              t.step()
  
          t.value()
          # 0.2003182829997968
  
      Measuring average time it takes to execute a single ``work()`` call:
  
      .. code-block:: python
  
          t = Timer(average=True)
          for _ in range(10):
              t.resume()
              work()
              t.pause()
              idle()
              t.step()
  
          t.value()
          # 0.10016545779653825
  
      Using the Timer to measure average time it takes to process a single batch of examples:
  
      .. code-block:: python
  
          from ignite.engine import Engine, Events
          from ignite.handlers import Timer
  
          trainer = Engine(training_update_function)
          timer = Timer(average=True)
          timer.attach(
              trainer,
              start=Events.STARTED,
              resume=Events.ITERATION_STARTED,
              pause=Events.ITERATION_COMPLETED,
              step=Events.ITERATION_COMPLETED
          )
docstr: Pause the current running timer.
code: def pause(self, *args: Any) -> None:
      """Pause the current running timer."""
      if self.running:
          self.total += self._elapsed()
          self.running = False
  
file_path: ignite/ignite/handlers/timing.py
imports: from time import perf_counter
  from typing import Any, Optional
  from ignite.engine import Engine, Events
label_desc: Use image node_id 4 for calling the Timer obj's underlying member method code with example usage: obj.pause() without return types