From: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Date: Mon, 1 May 2023 17:19:47 +0000 (+0100) Subject: gh-102799: replace sys.exc_info by sys.exception in inspect and traceback modules... X-Git-Tag: v3.12.0b1~344 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a679c3d58d10aafd9ac9355fdd16151607e37d65;p=thirdparty%2FPython%2Fcpython.git gh-102799: replace sys.exc_info by sys.exception in inspect and traceback modules (#104032) --- diff --git a/Lib/inspect.py b/Lib/inspect.py index 6d1d7b766cb3..92c2675cfd7d 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -1766,7 +1766,9 @@ def stack(context=1): def trace(context=1): """Return a list of records for the stack below the current exception.""" - return getinnerframes(sys.exc_info()[2], context) + exc = sys.exception() + tb = None if exc is None else exc.__traceback__ + return getinnerframes(tb, context) # ------------------------------------------------ static version of getattr diff --git a/Lib/traceback.py b/Lib/traceback.py index ba4a9ffd001b..419f6e81b5e1 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -179,12 +179,12 @@ def _safe_string(value, what, func=str): # -- def print_exc(limit=None, file=None, chain=True): - """Shorthand for 'print_exception(*sys.exc_info(), limit, file, chain)'.""" - print_exception(*sys.exc_info(), limit=limit, file=file, chain=chain) + """Shorthand for 'print_exception(sys.exception(), limit, file, chain)'.""" + print_exception(sys.exception(), limit=limit, file=file, chain=chain) def format_exc(limit=None, chain=True): """Like print_exc() but return a string.""" - return "".join(format_exception(*sys.exc_info(), limit=limit, chain=chain)) + return "".join(format_exception(sys.exception(), limit=limit, chain=chain)) def print_last(limit=None, file=None, chain=True): """This is a shorthand for 'print_exception(sys.last_exc, limit, file, chain)'."""