home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- __docformat__ = 'restructuredtext en'
- from fd_redirector import FDRedirector, STDOUT, STDERR
- from IPython.kernel.core.file_like import FileLike
- from IPython.kernel.core.output_trap import OutputTrap
-
- class RedirectorOutputTrap(OutputTrap):
-
- def __init__(self, out_callback, err_callback):
- self.out_callback = out_callback
- self.err_callback = err_callback
- self.out_redirector = FDRedirector(STDOUT)
- self.err_redirector = FDRedirector(STDERR)
- OutputTrap.__init__(self, out = FileLike(self.on_out_write), err = FileLike(self.on_err_write))
-
-
- def set(self):
- self.out_redirector.start()
- self.err_redirector.start()
- OutputTrap.set(self)
-
-
- def unset(self):
- OutputTrap.unset(self)
- self.on_err_write('')
- self.err_redirector.stop()
- self.on_out_write('')
- self.out_redirector.stop()
-
-
- def on_out_write(self, string):
-
- try:
- self.out_callback(self.out_redirector.getvalue() + string)
- except:
- self.unset()
- raise
-
-
-
- def on_err_write(self, string):
-
- try:
- self.err_callback(self.err_redirector.getvalue() + string)
- except:
- self.unset()
- raise
-
-
-
-