def get_xmlrpc_service(): """Create the XMLRPC server proxy and cache it.""" global _xmlrpc_service from yt.extern.six.moves import xmlrpc_client if _xmlrpc_service is None: try: _xmlrpc_service = xmlrpc_client.ServerProxy(SERVICE_URL + 'xmlrpc/', allow_none=True) except Exception as err: fail('Could not connect to Pastebin: %s' % err, -1) return _xmlrpc_service
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()