bpo-33809: add the TracebackException.print() method (GH-24231)

This commit is contained in:
Irit Katriel 2021-05-22 17:39:33 +01:00 committed by GitHub
parent 9e746e3298
commit 220dd80a26
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 4 deletions

View file

@ -111,11 +111,8 @@ def print_exception(exc, /, value=_sentinel, tb=_sentinel, limit=None, \
position of the error.
"""
value, tb = _parse_value_tb(exc, value, tb)
if file is None:
file = sys.stderr
te = TracebackException(type(value), value, tb, limit=limit, compact=True)
for line in te.format(chain=chain):
print(line, file=file, end="")
te.print(file=file, chain=chain)
def format_exception(exc, /, value=_sentinel, tb=_sentinel, limit=None, \
@ -669,3 +666,10 @@ class TracebackException:
yield 'Traceback (most recent call last):\n'
yield from exc.stack.format()
yield from exc.format_exception_only()
def print(self, *, file=None, chain=True):
"""Print the result of self.format(chain=chain) to 'file'."""
if file is None:
file = sys.stderr
for line in self.format(chain=chain):
print(line, file=file, end="")