Jak obsługiwać AssertionError w Pythonie i dowiedzieć się, w której linii lub instrukcji wystąpiło?

Chcę sobie poradzićAssertionErrors zarówno do ukrycia niepotrzebnych części śladu stosu od użytkownika, jak i do wydrukowania komunikatu o przyczynie błędu i o tym, co powinien zrobić użytkownik.

Czy jest jakiś sposób, aby dowiedzieć się, w której linii lub oświadczeniuassert nie powiodło się wexcept blok?

try:
    assert True
    assert 7 == 7
    assert 1 == 2
    # many more statements like this
except AssertionError:
    print 'Houston, we have a problem.'
    print
    print 'An error occurred on line ???? in statement ???'
    exit(1)

Nie chcę dodawać tego do każdego stwierdzenia assert:

assert 7 == 7, "7 == 7"

ponieważ powtarza informacje.

questionAnswers(2)

yourAnswerToTheQuestion