From 435e4bf38e97255acd97eacadeb8fe312ba97aff Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 24 Jan 2017 08:31:58 -0500 Subject: [PATCH] Refs #23919 -- Removed __traceback__ setting needed for Python 2. Partially reverted refs #25761 and refs #16245. --- django/db/utils.py | 2 -- django/dispatch/dispatcher.py | 6 +----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/django/db/utils.py b/django/db/utils.py index 7ef57fd8a3..dfdeff9c51 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -83,8 +83,6 @@ class DatabaseErrorWrapper: if issubclass(exc_type, db_exc_type): dj_exc_value = dj_exc_type(*exc_value.args) dj_exc_value.__cause__ = exc_value - if not hasattr(exc_value, '__traceback__'): - exc_value.__traceback__ = traceback # Only set the 'errors_occurred' flag for errors that may make # the connection unusable. if dj_exc_type not in (DataError, IntegrityError): diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py index 09992c5b8c..5599b9fdfc 100644 --- a/django/dispatch/dispatcher.py +++ b/django/dispatch/dispatcher.py @@ -1,4 +1,3 @@ -import sys import threading import weakref @@ -200,8 +199,7 @@ class Signal: If any receiver raises an error (specifically any subclass of Exception), the error instance is returned as the result for that - receiver. The traceback is always attached to the error at - ``__traceback__``. + receiver. """ if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS: return [] @@ -213,8 +211,6 @@ class Signal: try: response = receiver(signal=self, sender=sender, **named) except Exception as err: - if not hasattr(err, '__traceback__'): - err.__traceback__ = sys.exc_info()[2] responses.append((receiver, err)) else: responses.append((receiver, response))