Mercurial > hg
view tests/filtertraceback.py @ 50493:816e8bc6e066
store: split the wrapping of encodedstore between _wrap and datafiles
The `datafiles` method of `basicstore` is doing a lot of work that should be
done on decoded filename. So we now wrap `_walk` to do the decoding, and less
work in `datafiles`.
This is necessary to make sure file from the same revlog can be grouped
together.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 15 May 2023 09:02:26 +0200 |
parents | fe044ce4bb17 |
children |
line wrap: on
line source
#!/usr/bin/env python3 # Filters traceback lines from stdin. import io import sys 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, ) 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 not line.replace('^', '').replace('~', '').strip(): # PEP 657: Fine-grained error locations in tracebacks # ~~~~~~^^^^^^^^^ continue elif state == 'file': # Ignore lines after " File " state = 'tb' continue print(line, end='')