python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_traceback.cpython-311.opt-1.pyc

e2dZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZmZmZmZmZmZmZddlmZmZddlmZmZddlZddlZddlZdd	lmZe d
kre dndZ!ed
ddgZ"de"_#edgdZ$edgdZ%Gdde	j&Z'eGdde	j&Z(eeGdde(Z)Gdde	j&Z*dZ+dZ,e
j-de
j.e+d e
j.e,d!Z/Gd"d#Z0Gd$d%e0e	j&Z1Gd&d'e0e	j&Z2Gd(d)e	j&Z3Gd*d+e	j&Z4Gd,d-e	j&Z5Gd.d/e	j&Z6Gd0d1e	j&Z7Gd2d3e	j&Z8Gd4d5e	j&Z9e d
kre	j:dSdS)6zTest cases for traceback module)
namedtuple)StringION)support)Errorcaptured_outputcpython_only	ALWAYS_EQrequires_debug_rangeshas_no_debug_rangesrequires_subprocess)TESTFNunlink)assert_python_okassert_python_failure)partial__main__.codeco_filenameco_namec"tdgS)N)rrr)iter)_s G/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_traceback.py<lambda>rs4#7#7frame)f_code	f_globalsf_localstb)tb_frame	tb_linenotb_nexttb_lasticeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZedZdZdZdZdZdZdZdZdS)TracebackCasesc	|td#|$r}tj||cYd}~Sd}~wwxYw)Nzcall did not raise exception)
ValueError	tracebackformat_exception_only)selffuncexcvalues    rget_exception_formatz#TracebackCases.get_exception_format#sf	=DFFF;<<<	?	?	?23>>>>>>>>	?s
?:??c(tddddS)Nzdef fact(x):
	return x!
?execcompiler.s rsyntax_error_with_caretz&TracebackCases.syntax_error_with_caret+s-sF;;;;;rc(tddddS)Nz1 +
r4r5r6r8s rsyntax_error_with_caret_2z(TracebackCases.syntax_error_with_caret_2.sf%%%%%rc(tddddS)Nzf(x, y for y in range(30), z)r4r5r6r8s rsyntax_error_with_caret_rangez,TracebackCases.syntax_error_with_caret_range1s/f=====rc(tddddS)Nz def spam():
  print(1)
 print(2)r4r5r6r8s rsyntax_error_bad_indentationz+TracebackCases.syntax_error_bad_indentation4s4c6BBBBBrc(tddddS)NuPython = "Ṕýţĥòñ" +r4r5r6r8s r!syntax_error_with_caret_non_asciiz0TracebackCases.syntax_error_with_caret_non_ascii7s=sFKKKKKrc(tddddS)Nz	 print(2)r4r5r6r8s rsyntax_error_bad_indentation2z,TracebackCases.syntax_error_bad_indentation2:sS&)))))rc(tddddS)Nz
blech  (  r4r5r6r8s r tokenizer_error_with_caret_rangez/TracebackCases.tokenizer_error_with_caret_range=sc6*****rcJ	||jt}|t	|d||ddk|d|d||dd|dd||d	dd||j
t}|d|d||d	dd||dddz|dd||d	dd||jt}|d|d||d	dd||dddz|dd||d	dd||jt}|d|d||d	dd||dd	|dd||d	dt	d
||j
t}|d|d||d	dd||dd|dd||d	dddS)Nz	return x!^!
+yzy for y in range(30)()r2r9SyntaxErrorassertEquallen
assertTruestripassertInfindcountr;rAr=rEr.errs  r
test_caretzTracebackCases.test_caret@s''(D(355S1%%%A+5666

c3q6"""QS))3q6;;s+;+;<<<Qc**A...''(F(355

c3q6"""Qd++Q///QS))A-s1v{{3/?/?@@@Qc**A...''(N(355

c3q6"""Qd++Q///QS))A-s1v{{3/?/?@@@Qc**A...''(J(355

c3q6"""Qd++Q///QS))3q6;;s+;+;<<<Qc**C0F,G,GHHH''(M(355

c3q6"""Qd++Q///QS))3q6;;s+;+;<<<Qc**A.....rctdd}tjt|}|t	|d||dddS)Nerror)zx.pyN
bad syntaxrHr^)rPr,r-rQrRrT)r.r0rYs   rtest_nocaretzTracebackCases.test_nocaretesh'#CDD-k3??S1%%%Q66666rch	ttd5}|ddddn#1swxYwYtddt\}}}|}|t
|d||dd|d|d	||d
d||dd
ttdS#ttwxYw)Nwz
x = 1 / 0
-Xno_debug_rangesrGr"Traceback (most recent call last):sline 1, in <module>rHrJ
    x = 1 / 0r_#ZeroDivisionError: division by zero)	openr
writer
splitlinesrQrRrUr)r.frstderrliness     r'test_no_caret_with_no_debug_ranges_flagz6TracebackCases.test_no_caret_with_no_debug_ranges_flagksR	fc""
'a
&&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'1'11LAq&%%''ESZZ+++U1X'LMMMMM0%(;;;U1X'7888U1X'MNNN6NNNNNF6NNNNs)D9D=D=CDD1ctjd}	ttd5}||dddn#1swxYwYtddt\}}}|}|t|d||dd|	d|d	||d
d||dd
ttdS#ttwxYw)Nz
            import traceback
            try:
                x = 1 / 0
            except:
                traceback.print_exc()
            rbrcrdrGrresline 4, in <module>rHrJrfr_rg)textwrapdedentrhr
rirrjrQrRrUr)r.rrkrrlrms      r8test_no_caret_with_no_debug_ranges_flag_python_tracebackzGTracebackCases.test_no_caret_with_no_debug_ranges_flag_python_traceback~se 	fc""
a

















,'11LAq&%%''ESZZ+++U1X'LMMMMM0%(;;;U1X'7888U1X'MNNN6NNNNNF6NNNNs/D/A
D/
AD/ACD//Ecjtjd}	ttd5}||dddn#1swxYwYtt\}}}||dttdS#ttwxYw)Na>
                import sys
                from weakref import ref

                sys.setrecursionlimit(15)

                def f():
                    ref(lambda: 0, [])
                    f()

                try:
                    f()
                except RecursionError:
                    pass
        rbr)rprqrhr
rirrQr)r.rrkrcrs     r%test_recursion_error_during_tracebackz4TracebackCases.test_recursion_error_during_tracebacks 

	fc""
a

















(//HB1R###6NNNNNF6NNNNs.BA
B
ABA1BB2c||jt}|t	|d||dd|d|d||dddz|dd||jt}|t	|d||dddS)NrGrHzprint(2)rIrJ)r_)	r2r?IndentationErrorrQrRrTrUrVrCrXs  rtest_bad_indentationz#TracebackCases.test_bad_indentations''(I(8::S1%%%Q444

c3q6"""QS))A-s1v{{3/?/?@@@''(J(8::S1%%%Q44444rct}tj|j|}||dgdS)NzKeyboardInterrupt
)KeyboardInterruptr,r-	__class__rQ)r.elsts   rtest_base_exceptionz"TracebackCases.test_base_exceptionsA-ak1==4566666rcXGddt}tj||}|t	|dd}|jdvr|j}n!d|j|jg}||d|d|d	dS)
NceZdZdZdS)?TracebackCases.test_format_exception_only_bad__str__.<locals>.XcddzdSNrHrr8s r__str__zGTracebackCases.test_format_exception_only_bad__str__.<locals>.X.__str__!rN__name__
__module____qualname__rrrrXr#




rrrH<exception str() failed>)rbuiltinsrr: rL)	Exceptionr,r-rQrRrrjoinr.rrY	str_valuestr_names     r%test_format_exception_only_bad__str__z4TracebackCases.test_format_exception_only_bad__str__s									-a55S1%%%.	<333~HHxxq~ >??HQxxx!CDDDDDrc0	ddl	ddl	jddgjj}|\}}t|dd	fd}|dddd	d
D]y}|dkrd}n|dkrd}nd
}|d	|||d|d	|||d|d	|||dz|dd
dddS)Nr-cz&import sys; print(sys.stdout.encoding)stdoutrlasciic
	ttd|5}|d||dddn#1swxYwYjtgjj}|\}}|	

}ttn#ttwxYw|
d}|	
}	d|	}
d|	}
d|z|d	d
|d	||d|
d|d|
|d
}||kd||dS)Nrb)encodingz}{0}if 1:
                        import traceback;
                        raise RuntimeError('{1}')
                        rbackslashreplacezraise RuntimeError('{0}')zRuntimeError: {0}zline %srHz)Invalid line number: {0!r} instead of {1}rJz.Invalid traceback line: {0!r} instead of {1!r}r_z-Invalid error message: {0!r} instead of {1!r})rhr
riformatPopen
executablePIPESTDOUTcommunicatedecoderjrencoderUrSendswith)
firstlinesmessagecharsetlinenooutputprocessrrlencoded_message
message_asciierr_lineerr_msgactual_err_msgoutput_encodingr.
subprocesssyss             rdo_testz1TracebackCases.test_encoded_file.<locals>.do_testsC
&#8889FLL"#F:w77999999999999999999%**CNF+C%?:3D+FF!(!4!4!6!677BBDDvv&nn_-?AAO,22?CCM299-HHH)00??GMM9v-q	;BB1Iv''
(
(
(
OOF1I..x88@GG1Ix))
*
*
*$AYNOONg5?FF"G--
.
.
.
.
.s/C*ACACAA/CC2rfoor_)rz
iso-8859-1utf-8GBKru丂儀uhé hoz# coding: {0}
rGz#!shebang
# coding: {0}
z 	
# coding: {0}
zx=0
# coding: GBK
r)
rrrrrrrstrrjr)
r.rrrlrrtextrrrs
`      @@@rtest_encoded_filez TracebackCases.test_encoded_files
	
""CND$L$N*4/*4*;#==!,,..fg..99;;A>"	."	."	."	."	."	."	."	.H	E7A&&&>	&	&G'!!E!!%!G%,,W55'1
&
&
&G077@@'1
&
&
&G,33G<<'1
&
&
&
&	&
GQ?????rctjd}td|\}}}gd}|||dS)Na%
            import sys
            import traceback

            class PrintExceptionAtExit(object):
                def __init__(self):
                    try:
                        x = 1 / 0
                    except Exception:
                        self.exc_info = sys.exc_info()
                        # self.exc_info[1] (traceback) contains frames:
                        # explicitly clear the reference to self in the current
                        # frame to break a reference cycle
                        self = None

                def __del__(self):
                    traceback.print_exception(*self.exc_info)

            # Keep a reference in the module namespace to call the destructor
            # when the module is unloaded
            obj = PrintExceptionAtExit()
        r)res&  File "<string>", line 8, in __init__rg)rprqrrQrj)r.rrtrrlexpecteds      rtest_print_traceback_at_exitz+TracebackCases.test_print_traceback_at_exitsm 

,.dD99FF<<<	
**,,h77777rct}tjttdd|||ddSN	projectorfileException: projector
rr,print_exceptionrrQgetvaluer.rs  rtest_print_exceptionz#TracebackCases.test_print_exception5s_!y--t&	
	
	
	
	
**,DEEEEErct}tjtd|||ddSrrrs  rtest_print_exception_excz'TracebackCases.test_print_exception_exc<sP!)K"8"8vFFFF**,DEEEEErcLtd}tj|}||dg|t
d5tj|j|dddn#1swxYwY|t
d5tj|j|jdddn#1swxYwY|td5tj|ddddS#1swxYwYdS)NrrzBoth or neitherr#zpositional-only)r0)	rr,format_exceptionrQassertRaisesRegexr+r|
__traceback__	TypeError)r.r}rs   rtest_format_exception_excz(TracebackCases.test_format_exception_excAsk""+A..":!;<<<

#
#J0A
B
B	7	7&q{A666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7

#
#J0A
B
B	H	H&q{qGGGG	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H

#
#I/@
A
A	.	.&1----	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.s6A==BB#!CCC6DD Dcvtjtd}||dgdS)Nrr)r,r-rrQrs  rtest_format_exception_only_excz-TracebackCases.test_format_exception_only_excLs:0;1G1GHH":!;<<<<<rctd}t}tjd||||t}tjddd||||t}tjd|||||tjd||tjd|g|tjddd|g|tjd|g|tjdd|gdS)NzNoneType: None
r)	rr,rrQr	print_exc
format_excrr-)r.NONE_EXC_STRINGexcfiles   rtest_exception_is_Nonez%TracebackCases.test_exception_is_NonePs,**!$W5555))++_===**!$dAAAA))++_===**Dw////))++_===-d33_EEE3D99O;LMMM&tT488?:K	M	M	M+D11O3D	F	F	F+D$77/9J	L	L	L	L	Lrc|ttjtjd|ttjtjd|ttjtjddS)NzL(exc, /, value=<implicit>, tb=<implicit>, limit=None, file=None, chain=True)zA(exc, /, value=<implicit>, tb=<implicit>, limit=None, chain=True)z(exc, /, value=<implicit>))rQrinspect	signaturer,rrr-r8s rtest_signatureszTracebackCases.test_signaturesgs!)";<<==2	4	4	4
	
!)"<==>>			
	
!)"ABBCC(	*	*	*	*	*rN)rrrr2r9r;r=r?rArCrErZr`rnrrruryrrrrrrrrrrrrrrr)r)s===<<<&&&>>>CCCLLL***+++#/#/#/J777&02555777EEEC@C@C@J888>FFFFFF
	.	.	.===LLL.
*
*
*
*
*rr)ceZdZdZdZejjdzZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!S)" TracebackErrorLocationCaretTestszF
    Tests for printing code error expressions as part of PEP 657
    c	||ddS#tjddcYSxYw)NNo exception thrown.)failr,rrj)r.callables  r
get_exceptionz.TracebackErrorLocationCaretTests.get_exception|s^	<HJJJII,-----	<'))4466ss;;;;s	#/ArJc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc td)NTzbasic caret testsr+rrrrkz<TracebackErrorLocationCaretTests.test_basic_caret.<locals>.fs%&9:::r+Traceback (most recent call last):
  File "", line *, in get_exception
    callable()
  File "rHzm, in f
    if True: raise ValueError("basic caret tests")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
__code__co_firstlineno__file__
callable_linerrQrj)r.rklineno_f
expected_fresult_liness     rtest_basic_caretz1TracebackErrorLocationCaretTests.test_basic_carets	;	;	;:,
C
C
C)-);
C
C 
C
C*2!
C
C
C	))!,,z'<'<'>'>?????rc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc td)NTuĤellö Wörldrrrrf_with_unicodezOTracebackErrorLocationCaretTests.test_line_with_unicode.<locals>.f_with_unicodes%&6777rrrrrHuq, in f_with_unicode
    if True: raise ValueError("Ĥellö Wörld")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
r)r.rrrrs     rtest_line_with_unicodez7TracebackErrorLocationCaretTests.test_line_with_unicodes	8	8	8"*9
=
=
=)-);
=
= 
=
=*2!
=
=
=	)).99z'<'<'>'>?????rc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc*dtdtfd}dS)NareturncdS)Nrr)rs rrz`TracebackErrorLocationCaretTests.test_caret_in_type_annotation.<locals>.f_with_type.<locals>.foosqr)THIS_DOES_NOT_EXISTint)rs rf_with_typezSTracebackErrorLocationCaretTests.test_caret_in_type_annotation.<locals>.f_with_types/
*






rrrrrHza, in f_with_type
    def foo(a: THIS_DOES_NOT_EXIST ) -> int:
               ^^^^^^^^^^^^^^^^^^^
r)r.rrrrs     rtest_caret_in_type_annotationz>TracebackErrorLocationCaretTests.test_caret_in_type_annotations			'6
3
3
3)-);
3
3 
3
3*2!
3
3
3	))+66z'<'<'>'>?????rc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc td)NTzerror over multiple linesrrrrf_with_multilinezZTracebackErrorLocationCaretTests.test_caret_multiline_expression.<locals>.f_with_multilines%+rrrrrHzS, in f_with_multiline
    if True: raise ValueError(
             ^^^^^^^^^^^^^^^^^rr.rrrrs     rtest_caret_multiline_expressionz@TracebackErrorLocationCaretTests.test_caret_multiline_expressions			
$,;
-
-
-)-);
-
- 
-
-*2!
-
-
-	))*:;;z'<'<'>'>?????rc	tjdfd}|jj}dtd|jdtd|dzd	}||}|||dS)Nz
        def foo(*args, **kwargs):
            pass

        a, b, c = 1, 2, 3

        foo(a, z
                for z in
                    range(10), b, c)
        c&tddS)Nr4r5r6)rsrrzgTracebackErrorLocationCaretTests.test_caret_multiline_expression_syntax_error.<locals>.f_with_multilines4f---rrrrrJz, in f_with_multiline
    return compile(code, "?", "exec")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "?", line 7
    foo(a, z
           ^)	rprqrrrrrrQrj)r.rrrrrs     @r,test_caret_multiline_expression_syntax_errorzMTracebackErrorLocationCaretTests.test_caret_multiline_expression_syntax_errors	 	
	
	.	.	.	.	.$,;


)-);

 

*2!


	))*:;;z'<'<'>'>?????rc	d}|jj}dtd|jdtd|dzd	}||}|||dS)NcdddzzSNrJrHrrrrrrzaTracebackErrorLocationCaretTests.test_caret_multiline_expression_bin_op.<locals>.f_with_multilinesA
rrrrrJz-, in f_with_multiline
    2 + 1 /
        ^^^rrs     r&test_caret_multiline_expression_bin_opzGTracebackErrorLocationCaretTests.test_caret_multiline_expression_bin_ops			$,;


)-);

 

*2!


	))*:;;z'<'<'>'>?????rc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Ncd}d|dzzdzSN
rrdivisors rf_with_binary_operatorz`TracebackErrorLocationCaretTests.test_caret_for_binary_operators.<locals>.f_with_binary_operatorsG!#b((rrrrrJzY, in f_with_binary_operator
    return 10 + divisor / 0 + 30
                ~~~~~~~~^~~
rr.rrexpected_errorrs     rtest_caret_for_binary_operatorsz@TracebackErrorLocationCaretTests.test_caret_for_binary_operatorss	)	)	)*2A
,
,
,)-);
,
, 
,
,*2!
,
,
,	))*@AA~'@'@'B'BCCCCCrc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Ncd}d|dzzdzSrr)áóís rrzmTracebackErrorLocationCaretTests.test_caret_for_binary_operators_with_unicode.<locals>.f_with_binary_operatorsF
?R''rrrrrJuT, in f_with_binary_operator
    return 10 + áóí / 0 + 30
                ~~~~^~~
rrs     r,test_caret_for_binary_operators_with_unicodezMTracebackErrorLocationCaretTests.test_caret_for_binary_operators_with_unicodes	(	(	(*2A
(
(
()-);
(
( 
(
(*2!
(
(
(	))*@AA~'@'@'B'BCCCCCrc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Ncd}d|dzzdzSrrrs rrziTracebackErrorLocationCaretTests.test_caret_for_binary_operators_two_char.<locals>.f_with_binary_operator)sG1$r))rrrrrJz[, in f_with_binary_operator
    return 10 + divisor // 0 + 30
                ~~~~~~~~^^~~
rrs     r(test_caret_for_binary_operators_two_charzITracebackErrorLocationCaretTests.test_caret_for_binary_operators_two_char(s	*	*	**2A
-
-
-)-);
-
- 
-
-*2!
-
-
-	))*@AA~'@'@'B'BCCCCCrc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Ncd}d}||zS)NrHrr)rbs  rrz|TracebackErrorLocationCaretTests.test_caret_for_binary_operators_with_spaces_and_parenthesis.<locals>.f_with_binary_operator:sAAq= rrrrr_zN, in f_with_binary_operator
    return ( a   )   + b
           ~~~~~~~~~~^~~
rrs     r;test_caret_for_binary_operators_with_spaces_and_parenthesisz\TracebackErrorLocationCaretTests.test_caret_for_binary_operators_with_spaces_and_parenthesis9s	!	!	!
*2A
)
)
))-);
)
) 
)
)*2!
)
)
)	))*@AA~'@'@'B'BCCCCCrc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc6dddii}|dddSNxrNzr	some_dicts rf_with_subscriptzSTracebackErrorLocationCaretTests.test_caret_for_subscript.<locals>.f_with_subscriptLs$sDk*IS>#&s++rrrrrJz^, in f_with_subscript
    return some_dict['x']['y']['z']
           ~~~~~~~~~~~~~~~~~~~^^^^^
rr.r/rrrs     rtest_caret_for_subscriptz9TracebackErrorLocationCaretTests.test_caret_for_subscriptKs	,	,	,$,;
4
4
4)-);
4
4 
4
4*2!
4
4
4	))*:;;~'@'@'B'BCCCCCrc	d}|jj}dtd|jdtd|dzd	}||}|||dS)NcJdddddiiii}|ddddS)NóáíthetarHbetarr-s rr/z[TracebackErrorLocationCaretTests.test_caret_for_subscript_unicode.<locals>.f_with_subscript]s3tgq\&:;<IT?4(.v66rrrrrJuq, in f_with_subscript
    return some_dict['ó']['á']['í']['beta']
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
rr0s     r test_caret_for_subscript_unicodezATracebackErrorLocationCaretTests.test_caret_for_subscript_unicode\s	7	7	7$,;
<
<
<)-);
<
< 
<
<*2!
<
<
<	))*:;;~'@'@'B'BCCCCCrc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc$g}dx}}|||zSNrHr)rr&cs   rrzuTracebackErrorLocationCaretTests.test_caret_for_subscript_with_spaces_and_parenthesis.<locals>.f_with_binary_operatornsAIAa?Q&&rrrrr_zV, in f_with_binary_operator
    return b     [    a  ] + c
           ~~~~~~^^^^^^^^^
rrs     r4test_caret_for_subscript_with_spaces_and_parenthesiszUTracebackErrorLocationCaretTests.test_caret_for_subscript_with_spaces_and_parenthesisms	'	'	'
*2A
+
+
+)-);
+
+ 
+
+*2!
+
+
+	))*@AA~'@'@'B'BCCCCCrc	tdtd}ttd5}|ddddn#1swxYwY|t
tt
t|}||}|j	}dtd|jdtd|d	}|||
dS)	Nz1 / 0 / 1 / 2
r5rbz1 $ 0 / 1 / 2
rrrz*, in <module>
    1 $ 0 / 1 / 2
    ^^^^^
)r7r
rhri
addCleanuprrr5rrrrrQrj)r.bytecoderr/rrrs       r/test_traceback_specialization_with_syntax_errorzPTracebackErrorLocationCaretTests.test_traceback_specialization_with_syntax_errors=,ff==
&#

	*$JJ()))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	
'''tX&&))$//*


)-);



(0


		
~'@'@'B'BCCCCCsAAAcd}t|td}ttd5}||dddn#1swxYwY|t
tt
t|}||}|j	}dtd|jdtd|d|dd	td
zdzd
}|
||dS)
Na	if True: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar5rbrrrz, in <module>
    z
     z	if True: a^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^rL)r7r
rhrir@rrr5rrrrrRrQrj)r.sourcerArr/rrrs        rtest_traceback_very_long_linez>TracebackErrorLocationCaretTests.test_traceback_very_long_linesn(66622
&#

	$JJv															'''tX&&))$//*
6
6
6)-);
6
6
6
6(0
6
6	
6
6
s;''''1
6
6
6		
~'@'@'B'BCCCCCsAAAc	d}|jj}dtd|jdtd|dzd	}||}|||dS)Nc:dddii}|ddddSr*rr-s rr/zZTracebackErrorLocationCaretTests.test_secondary_caret_not_elided.<locals>.f_with_subscripts*sDk*IcN3$$$$rrrrrJzP, in f_with_subscript
    some_dict['x']['y']['z']
    ~~~~~~~~~~~~~~~~~~~^^^^^
rr0s     rtest_secondary_caret_not_elidedz@TracebackErrorLocationCaretTests.test_secondary_caret_not_elideds	%	%	%$,;
-
-
-)-);
-
- 
-
-*2!
-
-
-	))*:;;~'@'@'B'BCCCCCrc	d}dtd|jdtd|jjdzd	}||}|||dS)NcZtdtdtdg)NTegrHrJExceptionGroupr+rrrrr0zHTracebackErrorLocationCaretTests.test_caret_exception_group.<locals>.excs#)$A	!0MNNNrC  + Exception Group Traceback (most recent call last):
  |   File "rz2, in get_exception
  |     callable()
  |   File "rHaB, in exc
  |     if True: raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])
  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  | ExceptionGroup: eg (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
)rrrrrrQrj)r.r0rrs    rtest_caret_exception_groupz;TracebackErrorLocationCaretTests.test_caret_exception_groups
	O	O	O
%$
%
%.2.@
%
%%
%
%/2l.IA.M
%
%
%	))#..~'@'@'B'BCCCCCrc||}|d}|||dS)Nr)rrQlstrip)r.r/expected_specializationrspecialization_lines     rassertSpecializedz2TracebackErrorLocationCaretTests.assertSpecializedsJ))$//*2.,33557NOOOOOrc|dd|dd|dd|dd|dd|d	d|d
d|dd|d
d|dd|dd|dd|dd|dd|dddS)NcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>s
qsrz~^~cddzdzSNrHrr_rrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>sqs1urcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>
q1urz~~^~~cddzdzSrYrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>sq1uqyrcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>
q!trz~^~~cddzdzSrYrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>sq!tAvrcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>s
qqyrz	~~~~~^~~~cddzdzS)NrHrrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>sqqyQrcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>r^rz~~^~cddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>r^rz~^^~cddzdzSNrHrrGrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>sq!tQwrcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>s
qAvrz~~^^~~cddzdzSrerrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>sqAv{rcddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>r[rz~~^^~cddzSrrrrrrzQTracebackErrorLocationCaretTests.test_specialization_variations.<locals>.<lambda>r[rz~^^~~)rUr8s rtest_specialization_variationsz?TracebackErrorLocationCaretTests.test_specialization_variationss{{&+	-	-	-}}&+	-	-	-}}&-	/	/	/00&-	/	/	/||&,	.	.	.~~&,	.	.	.00&1	3	3	366&1	3	3	3||&,	.	.	.||&,	.	.	.&,	.	.	.~~&.	0	0	022&.	0	0	0}}&-	/	/	/}}&-	/	/	/	/	/rc
&	dd		fd}||}|jj}jj}dtd|jdtd|dzdtd|dzd	
}|||	fd
}||}|jj}dtd|jdtd|dzdtd|dzd	
}|||dS)NctN)rr/s r	dec_errorz]TracebackErrorLocationCaretTests.test_decorator_application_lineno_correct.<locals>.dec_errorsOrc|Srmrrns rdec_finez\TracebackErrorLocationCaretTests.test_decorator_application_lineno_correct.<locals>.dec_finesKrc.d}dS)NcdSrmrrrrgzhTracebackErrorLocationCaretTests.test_decorator_application_lineno_correct.<locals>.applydecs.<locals>.gsTrr)rtrorqs r	applydecsz]TracebackErrorLocationCaretTests.test_decorator_application_lineno_correct.<locals>.applydecss#

MXYMMrrrrrHz5, in applydecs
    @dec_error
     ^^^^^^^^^
  File "z#, in dec_error
    raise TypeError
cBGdd}dS)NceZdZdS)nTracebackErrorLocationCaretTests.test_decorator_application_lineno_correct.<locals>.applydecs_class.<locals>.AN)rrrrrrArxsTrryr)ryrorqs rapplydecs_classzcTracebackErrorLocationCaretTests.test_decorator_application_lineno_correct.<locals>.applydecs_classs-

MMMMMMXYMMrz;, in applydecs_class
    @dec_error
     ^^^^^^^^^
  File ")rrrrrrQrj)
r.rurlineno_applydescslineno_dec_errorrrzlineno_applydescs_classrorqs
        @@r)test_decorator_application_lineno_correctzJTracebackErrorLocationCaretTests.test_decorator_application_lineno_corrects												)))44%.=$-<
$
$
$)-);
$
$ 
$
$*;Q)>
$
$ 

$
$*:A)=

$
$
$		
~'@'@'B'BCCC						))/::"1":"I
$
$
$)-);
$
$ 
$
$*A1)D
$
$ 

$
$*:A)=

$
$
$		
~'@'@'B'BCCCCCrcd}||}ddtd|jdddtd|jjdzdd	d
g}|||dS)Nc.ddSrmmethodrrrrkzHTracebackErrorLocationCaretTests.test_multiline_method_call_a.<locals>.f%s#
r"Traceback (most recent call last):  File "r, in get_exception    callable()rJ, in fz    .methodz     ^^^^^^rrrrrrQr.rkactualrs    rtest_multiline_method_call_az=TracebackErrorLocationCaretTests.test_multiline_method_call_a$s			##A&&1QQQ4+=QQQPPP1:+Dq+HPPP

	
*****rcd}||}ddtd|jdddtd|jjdzdd	g}|||dS)
Nc.ddSrmrrrrrkzHTracebackErrorLocationCaretTests.test_multiline_method_call_b.<locals>.f5s#
rrrrrrrJrz
    methodrrs    rtest_multiline_method_call_bz=TracebackErrorLocationCaretTests.test_multiline_method_call_b4s			##A&&1QQQ4+=QQQPPP1:+Dq+HPPP
	
*****rcd}||}ddtd|jdddtd|jjdzdd	d
g}|||dS)Nc.ddSrmrrrrrkzHTracebackErrorLocationCaretTests.test_multiline_method_call_c.<locals>.fDs#
&rrrrrrrJrz    . methodz      ^^^^^^rrs    rtest_multiline_method_call_cz=TracebackErrorLocationCaretTests.test_multiline_method_call_cCs			##A&&1QQQ4+=QQQPPP1:+Dq+HPPP

	
*****rcd}||}ddtd|jdddtd|jjdzdd	g}|||dS)
NctdSrmwidthrrrrkzeTracebackErrorLocationCaretTests.test_wide_characters_unicode_with_problematic_byte_offset.<locals>.fTsOOOrrrrrrrHru    widthrrs    r9test_wide_characters_unicode_with_problematic_byte_offsetzZTracebackErrorLocationCaretTests.test_wide_characters_unicode_with_problematic_byte_offsetSs			##A&&1QQQ4+=QQQPPP1:+Dq+HPPP"
	
*****rcd}||}ddtd|jdddtd|jjdzdd	g}|||dS)
Nc$d}t|r<rrs rrkzXTracebackErrorLocationCaretTests.test_byte_offset_with_wide_characters_middle.<locals>.fcsO_---rrrrrrrJru%    raise ValueError(width)rrs    r,test_byte_offset_with_wide_characters_middlezMTracebackErrorLocationCaretTests.test_byte_offset_with_wide_characters_middlebs	.	.	.##A&&1QQQ4+=QQQPPP1:+Dq+HPPP4
	
*****rcd}||}ddtd|jdddtd|jjdzdd	d
g}|||dS)Nc@d}d}td||dSr)print)wwwths  rrkzFTracebackErrorLocationCaretTests.test_byte_offset_multiline.<locals>.frs;IF!YY




rrrrrrrGru    print(1, www(z             ^^^^^^^rrs    rtest_byte_offset_multilinez;TracebackErrorLocationCaretTests.test_byte_offset_multilineqs			##A&&1QQQ4+=QQQPPP1:+Dq+HPPP&#

	
*****rcd}||}ddtd|jdddtd|jjdzdd	d
g}|||dS)Ncd}d}||zSrr)说明说明şçöğıĤellös  rrkz`TracebackErrorLocationCaretTests.test_byte_offset_with_wide_characters_term_highlight.<locals>.fsL !"333rrrrrrr_ru+    return 说明说明 / şçöğıĤellöz            ~~~~~~~~~^~~~~~~~~~~~rrs    r4test_byte_offset_with_wide_characters_term_highlightzUTracebackErrorLocationCaretTests.test_byte_offset_with_wide_characters_term_highlights	4	4	4
##A&&1QQQ4+=QQQPPP1:+Dq+HPPP:/

	
*****rcd}||}ddtd|jdddtd|jjdzdd	d
g}|||dS)Nc.dtddzdzS)Nu✨🐍u📗🚛🐍)func_说明说明rrrrkzWTracebackErrorLocationCaretTests.test_byte_offset_with_emojis_term_highlight.<locals>.fs)0  $%
%rrrrrrrHru4    return "✨🐍" + func_说明说明("📗🚛",z!                    ^^^^^^^^^^^^^rrs    r+test_byte_offset_with_emojis_term_highlightzLTracebackErrorLocationCaretTests.test_byte_offset_with_emojis_term_highlights	%	%	%##A&&1QQQ4+=QQQPPP1:+Dq+HPPPC0

	
*****rcd}||}ddtd|jdddtd|jjdzdd	d
g}|||dS)NcRddddiii}|dddddS)Nu
✨🚛✨u说明u🐍🐍🐍ru🐍🐍r)my_dcts rrkzQTracebackErrorLocationCaretTests.test_byte_offset_wide_chars_subscript.<locals>.fs?&F,'1&9(CJOOrrrrrrruG    return my_dct["✨🚛✨"]["说明"]["🐍"]["说明"]["🐍🐍"]z)           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^rrs    r%test_byte_offset_wide_chars_subscriptzFTracebackErrorLocationCaretTests.test_byte_offset_wide_chars_subscripts	P	P	P##A&&1QQQ4+=QQQPPP1:+Dq+HPPPV8

	
*****rN)%rrr__doc__rrrrrrrr	rrrr r#r'r1r9r>rBrFrIrPrUrjr~rrrrrrrrrrrrrrws.<<<"*9A=M@@@$@@@$@@@"@@@(!@!@!@F@@@*DDD"DDD"DDD"DDD$DDD"DDD"DDD$DDD,DDD,DDD$DDD0PPP
///@(D(D(DT+++ 
+
+
++++ +++
+
+
++++&+++"+++ +++++rrc6eZdZdZdZejjdzZdS)CPythonTracebackErrorCaretTestszS
    Same set of tests as above but with Python's internal traceback printing.
    c@ddlm}	||ddS#t$rj}t	d5}||dddn#1swxYwY|ddcYd}~Sd}~wwxYw)Nrexception_printrrlr)	_testcapirrrrrrj)r.rrr}tbstderrs     rrz-CPythonTracebackErrorCaretTests.get_exceptions------	9HJJJII,-----	9	9	9 **
#h"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#$$&&1133CRC8888888	9s>)
BBABA	B!A	"0BBBr_N)rrrrrrrrrrrrrs9999"*9A=MMMrrceZdZdZeddZdZdZdZdZ	dZ
ed	Zeed
Z
dZedZd
ZedZdZedZdZdS)TracebackFormatTestsc td)Nblah)KeyErrorr8s rsome_exceptionz#TracebackFormatTests.some_exceptionsvrNcddlm}	|td#t$rStj\}}}|||jddtj
|z}t}||||}td5}	tj|dddn#1swxYwYt}
tj||
td5}tjdddn#1swxYwYtj}t}
tj|
YnwxYw|||||	|
|||
|||
|}|d}|t'|d|d	|d
}}||d||d||d
dS)Nr)traceback_printz&unable to create test traceback stringz#Traceback (most recent call last):
rrlrrr	Traceback  Filez	    raise)rrrrrrexc_infor&rr,	format_tbrrrprint_tbrrrQrjrRrS
startswith)r.cleanup_funcrtype_r1r#
traceback_fmtfile_
python_fmtrtbfile	excstderrexcfmtrtb_linesbannerlocationsource_lines                  rcheck_traceback_formatz+TracebackFormatTests.check_traceback_formatsE------	B!!!,@AAA+	.	.	."|~~E5"'RZ(((BGGI$7$;$;<<=MJJEOB&&&..**J **
'h"2&&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'ZZFr//// **
&i#%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&)++FjjGW------'	.0	

333**,,foo.?.?@@@++--w/?/?/A/ABBB!1!1!3!3444((**!X*** (hrl+))+66777++H55666..{;;<<<<<sX+BF	C'F	'C+	+F	.C+	/6F	%E9F	E			F	E		
9F	F	c.|dSrmrr8s rtest_traceback_formatz*TracebackFormatTests.test_traceback_formats##%%%%%rc6d}||dS)Nc8|jdSrm)r$clearrs r
cleanup_tbzRTracebackFormatTests.test_traceback_format_with_cleared_frames.<locals>.cleanup_tbsKrr)r.rs  r)test_traceback_format_with_cleared_framesz>TracebackFormatTests.test_traceback_format_with_cleared_framess+	 	 	 ##J/////rcBtd5}tjtjddddn#1swxYwYt}tjtjd||||tjtjd}||d	|dS)NrlrHrr)
rr,print_stackr	_getframerrQrformat_stackr)r.ststderrstfilestfmts    rtest_stack_formatz&TracebackFormatTests.test_stack_format
s X
&
&	4(!#-"2"2333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4cmA..V<<<<**,,foo.?.?@@@&s}Q'7'788**,,bggenn=====s'AA
Ac	Fd}td5}|dddn#1swxYwY|jj}||dddt|dzfzddt|dzfzd	gdS)
Nc,tjdSrm)r,rrrrprnz2TracebackFormatTests.test_print_stack.<locals>.prns!#####rrlz)  File "%s", line %d, in test_print_stackr_z	    prn()z  File "%s", line %d, in prnrHz    traceback.print_stack())rrrrQrrjr)r.rrlrs    rtest_print_stackz%TracebackFormatTests.test_print_stacks	$	$	$
X
&
&	&CEEE															,**5577<78VAX:NN*hq-AA)	?
					s*..c d|_fdtd5}	|dn#t$r
|YnwxYwdddn#1swxYwYjj}dtd|dzdtd|dzd	td|dzd	td|dzd
}|}|}|	|dd|dd|
|d|d||d|dtj
}|ttjd
|dt%|dz
|d%fd	td5}	|dn#t&$r
|YnwxYwdddn#1swxYwYjj}	dtd|	dzdtd|	dzdtd|	dzdtd|	dzd}
dtd|	dzd}||
z}|}|	||d%fd	td5}	|dn#t&$r
|YnwxYwdddn#1swxYwYjj}
dtd|
dzdtd|
dzdtd|
dzdtd|
dzdtd|
dzd}||
z}|}|	||td5}	t(j|dn#t&$r
|YnwxYwdddn#1swxYwYdtd|	dzdtd|	dzdtd|	dzdtd|	dzd}
dtd|	d zd!}||
z}|}|	||td5}	t(jdz|dn#t&$r
|YnwxYwdddn#1swxYwYdtd|	dzdtd|	dzdtd|	dzd"td|	dzd}
dtd|	d#zd$}||
z}|}|	||dS)&NcdSrmrrksrrkzBTracebackFormatTests._check_recursive_traceback_display.<locals>.f,s
ACCCCCrrlzno recursion occurredrrrz8, in _check_recursive_traceback_display
    f()
  File "rHz, in f
    f()
  File "zn, in f
    f()
  \[Previous line repeated (\d+) more times\]
RecursionError: maximum recursion depth exceeded
rrz\d+<rc2|r|dz
Str<r)rWrts rrtzBTracebackFormatTests._check_recursive_traceback_display.<locals>.gYs#
"qqzz!rzno value error was raisedrrJz;, in g
    return g(count-1)
           ^^^^^^^^^^
  File "zc, in g
    return g(count-1)
           ^^^^^^^^^^
  [Previous line repeated 7 more times]
  File "r_z', in g
    raise ValueError
ValueError
z0, in _check_recursive_traceback_display
    g()
c<|r|dz
SdSr<r)rWrths rrzBTracebackFormatTests._check_recursive_traceback_display.<locals>.hs,
"qqzz!
ACCCCCrz8, in _check_recursive_traceback_display
    h()
  File "z;, in h
    return h(count-1)
           ^^^^^^^^^^
  File "zc, in h
    return h(count-1)
           ^^^^^^^^^^
  [Previous line repeated 7 more times]
  File "z, in h
    g()
zno error raisedMzK, in _check_recursive_traceback_display
    g(traceback._RECURSIVE_CUTOFF)
zb, in g
    return g(count-1)
           ^^^^^^^^^^
  [Previous line repeated 1 more time]
  File "lzO, in _check_recursive_traceback_display
    g(traceback._RECURSIVE_CUTOFF + 1)
)r)maxDiffrrRecursionErrorrrrrjrrQassertRegexrUrgetrecursionlimitrresearchgroupranger+r,_RECURSIVE_CUTOFF)r.
render_excstderr_frresult_frr	rec_limitstderr_glineno_gresult_gtb_linestderr_hlineno_hresult_hrkrtrs               @@@r"_check_recursive_traceback_displayz7TracebackFormatTests._check_recursive_traceback_display%s						X
&
&	3(
3		12222"




	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3:,
A
A
A)1!
A
A 
A
A*2!
A
A
 
A
A
*2!
A
A 
A
A*2!
A
A
A	$&&((""$$//11	
hssm444Xb\222

hrlF2J///)++	

c")FF2J77==??@@%	RTV_B`B`aaa						
X
&
&	7(
7		56666




	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7:,
x

!

 

*2!

 


*2!


 

*2!


	 


)1!


	
h&2244""$$//11***							
X
&
&	7(
7		56666




	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7:,


)1!

 

*2!

 


*2!


 

*2!

 

*2!


	"x'3355""$$//11***X
&
&	-(
-)-...		+,,,,




	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
x

!

 

*2!

 


*2!


 

*2!


	
3
3
3)1"
3
3
3	
h&2244""$$//11***X
&
&	-(
-)-1222		+,,,,




	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
x

!

 

*2!

 


*2!


 

*2!


	 
7
7
7)1#
7
7
7	
h&2244""$$//11*****sA'
AA'AA'AA''A+.A+$H,&
H0H,HH,HH,,H03H08M:
LML1.M0L11MMMQP/Q/QQQQQQU$T>(U$>UU$UU$$U(+U(cD|tjdSrm)rr,rr8s rtest_recursive_traceback_pythonz4TracebackFormatTests.test_recursive_traceback_pythons//	0CDDDDDrcHddlmfd}||dS)NrrcLtj\}}}|dSrmrr)exc_type	exc_valueexc_tbrs   rrzRTracebackFormatTests.test_recursive_traceback_cpython_internal.<locals>.render_excs+*-,..'HiOI&&&&&r)rrr)r.rrs  @r)test_recursive_traceback_cpython_internalz>TracebackFormatTests.test_recursive_traceback_cpython_internalsL	.-----	'	'	'	'	'	
//
;;;;;rcd}|}|jj}||dddt|dzfzdt|dzfzgdS)Nc(tjSrm)r,rrrrfmtz3TracebackFormatTests.test_format_stack.<locals>.fmts)+++rrz>  File "%s", line %d, in test_format_stack
    result = fmt()
rJzA  File "%s", line %d, in fmt
    return traceback.format_stack()
rH)rrrQr)r.rresultrs    rtest_format_stackz&TracebackFormatTests.test_format_stacks	,	,	,,
#&.q%9
:
47?6J
K'
					rcddlm}Gddt}|d}|d}	||#|$r(	|#|$rtj\}}}YnwxYwYnwxYwtd5}||dddn#1swxYwY|}	|	dt|	|	t|	d	|d
|	d|d|	d
dS)NrrceZdZdZdS)ATracebackFormatTests.test_unhashable.<locals>.UnhashableExceptioncdSNTrr.others  r__eq__zHTracebackFormatTests.test_unhashable.<locals>.UnhashableException.__eq__trNrrrrrrrUnhashableExceptionr#




rrex1ex2rlrzUnhashableException: ex2r_zUnhashableException: ex1r)
rrrrrrrrTrjrQrRcontext_messagerU)
r.rrr!r"rexc_valrrr#s
          rtest_unhashablez$TracebackFormatTests.test_unhashables------					)			"!%((!!%((	;3"	;	;	;
;	&
;
;
;,/LNN)'666
;#)6		;X
&
&	%(OG$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%


 
 
&
&
(
(
3
3
5
5SWW%%%..00"Q%888

0"Q%888

0"R&99999s<4A!<AA!AA! A!3BBBcjtd}tdD]}td|g}|S)NrHirL)rrrN)r.r}is   rdeep_egzTracebackFormatTests.deep_egs:aLLt	*	*AtaS))AArcddlm}d}|}td5}t	j|5||dddn#1swxYwYdddn#1swxYwY|}|d|||	d|dS)NrrKrl	max_depthrN)
rrr)rrinfinite_recursionrrUassertLessEqualrW)r.rLIMITrLrrs      r(test_exception_group_deep_recursion_capiz=TracebackFormatTests.test_exception_group_deep_recursion_capisP------
\\^^
X
&
&	$(+e<<<
$
$###
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$""$$

&///V\\*:;;UCCCCCs5A1AA1A	A1!A	"A11A58A5cd}|}td5}tj|5t	jt
|||jdddn#1swxYwYdddn#1swxYwY|}|	d||
|d|dS)Nr+rlr,rN)r)rrr.r,rtyperrrUr/rW)r.r0rLrrs     r-test_exception_group_deep_recursion_tracebackzBTracebackFormatTests.test_exception_group_deep_recursion_traceback(sm
\\^^
X
&
&	J(+e<<<
J
J)$r((B8HIII
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J""$$

&///V\\*:;;UCCCCCs4B)A1%B1A5	5B8A5	9BBBcddlm}td5}|ddddn#1swxYwY||ddS)Nrrrl*zFTypeError: print_exception(): Exception expected for value, int found
)rrrrQr)r.rrls   r"test_print_exception_bad_type_capiz7TracebackFormatTests.test_print_exception_bad_type_capi2s------
X
&
&	 &OB	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 OO9	
	
	
	
	
s.22cd}|t|5tjdddddS#1swxYwYdS)Nz'Exception expected for value, int foundr6)rrr,r)r.msgs  r$test_print_exception_bad_type_pythonz9TracebackFormatTests.test_print_exception_bad_type_python=s7

#
#Is
3
3	*	*%b)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*sAAArm)rrrrrrrrrrrr
rrrr&r)r1r4r7r:rrrrrs}*=*=*=\*=X&&&000>>>{+{+{+zEEE<<\<


::\:4	D	D\	DDDD

\
*****rrzG
The above exception was the direct cause of the following exception:

zF
During handling of the above exception, another exception occurred:

rO|rwceZdZdZejjdzZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dS) BaseExceptionReportingTestsc|t|tr|S	|dS#t$r}|cYd}~Sd}~wwxYwrm)
isinstance
BaseExceptionr)r.exception_or_callabler}s   rrz)BaseExceptionReportingTests.get_exceptionPsc+];;	)((	!!#####			HHHHHH	s
%
;6;;rGcddzdSrrr8s rzero_divz$BaseExceptionReportingTests.zero_divZs	!rc|}trK||dd|d|dnJ||dd|d|d||dd|ddS)Nrz1/0 # In zero_divrrrZeroDivisionError)rjrrSrrU)r.r9rms   rcheck_zero_divz*BaseExceptionReportingTests.check_zero_div]s    	:OOE"I00::;;;MM-uRy9999OOE"I00::;;;MM-uRy999b	,,-@AA59MMMMMrc	ddzn#t$r}|}Yd}~nd}~wwxYw||}trR|t|d||ddnQ|t|d||dd||dd||dd|d	|d
dS)NrHrrGr_rFrrrz1/0 # MarkerrJ)	rF
get_reportrjrrQrRrSrrUr.rr}rms    rtest_simplez'BaseExceptionReportingTests.test_simplegsW	
aCCC 			AAAAAA	""--//  	FSZZ+++OOE!H//0CDDEEEESZZ+++OOE!H//0CDDEEEa++K88999a++H55666

neAh/////s
cnfdfd}t|}t	|d|dt
|dd|ddS)Ncf	dS#t$r
}t|d}~wwxYwrmrCrFr)r}r.s rinner_raisez;BaseExceptionReportingTests.test_cause.<locals>.inner_raisexs@
&

$
&
&
&A%
&s
0+0cdSrmrrOsrouter_raisez;BaseExceptionReportingTests.test_cause.<locals>.outer_raise}KMMMMMrr_rHrinner_raise() # MarkerrJ
boundariessplitrIrQrR
cause_messagerGrUr.rRblocksrOs`  @r
test_causez&BaseExceptionReportingTests.test_causews	&	&	&	&	&
					!!$//+">">??Va(((M222F1I&&&

.q	:::::rcnfdfd}t|}t	|d|dt
|dd|ddS)Nc\	dS#t$rtwxYwrmrNr8srrOz=BaseExceptionReportingTests.test_context.<locals>.inner_raises9


$



s+cdSrmrrQsrrRz=BaseExceptionReportingTests.test_context.<locals>.outer_raiserSrr_rHrrTrJ)rVrWrIrQrRr$rGrUrYs`  @rtest_contextz(BaseExceptionReportingTests.test_contexts					
					!!$//+">">??Va(((O444F1I&&&

.q	:::::rcD		t#tdxYw#t$r}|}Yd}~nd}~wwxYw||}|t|d||dd||dd||dd|d|d	dS)
NrGr_rFrrrHrzZeroDivisionError from NonerJ)	rrFrIrjrQrRrSrrUrJs    rtest_context_suppressionz4BaseExceptionReportingTests.test_context_suppressions	
2
2'T1 			AAAAAA	""--//UQ'''a++,?@@AAAa++K88999a++H55666

3U1X>>>>>s


-(-cnfdfd}t|}t	|d|dt
|dd|ddS)Nc	n#t$r}|}Yd}~nd}~wwxYw	tdS#t$r	t|wxYwrm)rCrFxyzzy	NameErrorr)_er}r.s  rrOzGBaseExceptionReportingTests.test_cause_and_context.<locals>.inner_raisesv


$




&
&
&
&A%
&s
.).;AcdSrmrrQsrrRzGBaseExceptionReportingTests.test_cause_and_context.<locals>.outer_raiserSrr_rHrrTrJrUrYs`  @rtest_cause_and_contextz2BaseExceptionReportingTests.test_cause_and_contexts	&	&	&	&	&					!!$//+">">??Va(((M222F1I&&&

.q	:::::rcfdfd}t|}t	|d|dt
d|dd|dd|d	|d	dS)
Nc		dS#t$r}|}t|d}~wwxYw#t$r}||d}~wwxYwrmrN)r}r,r.s  rrOzEBaseExceptionReportingTests.test_cause_recursive.<locals>.inner_raisesr
*MMOOOOO(***A")*


Q
s%
3
.36
AAAcdSrmrrQsrrRzEBaseExceptionReportingTests.test_cause_recursive.<locals>.outer_raiserSrr_rHzraise KeyError from erz1/0rTrJ)	rVrWrIrQrRrXrUassertNotInrGrYs`  @rtest_cause_recursivez0BaseExceptionReportingTests.test_cause_recursives										!!$//+">">??Va(((M222

-vay999q	***	


.q	:::F1I&&&&&rcd}||}||ddd}||}||dddS)Nc"tdd)Nr)rrrhello)rPrrrr}zFBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.esb"5666rrz	        ^c$tddS)Nzx = 5 | 4 |)r5rrrr}zFBaseExceptionReportingTests.test_syntax_error_offset_at_eol.<locals>.esrz               ^)rIrjrQr.r}r9s   rtest_syntax_error_offset_at_eolz;BaseExceptionReportingTests.test_syntax_error_offset_at_eols	7	7	7ooa  ++--R+...	 	 	 ooa  ++--R"455555rc`td}||}||dgd|_||}||ddgtd}d|_||}||dgd|_||}||ddgdS)Nr^zSyntaxError: bad syntaxdz  File "<string>", line 100z	myfile.pyz#SyntaxError: bad syntax (myfile.py)z  File "myfile.py", line 100)rPrIrjrQrfilenamerrs   rtest_syntax_error_no_linenoz7BaseExceptionReportingTests.test_syntax_error_no_linenosA
%%ooa  ++--
&'	)	)	)ooa  ++--
*,EF	H	H	H
%% 
ooa  ++--
23	5	5	5ooa  ++--
+-FG	I	I	I	I	Irc|td}|d||td}|d||t}|d||td}|d|dS)NzException: None
Nonez
Exception
r)rIrrUrXs  rtest_message_nonez-BaseExceptionReportingTests.test_message_nonesooioo..

)3///ooi//00

)3///ooikk**

mS)))ooimm,,

mS)))))rctddD]Y}dD]R}d|zd|zz}dg}|dkr+|d|zn|d	krI|d|z|d
d|dz
zznB|d|z|d
dz|d|d
|t	ddd||z|f}d|}|||T[dS)Nr)rrJrDztext%dz  File "file.py", line 1rHz    %srz    %s^z     zSyntaxError: msgrr9zfile.pyrL)rappendrRrIrPrrQ)r.offsetaddrrrYexps       r!test_syntax_error_various_offsetsz=BaseExceptionReportingTests.test_syntax_error_various_offsetssuBmm	+	+F
+
+3wF!2267A::OOHt{{}}$<====q[[OOHt{{}}$<===OOIfQh$@AAAAOOHt{{}}$<===OOI$7888 2333###ook%)Qs
TX9Y&Z&Z[[ii))  c****
+	+	+rc2td}||}|d||||dz|`|d||||dz|`|d||||dz|`||||dS)N{zMy NotezMy Note
rrLz	Your Notez
Your Note
)r+rIadd_noterQ	__notes__r.r}vanillas   rtest_exception_with_notez4BaseExceptionReportingTests.test_exception_with_notessOO//!$$	

9++W{-BCCC
K	

2++Wt^<<<
K	

;++W}-DEEE
K++W55555rc~td}||}Gdd}Gdd}||_d}|||||z||_d}|||||z|dg|_d	}|||||zd
z|dg|_d}|||||zd
zdS)NrceZdZdZdZdS)OBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BadThingcdS)Nbad strrr8s rrzWBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BadThing.__str__'s yrcdS)Nbad reprrr8s r__repr__zXBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.BadThing.__repr__*s!zrN)rrrrrrrrBadThingr&s2
!
!
!
"
"
"
"
"rrceZdZdZdS)RBaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.Unprintablec tdN	bad valuerr8s rrz[BaseExceptionReportingTests.test_exception_with_invalid_notes.<locals>.Unprintable.__repr__/s ---rN)rrrrrrrUnprintabler.s#
.
.
.
.
.rrrz<__notes__ repr() failed>z
Final Noterz
Final Note
z<note str() failed>)r+rIrrQ)r.r}rrr
notes_reprrbad_notes        r!test_exception_with_invalid_notesz=BaseExceptionReportingTests.test_exception_with_invalid_notes!stsOO//!$$	"	"	"	"	"	"	"	"	.	.	.	.	.	.	.	.hjj
++Wz-ABBB!kmm-++Ww->???!

L1++Wx-?BR-RSSS$

|4'++Ww->AQ-QRRRRRrctdtdfD])}||5||}|d|d|d||||dzdzd	z|`|d
|`|d|d||||d
zdzdddn#1swxYwY+dS)Nr6r^)r}zNote 1zNote 2zNote 3zNote 1
zNote 2
zNote 3
zNote 4zNote 5zNote 6zNote 5
zNote 6
)r+rPsubTestrIrrQrrs   r"test_exception_with_multiple_notesz>BaseExceptionReportingTests.test_exception_with_multiple_notesDsR..+l";";<	7	7A""
7
7//!,,

8$$$

8$$$

8$$$  OOA&&j(:5
BDDDK

8$$$K

8$$$

8$$$  OOA&&j(:5777#
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7sC9D==E	E	c2Gdd}||j}d}d|jjj|jjjg}|d|d}||t|zdS)Nc(eZdZGddZdS)>BaseExceptionReportingTests.test_exception_qualname.<locals>.Ac*eZdZGddeZdS)@BaseExceptionReportingTests.test_exception_qualname.<locals>.A.BceZdZdZdS)BBaseExceptionReportingTests.test_exception_qualname.<locals>.A.B.XcdSNI am Xrr8s rrzJBaseExceptionReportingTests.test_exception_qualname.<locals>.A.B.X.__str___s'xrNrrrrrr^s#(((((rrN)rrrrrrrrBr]s>(((((	(((((rrN)rrrrrrrryr\s<
(
(
(
(
(
(
(
(
(
(rryrrrrL)rIrrrrrrQ
MODULE_PREFIX)r.ryrYrrrs      rtest_exception_qualnamez3BaseExceptionReportingTests.test_exception_qualname[s	(	(	(	(	(	(	(	(ooaceegg&&	88QSU-qsu/ABCC$HHiii0mc122222rctGddt}dD]}||_||5||}d}|dvr|j}n!d|j|jg}|d|d	}|||dddn#1swxYwYdS)
NceZdZdZdS)@BaseExceptionReportingTests.test_exception_modulename.<locals>.XcdSrrr8s rrzHBaseExceptionReportingTests.test_exception_modulename.<locals>.X.__str__jxrNrrrrrri#
 
 
 
 
 rr)rrsome_module)
modulenamer)rrrrrL)rrrrIrrrQ)r.rrrYrrrs       rtest_exception_modulenamez5BaseExceptionReportingTests.test_exception_modulenamehs,	 	 	 	 	 		 	 	 @
	+
	+J%AL44
+
+ooaacc**$	!999 ~HH"xxq~(FGGH$,HHiii8  c***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
	+
	+sA+B,,B0	3B0	cGddt}d|_||}d|jd}|||dS)NceZdZdZdS)LBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.XcdSrrr8s rrzTBaseExceptionReportingTests.test_exception_modulename_not_unicode.<locals>.X.__str__{rrNrrrrrrzrrrr6z
<unknown>.z	: I am X
)rrrIrrQ)r.rrYrs    r%test_exception_modulename_not_unicodezABaseExceptionReportingTests.test_exception_modulename_not_unicodeysz	 	 	 	 	 		 	 	 ooaacc""51>555c"""""rcGddt}||}d}d|j|jg}|t|z|d|ddS)NceZdZdZdS)@BaseExceptionReportingTests.test_exception_bad__str__.<locals>.XcddzdSrrr8s rrzHBaseExceptionReportingTests.test_exception_bad__str__.<locals>.X.__str__rrNrrrrrrrrrrrrrL)rrIrrrrQrrs     rtest_exception_bad__str__z5BaseExceptionReportingTests.test_exception_bad__str__s									ooaacc"".	88Q\1>:;;,.J.JY.J.J.JKKKKKrc	d}dtd|jdtd|jjdzd	}||}|||dS)NcZtdtdtdg)NrLrHrJrMrrrr0zCBaseExceptionReportingTests.test_exception_group_basic.<locals>.excs# 
1

y||'DEEErrOr?, in get_exception
  |     exception_or_callable()
  |   File "rHa, in exc
  |     raise ExceptionGroup("eg", [ValueError(1), TypeError(2)])
  | ExceptionGroup: eg (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
    +------------------------------------
rrrrrIrQr.r0rreports    rtest_exception_group_basicz6BaseExceptionReportingTests.test_exception_group_basics	F	F	F
<$
<
<.2.@
<
<%
<
</2l.IA.M
<
<
<	%%*****rc
d}dtd|jjdzdtd|jdtd|jjdzd
}||}|||dS)	Nct}	|dtdtdg#t$r.}|dtdtdg|d}~wwxYw)Neg1rHrJeg2r_rGrNr+rr)EGr}s  rr0zCBaseExceptionReportingTests.test_exception_group_cause.<locals>.excsxB
FbA	! =>>>
F
F
FbA	! =>>AE
Fs(1
A))A$$A)rOrr_a, in exc
  |     raise EG("eg1", [ValueError(1), TypeError(2)])
  | ExceptionGroup: eg1 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
    +------------------------------------

The above exception was the direct cause of the following exception:

  + Exception Group Traceback (most recent call last):
  |   File "rra, in exc
  |     raise EG("eg2", [ValueError(3), TypeError(4)]) from e
  | ExceptionGroup: eg2 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 3
    +---------------- 2 ----------------
    | TypeError: 4
    +------------------------------------
rrrrrIrQrs    rtest_exception_group_causez6BaseExceptionReportingTests.test_exception_group_causes	F	F	FC#+CC58\5PST5TCC$,CC6:5GCC$,CC69\5PST5TCCC0%%*****rcd}dtd|jjdzdtd|jjdzdtd|jdtd|jjd	zd
}||}|||dS)Nct}		|dtdtdg#|dtdtdgxYw#tdxYw)NrrHrJrr_rGr)rNr+rImportError)rs rr0zRBaseExceptionReportingTests.test_exception_group_context_with_context.<locals>.excswB
%C"UZ]]IaLL$ABBBC"UZ]]IaLL$ABBB
%!!nn$s(2*AAA0rOrrGa, in exc
  |     raise EG("eg1", [ValueError(1), TypeError(2)])
  | ExceptionGroup: eg1 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | TypeError: 2
    +------------------------------------

During handling of the above exception, another exception occurred:

  + Exception Group Traceback (most recent call last):
  |   File "ra, in exc
  |     raise EG("eg2", [ValueError(3), TypeError(4)])
  | ExceptionGroup: eg2 (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 3
    +---------------- 2 ----------------
    | TypeError: 4
    +------------------------------------

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "z7, in get_exception
    exception_or_callable()
  File "rz1, in exc
    raise ImportError(5)
ImportError: 5
rrs    r)test_exception_group_context_with_contextzEBaseExceptionReportingTests.test_exception_group_context_with_contexts	%	%	%!$!!.1l.IA.M!!%!!/2l.IA.M!!2!3!!2+/*<3!!6!7!!6+.,*E*I7!!!	@%%*****rcd}dtd|jjdzdtd|jjdzdtd|jdtd|jjd	zd
}||}|||dS)Nct}t}t}		|d|d|dg#t$r}|}Yd}~nd}~wwxYw|d|d||dg#|d|dgxYw)	NnestedrJr_rLrHrGtoprr)rVETEr}r0s     rr0zDBaseExceptionReportingTests.test_exception_group_nested.<locals>.excsBBB
)"X1rr!uu~666 CCCCCCb1sBBqEE2333
)bA(((s' 8
AA	A2	A$A22B
rOr	a, in exc
  |     raise EG("eg", [VE(1), exc, VE(4)])
  | ExceptionGroup: eg (3 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 1
    +---------------- 2 ----------------
    | Exception Group Traceback (most recent call last):
    |   File "ra, in exc
    |     raise EG("nested", [TE(2), TE(3)])
    | ExceptionGroup: nested (2 sub-exceptions)
    +-+---------------- 1 ----------------
      | TypeError: 2
      +---------------- 2 ----------------
      | TypeError: 3
      +------------------------------------
    +---------------- 3 ----------------
    | ValueError: 4
    +------------------------------------

During handling of the above exception, another exception occurred:

  + Exception Group Traceback (most recent call last):
  |   File "rr#z, in exc
  |     raise EG("top", [VE(5)])
  | ExceptionGroup: top (1 sub-exception)
  +-+---------------- 1 ----------------
    | ValueError: 5
    +------------------------------------
rrs    rtest_exception_group_nestedz7BaseExceptionReportingTests.test_exception_group_nesteds	)	)	)C#+CC58\5PST5TCC&.CC8;|7RUV7VCC.$,/CC.6:5G/CC2$,3CC269\5PSU5U3CCC@%%*****rcg}tdD]$}|t|%td|}d}||}|||dS)NrLa>  | ExceptionGroup: eg (1000 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 0
    +---------------- 2 ----------------
    | ValueError: 1
    +---------------- 3 ----------------
    | ValueError: 2
    +---------------- 4 ----------------
    | ValueError: 3
    +---------------- 5 ----------------
    | ValueError: 4
    +---------------- 6 ----------------
    | ValueError: 5
    +---------------- 7 ----------------
    | ValueError: 6
    +---------------- 8 ----------------
    | ValueError: 7
    +---------------- 9 ----------------
    | ValueError: 8
    +---------------- 10 ----------------
    | ValueError: 9
    +---------------- 11 ----------------
    | ValueError: 10
    +---------------- 12 ----------------
    | ValueError: 11
    +---------------- 13 ----------------
    | ValueError: 12
    +---------------- 14 ----------------
    | ValueError: 13
    +---------------- 15 ----------------
    | ValueError: 14
    +---------------- ... ----------------
    | and 985 more exceptions
    +------------------------------------
)rr}r+rNrIrQ)r.excsr(rLrrs      r test_exception_group_width_limitz<BaseExceptionReportingTests.test_exception_group_width_limit&s~t	'	'AKK
1

&&&&
D$
'
'!BF$$*****rc	td}tdD]3}td|t||t|g}4d}||}|||dS)Nbad typerrLa  | ExceptionGroup: eg999 (3 sub-exceptions)
  +-+---------------- 1 ----------------
    | ValueError: 999
    +---------------- 2 ----------------
    | ExceptionGroup: eg998 (3 sub-exceptions)
    +-+---------------- 1 ----------------
      | ValueError: 998
      +---------------- 2 ----------------
      | ExceptionGroup: eg997 (3 sub-exceptions)
      +-+---------------- 1 ----------------
        | ValueError: 997
        +---------------- 2 ----------------
        | ExceptionGroup: eg996 (3 sub-exceptions)
        +-+---------------- 1 ----------------
          | ValueError: 996
          +---------------- 2 ----------------
          | ExceptionGroup: eg995 (3 sub-exceptions)
          +-+---------------- 1 ----------------
            | ValueError: 995
            +---------------- 2 ----------------
            | ExceptionGroup: eg994 (3 sub-exceptions)
            +-+---------------- 1 ----------------
              | ValueError: 994
              +---------------- 2 ----------------
              | ExceptionGroup: eg993 (3 sub-exceptions)
              +-+---------------- 1 ----------------
                | ValueError: 993
                +---------------- 2 ----------------
                | ExceptionGroup: eg992 (3 sub-exceptions)
                +-+---------------- 1 ----------------
                  | ValueError: 992
                  +---------------- 2 ----------------
                  | ExceptionGroup: eg991 (3 sub-exceptions)
                  +-+---------------- 1 ----------------
                    | ValueError: 991
                    +---------------- 2 ----------------
                    | ExceptionGroup: eg990 (3 sub-exceptions)
                    +-+---------------- 1 ----------------
                      | ValueError: 990
                      +---------------- 2 ----------------
                      | ... (max_group_depth is 10)
                      +---------------- 3 ----------------
                      | ValueError: -990
                      +------------------------------------
                    +---------------- 3 ----------------
                    | ValueError: -991
                    +------------------------------------
                  +---------------- 3 ----------------
                  | ValueError: -992
                  +------------------------------------
                +---------------- 3 ----------------
                | ValueError: -993
                +------------------------------------
              +---------------- 3 ----------------
              | ValueError: -994
              +------------------------------------
            +---------------- 3 ----------------
            | ValueError: -995
            +------------------------------------
          +---------------- 3 ----------------
          | ValueError: -996
          +------------------------------------
        +---------------- 3 ----------------
        | ValueError: -997
        +------------------------------------
      +---------------- 3 ----------------
      | ValueError: -998
      +------------------------------------
    +---------------- 3 ----------------
    | ValueError: -999
    +------------------------------------
)rrrNr+rIrQ)r.r0r(rrs     r test_exception_group_depth_limitz<BaseExceptionReportingTests.test_exception_group_depth_limitRs
##t	6	6A QAZ^^466CCFBP%%*****rcd}dtd|jdtd|jjdzdtd|jjdzdtd|jjdzd	}||}|||dS)
Nc(	g}dD]U}	t|#t$r7}|d|||Yd}~Nd}~wwxYwtd|#t$r}|dd}~wwxYw)Nrzterrible valuethe rt>> Multi line note
>> Because I am such
>> an important exception.
>> empty lines work too

(that was an empty line)r+rr}rNrr9r}s   rr0zHBaseExceptionReportingTests.test_exception_group_with_notes.<locals>.excs
:''C'(oo-%'''

<#<<000A'%Xt444!




7999
s7A,
A-AA,AA,,
B6BBrOrrraQ, in exc
  |     raise ExceptionGroup("nested", excs)
  | ExceptionGroup: nested (2 sub-exceptions)
  | >> Multi line note
  | >> Because I am such
  | >> an important exception.
  | >> empty lines work too
  | 
  | (that was an empty line)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "rz, in exc
    |     raise ValueError(msg)
    | ValueError: bad value
    | the bad value
    +---------------- 2 ----------------
    | Traceback (most recent call last):
    |   File "z, in exc
    |     raise ValueError(msg)
    | ValueError: terrible value
    | the terrible value
    +------------------------------------
rrs    rtest_exception_group_with_notesz;BaseExceptionReportingTests.test_exception_group_with_notess			&C#+CC595GCC$,CC69\5PST5TCC&.CC8;|7RUV7VCC(&.)CC(8;|7RUV7V)CCC4%%*****rcd}dtd|jdtd|jjdzdtd|jjdzdtd|jjdzd	}||}|||dS)
Nc	g}dD]m}	t|#t$rO}|d||d|||Yd}~fd}~wwxYwtd|#t$r0}|d|dd}~wwxYw)NrrzGoodbye rrzGoodbye!rrs   rr0zQBaseExceptionReportingTests.test_exception_group_with_multiple_notes.<locals>.excs
:''C'(oo-%'''

<#<<000

#3c#3#3444A'%Xt444!




7999

:&&&
s8B
A1AA,'B,A11B
B>+B99B>rOrrra^, in exc
  |     raise ExceptionGroup("nested", excs)
  | ExceptionGroup: nested (2 sub-exceptions)
  | >> Multi line note
  | >> Because I am such
  | >> an important exception.
  | >> empty lines work too
  | 
  | (that was an empty line)
  | Goodbye!
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "rz, in exc
    |     raise ValueError(msg)
    | ValueError: bad value
    | the bad value
    | Goodbye bad value
    +---------------- 2 ----------------
    | Traceback (most recent call last):
    |   File "z, in exc
    |     raise ValueError(msg)
    | ValueError: terrible value
    | the terrible value
    | Goodbye terrible value
    +------------------------------------
rrs    r(test_exception_group_with_multiple_noteszDBaseExceptionReportingTests.test_exception_group_with_multiple_notess			*C#+CC595GCC$,CC69\5PSU5UCC&.CC8;|7RUV7VCC,&.-CC,8;|7RUV7V-CCC:%%*****rcnd}d}|}d}|jj}tj||||}t	}||_dtd|d}||}	dd|		dD}	|
|	|dS)Nc(tjSrmrrrrrrkzTBaseExceptionReportingTests.test_KeyboardInterrupt_at_first_line_of_frame.<locals>.f
s=??"rrrrz', in f
    def f():

KeyboardInterrupt
rLc6g|]}|Sr)rstrip.0ls  r
<listcomp>z]BaseExceptionReportingTests.test_KeyboardInterrupt_at_first_line_of_frame.<locals>.<listcomp>!s CCC1AHHJJCCCr)rrtypes
TracebackTyper{rrrIrrWrQ)
r.rkr&rlastirr#r0rrs
          r-test_KeyboardInterrupt_at_first_line_of_framezIBaseExceptionReportingTests.test_KeyboardInterrupt_at_first_line_of_frames	#	#	#*

 %
?
?!!+'++17+++%%CCT0B0BCCCDD*****rN)#rrrrrrrrCrGrKr[r_rarhrmrsrwrzrrrrrrrrrrrrrrrrrrrrr=r=Ns"*9A=MNNN000 ;;;;;;
?
?
?;;;('''.	6	6	6III2	*	*	*+++&666$!S!S!SF777.333+++"	#	#	#LLL+++(!+!+!+F,+,+,+\/+/+/+b*+*+*+XP+P+P+d/+/+/+b4+4+4+l+++++rr=ceZdZdZdS)PyExcReportingTestsc||}dtjt	|||j}t
d5}tjt	|||jdddn#1swxYwY||	||S)Nrrl)
rrr,rr3rrrrQr)r.r}ssios    rrIzPyExcReportingTests.get_report+sq!!GG&tAww1?CC
E
E
X
&
&	C#%d1ggq!/BBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C+++s )BBBN)rrrrIrrrrr%s#rrc$eZdZedZdS)CExcReportingTestscddlm}||}td5}||dddn#1swxYwY|S)Nrrrl)rrrrr)r.r}rrs    rrIzCExcReportingTests.get_report:s------q!!
X
&
&	!OA															zz||sAA
AN)rrrrrIrrrrr5s/
\rrc`eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)
LimitTestsze Tests for limit argument.
        It's enough to test extact_tb, extract_stack and format_exception c td)NzLast raised)rr8s rlast_raises1zLimitTests.last_raises1Hs
&&&rc.|dSrm)rr8s rlast_raises2zLimitTests.last_raises2Krc.|dSrm)rr8s rlast_raises3zLimitTests.last_raises3Nrrc.|dSrm)rr8s rlast_raises4zLimitTests.last_raises4Qrrc.|dSrm)r
r8s rlast_raises5zLimitTests.last_raises5Trrc(tjSrmrr8s rlast_returns_frame1zLimitTests.last_returns_frame1Ws}rc*|Srm)rr8s rlast_returns_frame2zLimitTests.last_returns_frame2Z'')))rc*|Srm)rr8s rlast_returns_frame3zLimitTests.last_returns_frame3]rrc*|Srm)rr8s rlast_returns_frame4zLimitTests.last_returns_frame4`rrc*|Srm)rr8s rlast_returns_frame5zLimitTests.last_returns_frame5crrcnfd}fd}tjtdd5|}t|d|d|dd||d	|d
dd|d|dd||d
|dd	t|dz
dz
|d
gt`|||ddt_||dd|d|dd|d|ddd
t_|gdt_|gddddS#1swxYwYdS)Nc(tjfi|Srmr,
extract_stack)kwargsrs rextractz.LimitTests.test_extract_stack.<locals>.extracths*5;;F;;;rc|d||d|||dzd||dzdt|t|dSr<)rQrR)rrignorer.s   rassertEqualExceptz8LimitTests.test_extract_stack.<locals>.assertEqualExceptjsVGVG_hww.?@@@VF1HII.0CDDDS[[#h--88888rtracebacklimitrrrJlimitrruiirHrr_rEr)rr	swap_attrr
assertGreaterrRrQr!)r.rr nolimrs`   @rtest_extract_stackzLimitTests.test_extract_stackfs((**	<	<	<	<	<	9	9	9	9	9

s$4d
;
;	,	,GIIEs5zz1---WW1---uRSSz:::ggC000%,EEEWW2...bqb	:::ggD1115#;E

1QOOOWW1---r222"ggii555!"CWWYYbcc
333WW1---uRSSz:::WW2...bqb	:::!"CWWYY+++!#CWWYY+++#	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,sG!H**H.1H.c	|n'#t$rtj\}}YnwxYwfd}t	jtdd5|}|t|d||d|dd||d|||d|dd||d	|||d
gt`|||dt_|||dd||d|dd||d|ddd
t_||gd
t_||gddddS#1swxYwYdS)Nc(tjfi|Srm)r,
extract_tb)rr#s rrz+LimitTests.test_extract_tb.<locals>.extracts'55f555rr!rrrJr"rrrr_rEr	rrrrrr$rQrRr!)r.rr
rr&r#s     @rtest_extract_tbzLimitTests.test_extract_tbs	5	5	5	5&)lnn#Hi	5	6	6	6	6	6
s$4d
;
;	,	,GIIESZZ---WW1---uRaRy999WW2...666WW2...bcc
;;;WW3///777WW1---r222"WWYY...!"CWWYYbqb	222WW1---uRaRy999WW2...bcc
;;;!"CWWYY+++!#CWWYY+++#	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,s!<<GII	I	c	|n'#t$rtj\YnwxYwfd}t	jtdd5|}|t|d||d|dd||d|||d|dd||d	|||d
gt`|||dt_|||dd||d|dd||d|ddd
t_||gd
t_||gddddS#1swxYwYdS)Nc<tjfi|ddS)NrHr)r,r)rrr
r#s rrz1LimitTests.test_format_exception.<locals>.extracts,-h	2PPPPQRSUQUVVrr!rrrJr"rrr+rr_rErr,)r.rr&rr
r#s   @@@rtest_format_exceptionz LimitTests.test_format_exceptions	5	5	5	5&)lnn#Hi	5	W	W	W	W	W	W	W
s$4d
;
;	,	,GIIESZZ---WW1---uRaRy999WW2...666WW2...bcc
;;;WW3///777WW1---r222"WWYY...!"CWWYYbqb	222WW1---uRaRy999WW2...bcc
;;;!"CWWYY+++!#CWWYY+++#	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,s!>>#GI		I
I
N)rrrrrrrr
rrrrrrr'r-r0rrrrrCsNN'''************,,,8,,,6,,,,,rrceZdZdZdZdS)MiscTracebackCasesclfd}fdd	|n#tj\}}}YnxYw|jjjj}|t|jdtj||t|jddS)NcdSrmr)middlesrouterz,MiscTracebackCases.test_clear.<locals>.outersFHHHHHrcdSrmr)innersrr5z-MiscTracebackCases.test_clear.<locals>.middlesEGGGGGrcd}ddzdSrr)r(s rr8z,MiscTracebackCases.test_clear.<locals>.innersA
aCCCCrrHr)	rrr&r$rQrRr"r,clear_frames)r.r6rr1r#inner_framer8r5s      @@r
test_clearzMiscTracebackCases.test_clears														.EGGGG	."|~~E5"""j(09[122A666	r"""	
[122A66666s
7cd}|}|jj}||ddt|dzddft|dzddfg|t	|d	d
dS)Nc(tjSrmrrrrrz6MiscTracebackCases.test_extract_stack.<locals>.extracts*,,,rrrJr'zresult = extract()rHrz return traceback.extract_stack()rrG)rrrQrrR)r.rrrs    rr'z%MiscTracebackCases.test_extract_stacks	-	-	-!0
vax!57KL
vax,NO'				
VAY+++++rN)rrrr<r'rrrr2r2s2
7770	,	,	,	,	,rr2c,eZdZdZdZdZdZdZdS)	TestFramectjtjdtt	jddd}||d|t|d||t	jddd||t||t||||j	|
|t||tdS)NrkrHdummy)rkrHrB%"""Test cases for traceback module""")
	linecache
clearcache	lazycacheglobalsr,FrameSummaryrQtupleassertIsNonelocalsassertNotEqualobjectr	r.rks  rtest_basicszTestFrame.test_basicss-C+++"3733F	H	H	HqF	H	H	HI237CCDDDE!HH%%%	
q1%%%!(###Avxx(((I&&&&&rc
tjtjdddd}|d|jtjdt|d|jdS)NrkrHrBF)lookup_linerC)	rDrEr,rHrQ_linerFrGlinerNs  rtest_lazy_lineszTestFrame.test_lazy_liness"37FFFqw'''C+++3
F					rchtjddd}||jddS)NrkrBr,rHrQrSrNs  rtest_no_linezTestFrame.test_no_line	s4"3g66&&&&&rcltjdddd}|d|jdS)NrkrHrBrSrSrVrNs  rtest_explicit_linezTestFrame.test_explicit_line	s9"37@@@(((((rc|tjdddd}|t|ddS)NrkrHrBrSrYrG)r,rHrQrRrNs  rtest_lenzTestFrame.test_len	s="37@@@Q#####rN)rrrrOrTrWrZr\rrrr@r@s_'''"''')))$$$$$rr@cbeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)	TestStackcd}ttjd}|}|t	|t	|z
d||dd|dS)NcDttjdSrm)listr,
walk_stackrrrdeeperz)TestStack.test_walk_stack.<locals>.deeper	s	,T22333rrH)rar,rbrQrR)r.rcs1s2s    rtest_walk_stackzTestStack.test_walk_stack	s	4	4	4
)&t,,
-
-
VXXR3r77*A...ABB$$$$$rc	ddzn'#t$rtj\}}}YnwxYwtt	j|}|t|ddSr)rrrrar,walk_tbrQrR)r.rr#rs    rtest_walk_tbzTestStack.test_walk_tb	s|	&
aCCC	&	&	&|~~HAq"""	&"2&&''Q#####s!,,ctjtjd}||tjdSrm)r,StackSummaryrrbassertIsInstancer.rs  rr'zTestStack.test_extract_stack	sB"**9+?+E+EFFa!788888rctjtjdd}|t|ddS)Nrr")r,rkrrbrQrRrms  rtest_extract_stack_limitz"TestStack.test_extract_stack_limit#	sJ"**9+?+E+EQ*OOQ#####rcztjtjdtt	dd}t|dd}tjt|dfgd}tj|
|djddS)N/foo.pyrrTlookup_linesr
import sys)rDrEupdatecacherG	test_code
test_framer,rkrrrQrSr.r=rkrs    rtest_extract_stack_lookup_linesz)TestStack.test_extract_stack_lookup_lines'	si333i**q$%%"**4!Q>>*MM1L11111rctjtdd}t|dd}tjt|dfgd}|itj	tj
dt||djddS)NrqrrFrrrrt)
rDrErvrwr,rkrrrQcacherurGrSrxs    r*test_extract_stackup_deferred_lookup_linesz4TestStack.test_extract_stackup_deferred_lookup_lines0	si**q$%%"**4!Q>>*NNY_---i3331L11111rctjdg}|dg|dSNfoo.pyrHfredrSz*  File "foo.py", line 1, in fred
    line
r,rk	from_listrQrrms  rtest_from_listzTestStack.test_from_list9	sO",,.K-LMM
;<
HHJJ					rctjdg}d|d<tj|}|dg|dS)Nr)rrJrrSrz*  File "foo.py", line 2, in fred
    line
r)r.rres   rtest_from_list_edited_stackz%TestStack.test_from_list_edited_stack?	sn",,.K-LMM,!

#
-
-a
0
0
;<IIKK					rctjdg}|dg|dSr~rrms  rtest_format_smokezTestStack.test_format_smokeG	sQ
",,.K-LMM
;<
HHJJ					rcNtjdttdd}t	|tddi}t
jt|dfgd}|	|dj
dd	idS)
Nrqr	somethingrHrTcapture_localsr1rDrurGrvrwr,rkrrrQrKrxs    rtest_localszTestStack.test_localsO	si333i**q'))k1%566"**4!Q>>$*OO1{C&899999rcFtjdttdd}t	|tddi}t
jt|dfg}|	|dj
ddS)NrqrrrHrrrrxs    rtest_no_localszTestStack.test_no_localsV	si333i**q'))k1%566"**4!Q>>::1d+++++rcd}|dd}|dt|jjdzfzg|dS)Ncrd}d}tjtjdddS)NrHrJT)rr#)r,rkrrb)kvrr&s    r
some_innerz0TestStack.test_format_locals.<locals>.some_inner^	sAAA)11$T**4q2JJ
Jrr_rGzw  File "%s", line %d, in some_inner
    return traceback.StackSummary.extract(
    a = 1
    b = 2
    k = 3
    v = 4
)rQrrrr)r.rrs   rtest_format_localszTestStack.test_format_locals]	s{	J	J	J

Jq!
'
(;(JQ(NOP
xxzz					rcGddtjfd}|}||td|jjdzgdS)NceZdZdZdS)>TestStack.test_custom_format_frame.<locals>.CustomStackSummaryc$|jd|jS)N:)rvr)r.
frame_summarys  rformat_frame_summaryzSTestStack.test_custom_format_frame.<locals>.CustomStackSummary.format_frame_summaryo	s'0II=3GIIIrN)rrrrrrrCustomStackSummaryrn	s(
J
J
J
J
JrrcVtjddS)NrHr")rr,rb)rsrrz6TestStack.test_custom_format_frame.<locals>.some_innerr	s0%--$T**!.55
5rrrH)r,rkrQrrrr)r.rrrs   @rtest_custom_format_framez"TestStack.test_custom_format_framem	s	J	J	J	J	J!7	J	J	J	5	5	5	5	5
JLL
HHJJ
C
C:.=A
C
CD	F	F	F	F	Frcdfd}|}Gddtj}|tj|d}|t
|djjdz}||ddtd	|d
dS)NcddzdSrrrrrrkz)TestStack.test_dropping_frames.<locals>.f|	
aCCCCrcR	dS#tjcYSxYwrmrrsrrtz)TestStack.test_dropping_frames.<locals>.g	s2
&
&|~~%%%s
&ceZdZfdZxZS).TestStack.test_dropping_frames.<locals>.Skip_Gc`|jdkrdSt|S)Nrt)namesuperr)r.rr|s  rrzCTestStack.test_dropping_frames.<locals>.Skip_G.format_frame_summary	s. %,,4ww33MBBBr)rrrr
__classcell__r|s@rSkip_Gr	sA
C
C
C
C
C
C
C
C
CrrrJrHrrrz, in f
    1/0
)
r,rkrrhrrQrRrrr)r.rtrrstacklnorks      @rtest_dropping_frameszTestStack.test_dropping_frames{	s				&	&	&	&	&133	C	C	C	C	CY+	C	C	Chqk**,,,2FHH		
UQ'''j'!+!H?x?????	
	
	
	
	
rN)rrrrfrir'roryr|rrrrrrrrrrrr^r^
	s%%%$$$999$$$222222:::,,, FFF




rr^ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZedZdS)TestTracebackExceptioncj	ddznh#t$r[tj}tj|}tjtj|d}YnwxYw|d|j	|d|j
|d|j|||j||d|j
|t|dt|dS)NrHrrJFrrrr,TracebackExceptionrkrrhrQ	__cause____context____suppress_context__rrr)r.rr0expected_stacks    r
test_smokez!TestTracebackException.test_smoke	s 	0
aCCC	0	0	0|~~H.9C&3;;!(1+..00NNN	0
	
s}---s/// 8999333!cl333Xa[))3s8844444sA"A-,A-cd}	|n#t$r}tj}tjtj|dddd|_tj	|ddd|_
Yd}~nd}~wwxYw|j}|j
}|d|j|d|j
|d|j|||j||d|j|t#|dt#|dS)NcddzdSrrrrrrz7TestTracebackException.test_from_exception.<locals>.foo	rrrJrHFT)r#rsrr)rrrr,rkrrhrrfrom_exceptionr0rQrrrrrr)r.rr}rrr0s      rtest_from_exceptionz*TestTracebackException.test_from_exception	s				ECEEEE	E	E	E|~~H"+"8"@"@!(1+..ae##A#%#%D!3BBtCEEDHHHHHH	E,hs}---s/// 8999333!cl333Xa[))3s8844444s

BA;BBc		ddztj}tj|}t	d}t	d|#tj}tj|}t	d}t	d|xYw#t$r[tj}tj|}tjtj|d}YnwxYwtjt|d}|||j	|||j
|d|j|||j||d|j
|t|dt|dS)NrHrcauseuh ohrJTrrr,rrrkrrhrQrrrrrr)r.exc_info_contextexc_contextrrr0r	exc_causes        rr[z!TestTracebackException.test_cause	s	0
4!#&<>> ':<LM!'**((e3$'<>> ':<LM!'**((e3333	0	0	0|~~H.9C&3;;!(1+..00NNN	0
0E4HH	CM222co666s7888333!cl333Xa[))3s8844444s%AABAB		BA"C10C1c2		ddztj}tj|}t	d#tj}tj|}t	dxYw#t$r[tj}tj|}tjtj|d}YnwxYw|d|j	|||j
|d|j|||j||d|j
|t|dt|dS)NrHrrrJFrr.rrrr0rs      rr_z#TestTracebackException.test_context	s	0
)!#&<>> ':<LM((($'<>> ':<LM((((((	0	0	0|~~H.9C&3;;!(1+..00NNN	0
	
s}---co666 8999333!cl333Xa[))3s8844444s!80A,1A))A,,A"CCcfd	|dn##t$rtj}YnwxYwt	j|}t
|}|t|tj
|td|Dtj
dz|d|ddS)Nc8	ddzdS#YdSxYwrrrsrrkz9TestTracebackException.test_long_context_chain.<locals>.f	s/
!
s
zException not raisedcg|]}d|v|	S)zZeroDivisionError:rrs  rrzBTestTracebackException.test_long_context_chain.<locals>.<listcomp>	s#===q#71#<#<#<#<#<rg?z0RecursionError: maximum recursion depth exceededr)rrrrr,rrarr%rRrrU)r.rteresrks    @rtest_long_context_chainz.TestTracebackException.test_long_context_chain	s.						.
ACCC
II,----	&	&	&|~~HHH	&

)8
4299;;	
3s88S%:%<%<=====C===>>!##c)	+	+	+	


>B	I	I	I	I	Is
(AAc*		ddztd}td|#td}td|xYw#t$r^tj}tj|ddi}tjtj|d}YnwxYwtjt|d}|||j	|d|j
|d|j|||j||d|j
|t|dt|dS)NrHrrrcompactTrJr)r.rrr0rrs      rtest_compact_with_causez.TestTracebackException.test_compact_with_cause
s
	0
4!!'**((e3"'**((e3333	0	0	0|~~H.G$GGC&3;;!(1+..00NNN	0
0E4HH	CM222s///s7888333!cl333Xa[))3s8844444s!'A
 AA

A%B21B2c8		ddztj}tj|}t	d#tj}tj|}t	dxYw#t$r^tj}tj|ddi}tjtj|d}YnwxYw|d|j	|||j
|d|j|||j||d|j
|t|dt|dS)NrHrrrTrJFrrs      rtest_compact_no_causez,TestTracebackException.test_compact_no_cause
s	0
)!#&<>> ':<LM((($'<>> ':<LM((((((	0	0	0|~~H.G$GGC&3;;!(1+..00NNN	0
	
s}---co666 8999333!cl333Xa[))3s8844444s!80A,1A))A,,A%CCc	ddzn##t$rtj}YnwxYwtj|d}tj|d}t	j|}|tj|d||tj|d|dS)NrHrrJ)rrrgetrefcountr,rrQ)r.rrefcnt1refcnt2r0s     r/test_no_refs_to_exception_and_traceback_objectszFTestTracebackException.test_no_refs_to_exception_and_traceback_objects*
s	&
aCCC	&	&	&|~~HHH	&/(1+../(1+..*H5!55w???!55w?????s((cd	ddzn?#t$r2tj}tj|}tj|}YnwxYw||||||||t||tdSr)
rrrr,rassertIsNotrQrLrMr	)r.rr0exc2s    rtest_comparison_basicz,TestTracebackException.test_comparison_basic6
s	;
aCCC	;	;	;|~~H.9C/:DDD	;	
d###d###C***i(((((s9AAc`dfd}	|n##t$rtj}YnwxYwtj|}tj|ddi}tj|ddi}||||||tj|ddi}|||tj|ddi}tj|ddd	}|||tj|dd
i}	tj|d
dd	}
||	|
dS)Nc.	td#xYwrrrrr	raise_exczKTestTracebackException.test_comparison_params_variations.<locals>.raise_excC
s!
 ---
sc&d\}}dS)N)rHrJr)r+rNrs  rraise_with_localszSTestTracebackException.test_comparison_params_variations.<locals>.raise_with_localsI
sDAqIKKKKKrr#rrJrTr)r#rr)rrrr,rrQrL)r.rrr0exc1rexc3exc4exc5exc6exc7rs           @r!test_comparison_params_variationsz8TestTracebackException.test_comparison_params_variationsB
s									&	&	&	&|~~HHH	&*H5+X@R@@+X?Q??d###C&&&+XKdKKC&&&+X@R@@+XRPTUUUt$$$+X@R@@+XRPTUUUD$'''''s
66cg}tdD]A}	ddz	#|tjt	jY?xYw||d|d|t|dt|ddSr)	rr}r,rrrrQrar)r.rrs   r/test_comparison_equivalent_exceptions_are_equalzFTestTracebackException.test_comparison_equivalent_exceptions_are_equalg
sq	K	KA
K!
KI8#,..IJJJJJa$q'***d1gnn..//d1gnn6F6F1G1GHHHHHs	4AcGddt}|d}|d}	||#|$r$	|#|$rtj}YnwxYwYnwxYwtj|}t|}|d|d|d|ddS)	NceZdZdZdS)CTestTracebackException.test_unhashable.<locals>.UnhashableExceptioncdSrrrs  rrzJTestTracebackException.test_unhashable.<locals>.UnhashableException.__eq__s
rrNrrrrrrr
r rrr!r"zUnhashableException: ex2
rJzUnhashableException: ex1
r)rrrr,rrarrU)r.rr!r"rr0	formatteds       rr&z&TestTracebackException.test_unhashableq
s					)			"!%((!!%((	*3"	*	*	*
*	&
*
*
*<>>
*		*
*H5&&	

2IaLAAA

2IaLAAAAAs*.A6AAAAAc<fd	dnm#t$r`tj}tj|ddi}tjtj|dd}YnwxYw|||j	dS)Nc6|r|dz
dSddzdSrr)nrecurses rrz2TestTracebackException.test_limit.<locals>.recurse
s-
!!rrr#rrJr")
rrrr,rrkrrhrQr)r.rr0rrs    @r
test_limitz!TestTracebackException.test_limit
s					
	9GBKKKK	9	9	9|~~H.BBBC&3;;!(1+..a<99NNN	9
	
33333sA'A>=A>ctjtd}tdd}t	|dd}t|ddd}t
jt||d}|tj	itj
dt||jdj
ddS)	NrrqrrrFrrrt)rDrErrvrwtest_tbr,rrQr{rurGrrSr.r}r=rkr#r0s      rtest_lookup_linesz(TestTracebackException.test_lookup_lines
sgi**q$%%
Q4
#
#*9a%PPP"---i3331*L99999rcvtjdttd}t	dd}t|tddd}t
|ddd}tjt||d	
}|	|j
djddddS)
NrqrrrHstring)rrrrTrrz'string'rDrurGrrvrwrr,rrQrrKrs      rrz"TestTracebackException.test_locals
si333gi**q'))1x%H%HII
Q4
#
#*q"T333IaLsZ!H!H	J	J	J	J	Jrcjtjdttd}t	dd}t|tddi}t
|ddd}tjt||}|	|j
djddS)NrqrrrrHrrrrs      rrz%TestTracebackException.test_no_locals
si333gi**q'))k1%566
Q4
#
#*9a<<1,d33333rctjttdd}|t	|dgdS)NhavenzException: haven
)r,rrrQrar)r.r0s  rtest_traceback_headerz,TestTracebackException.test_traceback_header
sP*9i6H6H$OOcjjll++.B-CDDDDDrcd}tj|ddi}t}||||dddgddS)Nc\d}	|dzdS#t$rtjcYSwxYw)Nr)rrr)r+s rrkz,TestTracebackException.test_print.<locals>.f
sFA
&!
&
&
&|~~%%%
&s++rTrrLr|)z    x/0z    ~^~z
    x = 12z#ZeroDivisionError: division by zeror)r,rrrrQrrW)r.rkr0rs    r
test_printz!TestTracebackException.test_print
s	&	&	&*AACCEEE		v	OO##D))"##.


					rN)rrrrrr[r_rrrrrrrr&rrrrrr
rrrrrr	sK
5
5
5555,555,555(III2555(555(
@
@
@
)
)
)#(#(#(JIIIBBB&
4
4
4	:	:	:	J	J	J444EEErrcHeZdZfdZdZdZdZdZdZdZ	dZ
xZS)	&TestTracebackException_ExceptionGroupsczt||_dSrm)rsetUp_get_exception_groupeg_info)r.r|s rrz,TestTracebackException_ExceptionGroups.setUp
s+


0022rcd}d}|jj|_|jj|_			|n#t$r}|}Yd}~nd}~wwxYw	|dn#t$r}|}Yd}~nd}~wwxYwtd||g#t
$r}|}Yd}~nd}~wwxYw	|dn#t$r}|}Yd}~nd}~wwxYwtd||g#t
$rt
jcYSwxYw)NcddzdSrrrrrrkzFTestTracebackException_ExceptionGroups._get_exception_group.<locals>.f
rrc t|rmr)rs rrtzFTestTracebackException_ExceptionGroups._get_exception_group.<locals>.g
sQ--rr6rr)	rrlno_flno_grrNrrr)r.rkrtr}rrrrs        rrz;TestTracebackException_ExceptionGroups._get_exception_group
s				 	 	 Z.
Z.
	"
ACCCC DDDDDDAbEEEE DDDDDD$UT4L999!




"



 t555	"	"	"<>>!!!	"s
7B
A
ABA

BAB
A3'A.)B.A33B
BBCBC"B.-C.
C8B?:C?CCC98C9c|j}tj|}tj|d}||||||dSr<)rr,rrrrQ)r.rteg1teg2s    r!test_exception_group_constructionzHTestTracebackException_ExceptionGroups.test_exception_group_construction
sb,+W5+::71:FFt$$$t$$$$$rctj|j}d|d}dd}|||dS)NrrLz'ExceptionGroup: eg2 (2 sub-exceptions)
)r,rrrr-rWrQ)r.tegrrs    r*test_exception_group_format_exception_onlyzQTestTracebackException_ExceptionGroups.test_exception_group_format_exception_only
sk*DL9GGC557788>>tDD	=CCDIIH-----rcdtj|j}d|d}|j}|j}gddtd|dzddd	d
ddtd|d
zddddddtd|dzdddtd|dzdddddddtd|dzdddtd|dzdddd d!d"dtd|d#zdd$dtd|dzdd%d&d'}|	||dS)(NrrLz6  + Exception Group Traceback (most recent call last):z  |   File "rr]z, in _get_exception_groupz1  |     raise ExceptionGroup("eg2", [exc3, exc4])z*  | ExceptionGroup: eg2 (2 sub-exceptions)(  +-+---------------- 1 ----------------z8    | Exception Group Traceback (most recent call last):z    |   File "z3    |     raise ExceptionGroup("eg1", [exc1, exc2])z,    | ExceptionGroup: eg1 (2 sub-exceptions)*    +-+---------------- 1 ----------------z*      | Traceback (most recent call last):z      |   File "rz      |     f()rHrz      |     1/0z      |     ~^~z+      | ZeroDivisionError: division by zero*      +---------------- 2 ----------------
z      |     g(42)z, in gz      |     raise ValueError(v)z      | ValueError: 42+      +------------------------------------(    +---------------- 2 ----------------z(    | Traceback (most recent call last):rz    |     g(24)z    |     raise ValueError(v)z    | ValueError: 24)    +------------------------------------)
r,rrrrrWr
rrrQ)r.rrr
rrs      rtest_exception_group_formatzBTestTracebackException_ExceptionGroups.test_exception_group_format
s*DL9GGCJJLL))//55	

"M"X8XXU2XXXX"I"B	"
@"P
"[XZZuRxZZZ"K"D"B"B"\x[[q[[["'"IxHHqHHH"'" '!""C#"$B%"&B'"(]x\\r\\\)"*)+",IxHHqHHH-".7/"0.1"2C3"4@5"6@7"8[XZZuRxZZZ9":';"<GXFFuQwFFF=">5?"@,A"BAC"DE"H	
H-----rc>g}g}tdD]$}|t|%tdD]$}|t|%t}|d|d||d|g}t
j|d}d|	
d	}d
ddd
ddddddddd
ddddddg}|||dS)Nr_rrLrrrJ)max_group_widthrrLz)  | ExceptionGroup: eg (2 sub-exceptions)rz,    | ExceptionGroup: eg1 (3 sub-exceptions)rz      | ValueError: 0r      | ValueError: 1z,      +---------------- ... ----------------z      | and 1 more exceptionrrz-    | ExceptionGroup: eg2 (10 sub-exceptions)z      | TypeError: 0z      | TypeError: 1z      | and 8 more exceptions)rr}r+rrNr,rrrrrWrQ)	r.excs1excs2r(rrLrrrs	         rtest_max_group_widthz;TestTracebackException_ExceptionGroups.test_max_group_width,sEq	(	(ALLA''''r	'	'ALL1&&&&

Rrr%''E5)9)9:
;
;*99"a9PPGGCJJLL))//55	A?CA,A,C3B?DA+A+C4B),	
H-----rctd}tdD]0}tdt||t|g}1tj|d}d|	d}dd	d
ddd
dddddddddg}|
||dS)Nrr_r0rJ)max_group_depthrrLz*  | ExceptionGroup: exc (3 sub-exceptions)rz    | ValueError: -2rz,    | ExceptionGroup: exc (3 sub-exceptions)rz      | ValueError: -1rz"      | ... (max_group_depth is 2)z*      +---------------- 3 ----------------r"rz(    +---------------- 3 ----------------z    | ValueError: 2r)rrrNr+r,rrrrrWrQ)r.r0r(rrrs      rtest_max_group_depthz;TestTracebackException_ExceptionGroups.test_max_group_depthRs
##q	N	NA QBjmm(LMMCC*99#q9QQGGCJJLL))//55	B?+?CA-A9A,B?*@!$	
H-----rcv	|jd#t$rtj}YnwxYwt	dD]$}	|d#tj}Y"xYwtj|}tj|}tj|ddi}tj|ddi}||||||||||	|||	|t||tdS)NrHrr#i,r_)rrNrrrr,rrrQrLrMr	)r.rrr0rrnes       rtest_comparisonz6TestTracebackException_ExceptionGroups.test_comparisonnsK	&,q/!	&	&	&|~~HHH	&q	*	*A
*qk!
*<>>*H5+X6+XASAA

)8
=1
=
=d###d###d###C$$$C***i(((((s
//AA#)rrrrrrrrr%r(r+rrs@rrr
s33333***@%%%...+.+.+.Z$.$.$.L...8)))))))rrceZdZdZdS)MiscTestcHt}dh}ttD][}|ds||vrt	t|}t	|dddkr||\|tj|dS)N
print_listrrr,)setdirr,rgetattrrassertCountEqual__all__)r.rdenylistr
module_objects     rtest_allzMiscTest.test_alls55 >	NN	#	#Ds##
tx'7'7#It44M}lD99[HHT"""i/:::::rN)rrrr7rrrr-r-s#	;	;	;	;	;rr-);rcollectionsriorrDrrrunittestrtestrtest.supportrrrr	r
rrtest.support.os_helperr
rtest.support.script_helperrrosrpr,	functoolsrrrrvco_positionsrwrTestCaser)rrrrXr$r7escaperVr=rrrr2r@r^rrr-mainrrr<module>rEs%%""""""



				//////////////////21111111NNNNNNNN				"*j"8"88b
Jv
y9::	77	
Z!D!D!D
E
E

*TKKK
L
LU*U*U*U*U*X&U*U*U*p
A	+A	+A	+A	+A	+x'8A	+A	+A	+H>>>>>&F>>>"q*q*q*q*q*8,q*q*q*j&
&RZZ=))))929_+E+E+E+EFHH
T+T+T+T+T+T+T+T+n




5x7H


 4h6Gu,u,u,u,u,"u,u,u,p&,&,&,&,&,*&,&,&,R&$&$&$&$&$!&$&$&$RH
H
H
H
H
!H
H
H
VqqqqqX.qqqh	u)u)u)u)u)X->u)u)u)p;;;;;x ;;;zHMOOOOOr