##// END OF EJS Templates
errors: stop passing non-strings to Abort's constructor...
errors: stop passing non-strings to Abort's constructor The next patch will change `Abort`'s constructor and `__bytes__` functions and they will start assuming that the first argument is the messages as `bytes`. Differential Revision: https://phab.mercurial-scm.org/D9178

File last commit:

r45142:d359f0d1 default
r46273:a736ab68 default
Show More
filtertraceback.py
40 lines | 853 B | text/x-python | PythonLexer
/ tests / filtertraceback.py
Gregory Szorc
hgweb: log error before attempting I/O...
r41603 #!/usr/bin/env python
# Filters traceback lines from stdin.
from __future__ import absolute_import, print_function
Gregory Szorc
tests: force \n newlines when writing to sys.stdout...
r45142 import io
Gregory Szorc
hgweb: log error before attempting I/O...
r41603 import sys
Gregory Szorc
tests: force \n newlines when writing to sys.stdout...
r45142 if sys.version_info[0] >= 3:
# Prevent \r from being inserted on Windows.
sys.stdout = io.TextIOWrapper(
sys.stdout.buffer,
sys.stdout.encoding,
sys.stdout.errors,
newline="\n",
line_buffering=sys.stdout.line_buffering,
)
Gregory Szorc
hgweb: log error before attempting I/O...
r41603 state = 'none'
for line in sys.stdin:
if state == 'none':
if line.startswith('Traceback '):
state = 'tb'
elif state == 'tb':
if line.startswith(' File '):
state = 'file'
continue
elif not line.startswith(' '):
state = 'none'
elif state == 'file':
# Ignore lines after " File "
state = 'tb'
continue
print(line, end='')