Skip to content

Commit 827ab69

Browse files
committed
Merged in [17521] from housley@vigilsec.com:
Improve performance of log.assertion() and log.unreachable() - Legacy-Id: 17535 Note: SVN reference [17521] has been migrated to Git commit 333abca
2 parents 462bea6 + 333abca commit 827ab69

1 file changed

Lines changed: 4 additions & 8 deletions

File tree

ietf/utils/log.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,15 @@ def assertion(statement, state=True):
108108
"""
109109
This acts like an assertion. It uses the django logger in order to send
110110
the failed assertion and a backtrace as for an internal server error.
111-
112111
"""
113-
stack = inspect.stack()[1:]
114-
frame = stack[0][0]
112+
frame = inspect.currentframe().f_back
115113
value = eval(statement, frame.f_globals, frame.f_locals)
116114
if bool(value) != bool(state):
117115
if (settings.DEBUG is True) or (settings.SERVER_MODE == 'test') :
118116
raise AssertionError("Assertion failed: '%s': %s != %s." % (statement, repr(value), state))
119117
else:
120118
# build a simulated traceback object
121-
tb = build_traceback(stack)
119+
tb = build_traceback(inspect.stack()[1:])
122120
# provide extra info if available
123121
extra = {}
124122
for key in [ 'request', 'status_code', ]:
@@ -128,18 +126,16 @@ def assertion(statement, state=True):
128126

129127
def unreachable(date="(unknown)"):
130128
"Raises an assertion or sends traceback to admins if executed."
131-
stack = inspect.stack()[1:]
132-
frame = stack[0][0]
129+
frame = inspect.currentframe().f_back
133130
if settings.DEBUG is True or settings.SERVER_MODE == 'test':
134131
raise AssertionError("Arrived at code in %s() which was marked unreachable on %s." % (frame.f_code.co_name, date))
135132
else:
136133
# build a simulated traceback object
137-
tb = build_traceback(stack)
134+
tb = build_traceback(inspect.stack()[1:])
138135
# provide extra info if available
139136
extra = {}
140137
for key in [ 'request', 'status_code', ]:
141138
if key in frame.f_locals:
142139
extra[key] = frame.f_locals[key]
143140
logger.error("Arrived at code in %s() which was marked unreachable on %s." % (frame.f_code.co_name, date),
144141
exc_info=(AssertionError, frame.f_code.co_name, tb), extra=extra)
145-

0 commit comments

Comments
 (0)