annotate tests/filtertraceback.py @ 51232:3551f2a1c963

debugindexstats: handle the lack of Rust support better We don't have any stats in the Rust index. Currently it is not known which stats would be interesting to get, so if they end up being important, we can add them later.
author Raphaël Gomès <rgomes@octobus.net>
date Tue, 31 Oct 2023 18:09:43 +0100
parents fe044ce4bb17
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45830
c102b704edb5 global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44654
diff changeset
1 #!/usr/bin/env python3
41462
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
2
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
3 # Filters traceback lines from stdin.
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
4
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
5
44654
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
6 import io
41462
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
7 import sys
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
8
44654
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
9 if sys.version_info[0] >= 3:
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
10 # Prevent \r from being inserted on Windows.
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
11 sys.stdout = io.TextIOWrapper(
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
12 sys.stdout.buffer,
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
13 sys.stdout.encoding,
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
14 sys.stdout.errors,
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
15 newline="\n",
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
16 line_buffering=sys.stdout.line_buffering,
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
17 )
d359f0d1a3d3 tests: force \n newlines when writing to sys.stdout
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41462
diff changeset
18
41462
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
19 state = 'none'
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
20
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
21 for line in sys.stdin:
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
22 if state == 'none':
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
23 if line.startswith('Traceback '):
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
24 state = 'tb'
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
25
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
26 elif state == 'tb':
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
27 if line.startswith(' File '):
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
28 state = 'file'
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
29 continue
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
30
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
31 elif not line.startswith(' '):
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
32 state = 'none'
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
33
49869
fe044ce4bb17 tests: filter out PEP 657 error locations in tracebacks (issue6780)
Anton Shestakov <av6@dwimlabs.net>
parents: 48875
diff changeset
34 elif not line.replace('^', '').replace('~', '').strip():
fe044ce4bb17 tests: filter out PEP 657 error locations in tracebacks (issue6780)
Anton Shestakov <av6@dwimlabs.net>
parents: 48875
diff changeset
35 # PEP 657: Fine-grained error locations in tracebacks
fe044ce4bb17 tests: filter out PEP 657 error locations in tracebacks (issue6780)
Anton Shestakov <av6@dwimlabs.net>
parents: 48875
diff changeset
36 # ~~~~~~^^^^^^^^^
fe044ce4bb17 tests: filter out PEP 657 error locations in tracebacks (issue6780)
Anton Shestakov <av6@dwimlabs.net>
parents: 48875
diff changeset
37 continue
fe044ce4bb17 tests: filter out PEP 657 error locations in tracebacks (issue6780)
Anton Shestakov <av6@dwimlabs.net>
parents: 48875
diff changeset
38
41462
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
39 elif state == 'file':
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
40 # Ignore lines after " File "
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
41 state = 'tb'
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
42 continue
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
43
9b2b8794f801 hgweb: log error before attempting I/O
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
44 print(line, end='')