cython
1__doc__ = u"""
2>>> def bar():
3... try:
4... foo()
5... except ValueError:
6... print(isinstance(sys.exc_info()[1].__cause__, TypeError))
7
8>>> bar()
9True
10
11>>> print(sys.exc_info())
12(None, None, None)
13
14>>> def bar2():
15... try:
16... foo2()
17... except ValueError:
18... cause = sys.exc_info()[1].__cause__
19... print(isinstance(cause, TypeError))
20... print(cause.args==('value',))
21... pass
22
23>>> bar2()
24True
25True
26"""
27
28import sys
29
30def foo():
31try:
32raise TypeError
33except TypeError:
34raise ValueError from TypeError
35
36def foo2():
37try:
38raise TypeError
39except TypeError:
40raise ValueError() from TypeError('value')
41
42