proxy: don't pass arguments to format_exc() in IkiWikiProcedureProxy.run()
authorW. Trevor King <wking@tremily.us>
Sat, 29 Sep 2012 11:12:59 +0000 (07:12 -0400)
committerW. Trevor King <wking@tremily.us>
Sat, 29 Sep 2012 11:12:59 +0000 (07:12 -0400)
This avoids:

  Traceback (most recent call last):
    File "./plugins/rst", line 86, in <module>
      proxy.run()
    File "/home/wking/src/ikiwiki/plugins/proxy.py", line 316, in run
      e, traceback.format_exc(sys.exc_info()[2])))
    File "/usr/lib/python3.2/traceback.py", line 269, in format_exc
    ...
  TypeError: unorderable types: int() < traceback()

The syntax for format_exc in Python 2.x is:

  traceback.format_exc([limit])

In Python 3.x, it is:

  traceback.format_exc(limit=None, chain=True)

Neither of these need any information from sys.exc_info() passed in.

plugins/proxy.py

index 60ea89967572e14c1bcca597d2605266200b4fc7..656c9e5bd11e5fa726c1000ac8928edf88e882b0 100755 (executable)
@@ -312,8 +312,8 @@ class IkiWikiProcedureProxy(object):
 
         except Exception as e:
             import traceback
-            self.error('uncaught exception: {}\n{}'.format(
-                        e, traceback.format_exc(sys.exc_info()[2])))
+            tb = traceback.format_exc()
+            self.error('uncaught exception: {}\n{}'.format(e, tb))
             return
 
     def _importme(self):