docs: def end_subdivision():
      """
      End a user-induced timing subdivision, returning the previous level in
      the timing hierarchy as the target of timing commands such as stamp().
      Includes a call to stop(); a previous call to stop() is OK.
  
      Returns:
          None
  
      Raises:
          GTimerError: If current subdivision was not induced by user.
          LoopError: If current timer is in a timed loop.
      """
      if not f.t.is_user_subdvsn:
          raise GTimerError('Attempted to end a subdivision not started by user.')
      if f.t.in_loop:
          raise LoopError('Cannot close a timer while it is in timed loop.')
      _close_subdivision()