Alessio Deiana committed 5702461

Reworks show warning wrapping

We now wrap showwarning as indicated in python doc.

Comments (0)

Files changed (1)


 import traceback
+import warnings
+from functools import wraps
 def replace_error_handler():
 def wrap_warn():
-    import warnings
-    def wrapper(warn_fun):
-        def fun(*args, **kwargs):
-            traceback.print_stack()
-            return warn_fun(*args, **kwargs)
-        return fun
+    @wraps(warnings.showwarning)
+    def cb_showwarning(message=None, category=None, filename=None, lineno=None, file=None, line=None):
+        print "WARNING: %(category)s: %(message)s (%(file)s:%(line)s)\n" % {
+            'category': category,
+            'message': message,
+            'file': filename,
+            'line': lineno}
+        traceback.print_stack()
-    warnings.warn = wrapper(warnings.warn)
+    warnings.showwarning = cb_showwarning
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.