diff options
| author | Calvin Cheng | 2012-11-03 14:51:44 +0800 |
|---|---|---|
| committer | Calvin Cheng | 2012-11-03 14:51:44 +0800 |
| commit | 9b1fbf20728276d039f303dcb0973cbb64b26a70 (patch) | |
| tree | a85f4b07e3658d82f4f845d7d2c33abfc71b7bf0 | |
| parent | aeb45f2fea083fb182f5fd33e7c4980780b1ea81 (diff) | |
| download | django-debug-toolbar-9b1fbf20728276d039f303dcb0973cbb64b26a70.tar.bz2 | |
Use python threading module instead of the python3 deprecated thread module. Fix this threading related bug - Exception AttributeError: AttributeError("_DummyThread object has no attribute _Thread__block",) in <module threading from
| -rw-r--r-- | debug_toolbar/middleware.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index 1979e1d..751185f 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -2,7 +2,7 @@ Debug Toolbar middleware """ import imp -import thread +import threading from django.conf import settings from django.http import HttpResponseRedirect @@ -14,6 +14,7 @@ import debug_toolbar.urls from debug_toolbar.toolbar.loader import DebugToolbar _HTML_TYPES = ('text/html', 'application/xhtml+xml') +threading._DummyThread._Thread__stop = lambda x: 1 # Handles python threading module bug - http://bugs.python.org/issue14308 def replace_insensitive(string, target, replacement): @@ -38,7 +39,7 @@ class DebugToolbarMiddleware(object): @classmethod def get_current(cls): - return cls.debug_toolbars.get(thread.get_ident()) + return cls.debug_toolbars.get(threading.currentThread()) def __init__(self): self._urlconfs = {} @@ -98,11 +99,11 @@ class DebugToolbarMiddleware(object): toolbar = DebugToolbar(request) for panel in toolbar.panels: panel.process_request(request) - self.__class__.debug_toolbars[thread.get_ident()] = toolbar + self.__class__.debug_toolbars[threading.currentThread()] = toolbar def process_view(self, request, view_func, view_args, view_kwargs): __traceback_hide__ = True - toolbar = self.__class__.debug_toolbars.get(thread.get_ident()) + toolbar = self.__class__.debug_toolbars.get(threading.currentThread()) if not toolbar: return result = None @@ -114,7 +115,7 @@ class DebugToolbarMiddleware(object): def process_response(self, request, response): __traceback_hide__ = True - ident = thread.get_ident() + ident = threading.currentThread() toolbar = self.__class__.debug_toolbars.get(ident) if not toolbar or request.is_ajax(): return response |
