tests/filtertraceback.py
author Denis Laxalde <denis@laxalde.org>
Thu, 10 Oct 2019 21:37:12 +0200
changeset 43172 9145abd8b96d
parent 41462 9b2b8794f801
child 44654 d359f0d1a3d3
permissions -rwxr-xr-x
py3: decode username and password before SMTP login smtplib.SMTP.login() requires str on Python 3. For 'password', we only need to decode when value comes from config as getpass() returns the correct type already.

#!/usr/bin/env python

# Filters traceback lines from stdin.

from __future__ import absolute_import, print_function

import sys

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='')