<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def stop(self):
 """ Stops a paused pipeline. This will a trigger a ``StopIteration`` in the inputs of the pipeline. And retrieve the buffered results. This will stop all ``Pipers`` and ``NuMaps``. Python will not terminate cleanly if a pipeline is running or paused. """

        if self._started.isSet() and \
           not self._running.isSet() and \
           not self._pausing.isSet():
            # stops the dagger
            super(Plumber, self).stop()
            # disconnects all pipers
            self.disconnect()
            self.stats['run_time'] = time() - self.stats['start_time']
            self._started.clear()
        else:
            raise PlumberError