code: def stop(self):
          
          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
docs: 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.