def paste_traceback(exc_type, exc, tb): """ This is a traceback handler that knows how to paste to the pastebin. Should only be used in sys.excepthook. """ sys.__excepthook__(exc_type, exc, tb) from yt.extern.six.moves import StringIO, xmlrpc_client p = xmlrpc_client.ServerProxy("http://paste.yt-project.org/xmlrpc/", allow_none=True) s = StringIO() traceback.print_exception(exc_type, exc, tb, file=s) s = s.getvalue() ret = p.pastes.newPaste('pytb', s, None, '', '', True) print() print("Traceback pasted to http://paste.yt-project.org/show/%s" % (ret)) print()
def paste_traceback(exc_type, exc, tb): """ This is a traceback handler that knows how to paste to the pastebin. Should only be used in sys.excepthook. """ sys.__excepthook__(exc_type, exc, tb) from yt.extern.six.moves import StringIO, xmlrpc_client p = xmlrpc_client.ServerProxy( "http://paste.yt-project.org/xmlrpc/", allow_none=True) s = StringIO() traceback.print_exception(exc_type, exc, tb, file=s) s = s.getvalue() ret = p.pastes.newPaste('pytb', s, None, '', '', True) print() print("Traceback pasted to http://paste.yt-project.org/show/%s" % (ret)) print()
def paste_traceback_detailed(exc_type, exc, tb): """ This is a traceback handler that knows how to paste to the pastebin. Should only be used in sys.excepthook. """ import cgitb from yt.extern.six.moves import StringIO, xmlrpc_client s = StringIO() handler = cgitb.Hook(format="text", file=s) handler(exc_type, exc, tb) s = s.getvalue() print(s) p = xmlrpc_client.ServerProxy("http://paste.yt-project.org/xmlrpc/", allow_none=True) ret = p.pastes.newPaste('text', s, None, '', '', True) print() print("Traceback pasted to http://paste.yt-project.org/show/%s" % (ret)) print()
def execute(self, code): """Execute the given code in self.locals and return any stdout/sterr.""" out = StringIO() oldout = sys.stdout olderr = sys.stderr sys.stdout = sys.stderr = out try: try: exec code in self.locals except: result = traceback.format_exc() else: result = out.getvalue() finally: sys.stdout = oldout sys.stderr = olderr out.close() return result
def paste_traceback_detailed(exc_type, exc, tb): """ This is a traceback handler that knows how to paste to the pastebin. Should only be used in sys.excepthook. """ import cgitb from yt.extern.six.moves import StringIO, xmlrpc_client s = StringIO() handler = cgitb.Hook(format="text", file = s) handler(exc_type, exc, tb) s = s.getvalue() print(s) p = xmlrpc_client.ServerProxy( "http://paste.yt-project.org/xmlrpc/", allow_none=True) ret = p.pastes.newPaste('text', s, None, '', '', True) print() print("Traceback pasted to http://paste.yt-project.org/show/%s" % (ret)) print()