def stop(self):
self.log.debug('<STR_LIT>' % repr(self))<EOL>self.log.debug('<STR_LIT>' % repr(self))<EOL>inputs = self.get_inputs()<EOL>for piper in inputs:<EOL><INDENT>piper.stop(forced=True)<EOL><DEDENT>self.log.debug('<STR_LIT>' % repr(self))<EOL>outputs = self.get_outputs()<EOL>while outputs:<EOL><INDENT>for piper in outputs:<EOL><INDENT>try:<EOL><INDENT>next(piper)<EOL><DEDENT>except StopIteration:<EOL><INDENT>outputs.remove(piper)<EOL>self.log.debug("<STR_LIT>" %(repr(self), repr(piper)))<EOL>continue<EOL><DEDENT>except Exception as excp:<EOL><INDENT>self.log.debug("<STR_LIT>" %(repr(self), piper, excp))<EOL><DEDENT><DEDENT><DEDENT>self.log.debug("<STR_LIT>" % repr(self))<EOL>postorder = self.postorder()<EOL>for piper in postorder:<EOL><INDENT>if piper not in inputs:<EOL><INDENT>piper.stop(ends=[<NUM_LIT:0>])<EOL><DEDENT><DEDENT>self.log.debug("<STR_LIT>" % repr(self))<EOL>for piper in inputs:<EOL><INDENT>if hasattr(piper.imap, '<STR_LIT>'):<EOL><INDENT>piper.imap.stop(ends=[<NUM_LIT:0>])<EOL><DEDENT><DEDENT>self.log.debug('<STR_LIT>' % repr(self))<EOL>
Stops the ``Pipers`` according to pipeline topology.