python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_fstring.cpython-312.pyc

ΑeddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZm
Z
dZGddejZedk(rej"yy)	N)support)temp_cwd)assert_python_failureassert_python_okzglobal variableceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZej*ej.ddZej*ej.ddZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6Z;d7Z<d8Z=d9Z>d:Z?d;Z@d<ZAd=ZBd>ZCd?ZDd@ZEdAZFdBZGdCZHdDZIdEZJdFZKdGZLdHZMdIZNdJZOdKZPdLZQdMZRdNZSdOZTdPZUdQZVdRZWdSZXdTZYdUZZyV)WTestCasec|D]C}|j|5|j||5t|ddddddEy#1swYxYw#1swY\xYw)Nstr)subTestassertRaisesRegexeval)selfexception_typeregex
error_stringsrs     E/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_fstring.pyassertAllRaisezTestCase.assertAllRaisese 	C#&
++NEBI

	

s!AA
A
AAA	cBGdd}|}|}tjd||_|j|t	||j|d|jt	|t	||j|jdd|j|jdd|jt|j|dd|jt|j|ddy)NceZdZdZy)(TestCase.test__format__lookup.<locals>.Xcy)Nclassrspecs  r
__format__z3TestCase.test__format__lookup.<locals>.X.__format__(sN__name__
__module____qualname__rrrrXr's
rr#cy)Ninstancerrs  r<lambda>z/TestCase.test__format__lookup.<locals>.<lambda>0srrr%)types
MethodTyperassertEqualformattype)rr#xys    rtest__format__lookupzTestCase.test__format__lookup%s		
C
C''(EqIA3+A3)F1I.
	
b)73b):6	
a++Ar2G<a++Ar2G<rcGdd}|}d}tj|}t|dd}|j|jt||j
|jy)NceZdZdZdZy)TestCase.test_ast.<locals>.Xcd|_y)NFcalledrs r__init__z%TestCase.test_ast.<locals>.X.__init__Cs	#rcd|_y)NTr4r6s r__call__z%TestCase.test_ast.<locals>.X.__call__Es"rN)r r!r"r7r:rrrr#r2Bs
$
rr#
a = 10
f'{a * x()}'r'exec)astparsecompileassertFalser5r<
assertTrue)rr#r-exprtcs      rtest_astzTestCase.test_ast@sh		
C
IIdOAr6"	
"	
Q	
!rcFd}tj|}|jt|tj|jt|jd|jt|jdtj|j|jdjd|jt|jdtj|jt|jdjtj|jt|jdjjd|jt|jdjjdtj|j|jdjd|j|jdjjd|j|jdjjdjd|jdjjdj}|jt|tj|jt|jtj |jt|j"tj$|jt|j&tj(|j|jd|j|jjd|j|j&jd|j|j*d|j|jj*d|j|j&j*dy)Nr;r)r=r>r*r,ModulelenbodyAssignlinenoExprvalue	JoinedStrvaluesFormattedValueBinOpleftNameopMultrightCall
col_offsetrrBrCbinops    rtest_ast_line_numberszTestCase.test_ast_line_numbersXs
IIdOa#**-QVVa(affQi#**5))1-affQi#((3affQioo.

>QVVAY__334a8affQioo44Q78#:L:LM))1-//3//2991=q	&&q)//ecii0ejj)3884ehh2ekk*CHH5q)**A.++Q/))1-..2//3rcd}tj|}|jt|tj|jt|jd|jt|jdtj|jt|jdjtj|j|jdjd|jt|jdtj|jt|jdjtj|jt|jdjjd|jt|jdjjdtj|jt|jdjjdjt|jt|jdjjdtj|jt|jdjjdtj|jt|jdjjdjt|jt|jdjjdtj|j|jdjd|j|jdjjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|jdjjdj}|jt|tj|jt|j tj"|jt|j$tj&|jt|j(tj*|j|jd|j|j jd|j|j(jd|j|j,d|j|j j,d|j|j(j,d|jdjjdj}|jt|tj|jt|j tj"|jt|j$tj.|jt|j(tj*|j|jd|j|j jd|j|j(jd|j|j,d	|j|j j,d	|j|j(j,d
y)Nz8
f'no formatted values'
f'eggs {a * x()} spam {b + y()}'rGrrHr9rI)r=r>r*r,rKrLrMrPrQrRrOrSConstantrrTrUrVrWrXrYrZr[r\Add)rrBrCbinop1binop2s     r.test_ast_line_numbers_multiple_formattedvaluesz7TestCase.test_ast_line_numbers_multiple_formattedvalueswsw$
IIdOa#**-QVVa(affQi#((3affQioo.

>))1-affQi#((3affQioo.

>QVVAY__334a8affQioo44Q78#,,GaffQioo44Q7==>DaffQioo44Q78#:L:LMaffQioo44Q78#,,GaffQioo44Q7==>DaffQioo44Q78#:L:LM))1-//3//2991=//2991=//2991=//2991=''*00fsyy1fkk*CHH5fii#((3fll+SXX6*++Q/,,a0**A.//300"5''*00fsyy1fkk*CHH5fii#''2fll+SXX6*++Q/,,a0**B///400"5rc^
d}tj|}|jt|tj|jt|jd|jt|jdtj|j|jdjd|jt|jdtj|jt|jdjtj|jt|jdjjd|jt|jdjjdtj|j|jdjd|j|jdjjd|j|jdjjdjd|jdjjdj}|jt|tj|jt|jtj |jt|j"tj$|jt|j&tj|j|jd|j|jjd|j|j&jd|j|j(d|j|jj(d|j|j&j(d|jt|j&jd|jt|j&jdtj*|jt|j&jdjt,|jt|j&jdtj|jt|j&jdtj*|jt|j&jdjt,|j|j&jdjd|j|j&jdjd|j|j&jdjd|j&jdj}|jt|tj.|j|jd|j|j(dy)Nz
a = 10
f'{a * f"-{x()}-"}'rGrrHrIrJ)r=r>r*r,rKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr\rerr[)rrBrCr^calls     rtest_ast_line_numbers_nestedz%TestCase.test_ast_line_numbers_nestedsi
IIdOa#**-QVVa(affQi#**5))1-affQi#((3affQioo.

>QVVAY__334a8affQioo44Q78#:L:LM))1-//3//2991=q	&&q)//ecii0ejj)3884ehh2ekk*CMM:q)**A.++Q/))1-..2//3U[[//0!4ekk0034cllCekk00399:C@ekk0034c6H6HIekk0034cllCekk00399:C@++A.55q9++A.55q9++A.55q9{{!!!$**dSXX.a("-rcd}tj|}|jt|tj|jt|jd|jt|jdtj|j|jdjd|jt|jdtj|jt|jdjtj|jt|jdjjd|jt|jdjjdtj|jt|jdjjdtj|jt|jdjjdjt|jt|jdjjdtj|jt|jdjjdtj|jt|jdjjdjt|jt|jdjjdtj|j|jdjd|j|jdjjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|jdjjdj}|jt|tj |jt|j"tj$|jt|j&tj(|jt|j*tj,|j|jd|j|j"jd|j|j*jd|j|j.d|j|j"j.d|j|j*j.d|jdjjdj}|jt|tj |jt|j"tj$|jt|j&tj(|jt|j*tj,|j|jd|j|j"jd|j|j*jd|j|j.d	|j|j"j.d	|j|j*j.d
|jdjjdj}|jt|tj |jt|j"tj$|jt|j&tj(|jt|j*tj,|j|jd|j|j"jd|j|j*jd|j|j.d|j|j"j.d|j|j*j.dy)
Nz)
a = 10
f'{a * x()} {a * x()} {a * x()}'
rGrrHrIr9rJ
rcrd)r=r>r*r,rKrLrMrNrOrPrQrRrSrTrerrUrVrWrXrYrZr[r\r]s    r*test_ast_line_numbers_duplicate_expressionz3TestCase.test_ast_line_numbers_duplicate_expressions
IIdOa#**-QVVa(affQi#**5))1-affQi#((3affQioo.

>QVVAY__334a8affQioo44Q78#:L:LMaffQioo44Q78#,,GaffQioo44Q7==>DaffQioo44Q78#:L:LMaffQioo44Q78#,,GaffQioo44Q7==>DaffQioo44Q78#:L:LM))1-//3//2991=//2991=//2991=//2991=//2991=q	&&q)//ecii0ejj)3884ehh2ekk*CHH5q)**A.++Q/))1-..2//3q	&&q)//ecii0ejj)3884ehh2ekk*CHH5q)**A.++Q/))2...3//4q	&&q)//ecii0ejj)3884ehh2ekk*CHH5q)**A.++Q/))2...3//4rctjd}|jt|jd|j|jdj
d|jt
|jdtj|jt
|jdjtj|jt|jdjjd|jt
|jdjjdtj|jt
|jdjjdtj|jt
|jdjjdtj|jdjj\}}}|j}|jt
|tj|j|j
d|j|jd|j|jd|j|j dy)Nz%f"Here is that pesky {xxx:.3f} again"rHrrIrG)r=r>r*rLrMrOr,rPrQrRrSrerTrW
end_linenor\end_col_offset)rrC_rBnames     r(test_ast_numbers_fstring_with_formattingz1TestCase.test_ast_numbers_fstring_with_formattingsII=>QVVa())1-affQi#((3affQioo.

>QVVAY__334a8affQioo44Q78#,,GaffQioo44Q78#:L:LMaffQioo44Q78#,,GVVAY__++
4zzdSXX.a(!,"-,,b1rcnd}tj|}|jt|tj|jt|jd|jt|jdtj|j|jdjd|jt|jdtj|jt|jdjtj|jt|jdjjd|jt|jdjjdtj|jt|jdjjdjt|jt|jdjjdtj|jt|jdjjdtj|jt|jdjjdjt|j|jdjd|j|jdjjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|j|jdj d|j|jdjj d|j|jdjjdj d|j|jdjjdj d|j|jdjjdj d|jdjjdj}|jt|tj"|jt|j$tj&|jt|j(tj*|jt|j,tj.|j|jd|j|j$jd|j|j,jd|j|j d|j|j$j d|j|j,j d	d
}tj|}|jt|tj|jt|jd|jt|jdtj|jt|jdjtj|jt|jdjjd|jt|jdjjdtj|j|jdjd|j|jdjjd|j|jdjjdjd|j|jdjjdjd|j|jdjjdjd|j|jdj d|j|jdjj d|j|jdjjdj d|j|jdjjdj d|j|jdjjdj d
|j|jdjjdjjd|j|jdjjdjj0d|j|jdjjdjj d|j|jdjjdjj2dy)Nz?
a = 10
f'''
  {a
     *
       x()}
non-important content
'''
rGrrHrIr9rkrJz$
a = f'''
          {blech}
    '''
ra
rq)r=r>r*r,rKrLrMrNrOrPrQrRrSrerrTr\rUrVrWrXrYrZr[rvrwr]s    r'test_ast_line_numbers_multiline_fstringz0TestCase.test_ast_line_numbers_multiline_fstring1s
IIdOa#**-QVVa(affQi#**5))1-affQi#((3affQioo.

>QVVAY__334a8affQioo44Q78#,,GaffQioo44Q7==>DaffQioo44Q78#:L:LMaffQioo44Q78#,,GaffQioo44Q7==>D))1-//3//2991=//2991=//2991=--q133Q7//2==qA//2==qA//2==rBq	&&q)//ecii0ejj)3884ehh2ekk*CHH5q)**A.++Q/))1-..2//3

IIdOa#**-QVVa(affQi#**5affQioo.

>QVVAY__334a8affQioo44Q78#:L:LM))1-//3//2991=//2991=//2991=--q133Q7//2==qA//2==rB//2==rB//288??C//288CCQG//288CCRH//288GGLrc^
d}tj|}|jt|tj|jt|jd|jdj}|jt|tj|j|jd|j|jd|j|jd|j|jd|jdjjd}|jt|tj|j|jd|j|jd|j|jd|j|jd|jdjjdj}|jt|tj|j|jd|j|jd|j|jd	|j|jd
d}tj|}|jt|tj|jt|jd|j\}}|jj Dcgc]}|j|jf}	}|j#t%d
|	D|jj Dcgc]}|j|jf}	}|j#t%d|	Dd}tj|}|jt|tj|jt|jd|jdjj d}
|jt|
tj|jt|
jd|
j\}}}
|jt|tj&|j|jd|j|jd|j|jd|j|jd|j}|jt|tj|j|jd|j|jd|j|jd|j|jd|jt|
tj&|j|
jd|j|
jd|j|
jd|j|
jd|j|
jdycc}wcc}w)Nz
x = (
    f" {test(t)}"
)rHrrIr9rqrJr~raz
x = (
    u'wat',
    u"wat",
    b'wat',
    b"wat",
    f'wat',
    f"wat",
)

y = (
    u'''wat''',
    u"""wat""",
    b'''wat''',
    b"""wat""",
    f'''wat''',
    f"""wat""",
)
        rGc3&K|]	}|dk(yw))r9r}Nr.0offsets  r	<genexpr>zBTestCase.test_ast_line_numbers_with_parentheses.<locals>.<genexpr>

g
c3&K|]	}|dk(yw))r9Nrrs  rrzBTestCase.test_ast_line_numbers_with_parentheses.<locals>.<genexpr>rrzv
x = (
        'PERL_MM_OPT', (
            f'wat'
            f'some_string={f(x)} '
            f'wat'
        ),
)
rorrdr| )r=r>r*r,rKrLrMrQrRrOrvr\rwrSrTr[eltsrAallre)rrBrC	joinedstrfvrlr-r.eltoffsetsfstringwat1middlewat2s              r&test_ast_line_numbers_with_parenthesesz/TestCase.test_ast_line_numbers_with_parenthesess
IIdOa#**-QVVa(FF1IOO	i#--8))1---q1--q11126
VVAY__
#
#A
&b3#5#56A&****B/vvay%%a(..dSXX.a(!,!,,,b1&
IIdOa#**-QVVa(vv1
ww||
^^S//0

	

!

	ww||
^^S//0

	

!

	

IIdOa#**-QVVa(&&)//&&q)g

6W^^,a0$^^fddS\\2a(!,"-,,b1||dSXX.a(!,"-,,b1dS\\2a(!,"-	
,,b1//4u

s,Z%Z*cd}tj|}|jt|tj|jt|jd|jdj}|jt|tj|jt|jd|jd}|jt|tj|j}|jt|tj|jt|jdy)Nz
f'{expr:}'rHr)r=r>r*r,rKrLrMrQrRrSrTformat_spec)rrBmodrrrs      r"test_ast_fstring_empty_format_specz+TestCase.test_ast_fstring_empty_format_specsiiocCJJ/SXX*((1+##g

6W^^,a0
^^A
b3#5#56nnk*CMM:[//0!4rc|d}|j|jd}|j|jy)NcyNrrrrfz"TestCase.test_docstring.<locals>.fsrcyrrrrrgz"TestCase.test_docstring.<locals>.g	s!r)assertIsNone__doc__)rrrs   rtest_docstringzTestCase.test_docstrings2	#!))$		
!))$rc|jtd5tjddddy#1swYyxYw)Nzmalformed node or stringzf'x')r

ValueErrorr=literal_evalr6s rtest_literal_evalzTestCase.test_literal_evals6

#
#J0J
K	%V$	%	%	%s6?cdg}d}tj|}t|dd}t||j	|ddy)Nr'zx[0] = 'foo' f'{3}'r<rfoo3)r=r>r?r<r*)rr-rBrCrDs     rtest_ast_compile_time_concatz%TestCase.test_ast_compile_time_concatsD
D(IIdOAr6"Q1v&rc6|jtdddgy)Nz&cannot mix bytes and nonbytes literalszf'' b''zb'' f''rSyntaxErrorr6s rtest_compile_time_concat_errorsz(TestCase.test_compile_time_concat_errorss KD++	 rcp|jd|jdd|jddy)Nr'a r*r6s rtest_literalzTestCase.test_literal"s2b!1s#1s#rc6|jtdgdy)Nzunterminated string)zf'{"x'zf'{"x}'zf'{("x'zf'{("x}'rr6s rtest_unterminated_stringz!TestCase.test_unterminated_string'sK)>	 rzexhausts limited stack on WASIc*|jtddg|jtddg|jtddg|jtddg|jtdd	g|jttd
y)Nz@closing parenthesis '\}' does not match opening parenthesis '\('zf'{((}'z@closing parenthesis '\)' does not match opening parenthesis '\['z	f'{a[4)}'z@closing parenthesis '\]' does not match opening parenthesis '\('z	f'{a(4]}'z@closing parenthesis '\}' does not match opening parenthesis '\['zf'{a[4}'zf'{a(4}'af'{((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((}')rrassertRaisesrr6s rtest_mismatched_parenszTestCase.test_mismatched_parens/sK*G&	 	
K*G(		
K*G(		
K*G'		
K*G'		
+t-CDrc||jtddgfd|jtddgy)Nz'f-string: expressions nested too deeplyzf"{1+2:{1+2:{1+1:{1}}}}"c2|dk(ry|dz
}d|dS)Nrz1+1rHzf"{z}"r)nprevcreate_nested_fstrings  rrzFTestCase.test_fstring_nested_too_deeply.<locals>.create_nested_fstringMs*Av(1-D$s##rztoo many nested f-stringsr)rrs @rtest_fstring_nested_too_deeplyz'TestCase.test_fstring_nested_too_deeplyGsAKE78	:	$	
K72378	:rc4|jtddgy)Ninvalid syntaxaf"{1 1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:{f"1:rr6s r#test_syntax_error_in_nested_fstringz,TestCase.test_syntax_error_in_nested_fstringWsK,89	;rc|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jd	d	|jd
d
|jdd|jdd|jd
d
|jdd|jdd|jdd|jddd|jddd|jddd|jddd|jddd|jddd|jddd|jddd|jdd|jtddgy) N{za{z{bza{b}za}z}bza}bz{}za{}z{b}z{}cza{b}za{}cz{b}cza{b}cr}z{10z}10z}{z}{10z}a{z}a{10z10{z10}z10}{z}a{}z10}a{}z{{}}zunhashable typezf'{ {{}} }')r*r	TypeErrorr6s rtest_double_braceszTestCase.test_double_braces]s2$3&3&4%(2$3&3&4%(4$'55)55)55)6F+6F+6F+7W-2bTE*2bTE*4tf-5w/B4rE*B4rE*B4tf-B4z)84	
F8f-I'8*	 rc*d}|jd|dd|jd|dd|jd|d|dd|jd	|d
|jd|d|jd	|d
|jd
|d|jd|d|jd|d|j|dd|j|d|j|d|j|d|j|dd|jd|dd|jd|d|j|d|d|jd|jd|jd|jd|jd|jd|jd|jdd|jtddgy)Ndefzabc## ghizabc## defghiabc	abcdefghi4z
abcdefghidef z{x}z{x}defz{xz{xdefz{{x}}z{{x}}defz{{xz{{xdefzx}}zx}}defzdefx}}2def211def21def-zdef-defr'z fz
expecting '}'z
f'{3' f"}"r*rrrr-s  rtest_compile_time_concatz!TestCase.test_compile_time_concats$QCs+^<!e+[9!hqe4oF!x0g.!x0A34!x0!x0A3x0A3E*qcu-qcE*A3V,sC1sV,A3!A33$B'+b!$R(+	
D6D)K-	 rcddi}|jdd|j|dd|jtdgd|jtddg|jddd	|jd
dd|jd
dd|jd
dd|jd
dd|jtddgy)N#hashz'{' was never closed)zf'{1#}'zf'{#}'zf'one: {1#}'z(f'{1# one} {2 this is a comment still#}'f-string: unmatched '\)'zf'{)#}'zA complex trick: rGzA complex trick: 2
*z
42z
# this is not a comment
r|z
# this is not a comment
6Vz
86.f-string: valid expression required before '}'zf'''
{
# only a comment
}'''
rrds  r
test_commentszTestCase.test_commentssL
&MC53'AcF8f-K)?	 	
K)D&	 	
./		


		


		

(		)
	

			
K)Z	 rcldd}d}d}tddD])}|jt|||dz|z+|jt|ddz|dzd	z|d
d}|jt||dzdzd
dz}|jt|dy)Ncdd|zz|zdzS)Nf'z{x} 'r)rextras  r
build_fstrz2TestCase.test_many_expressions.<locals>.build_fstrs6A:&.44rr#rHiriz{x:{width}} zf'{1}' 'x' 'y'i1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy1xy)r')ranger*r)rrr-widthiss      rtest_many_expressionszTestCase.test_many_expressionss
	5
sC	=AT*Q-01S5!)<	=	
joc12QsUW4EFsN+a1S5#+.
t#a,/rc	Nd}d}tjd}|jd||d|dd|jd||d|dd|jd||dd|d	dd|jd|d
ddd|d	dd|jd|d
ddd|d	dd|jddd
d
d|jddd	dddd|jdddd	ddd|jdddd
dddd|jdddddik7xr|dd|jd||ddd|d	dd|jtddg|jtddg|jtddgy)Nr}r9z12.34567zresult: .r'zresult:      12.350rrHrr0xz
       0xar-irz
      -0xarIrozf-string: expecting ':' or '}'zf'{"s"!r{":10"}}'0f-string: expecting a valid expression after '{'zf'{4:{/5}}'&f-string: invalid conversion characterzf'{"s"!{"r"}}')decimalDecimalr*rr)rr	precisionrQs    r!test_format_specifier_expressionsz*TestCase.test_format_specifier_expressionss7	
+8E5'9+P)=#>?AUV8E5)1YKp)?#@ACWX8E5)1YqM)A#BCEYZ8E1#aU!Ia=)@#ABDXY8EA$!fAy^0)C#DEG[\Bq2g;6BuAaSPo.>C#as!|,|<CQqc3%p/0<@Bqqe!5 6a78<H8E5!@+Qym0)C#DEG[\K)I4	 
	
KN*	 	
K)Q2	 rcGdd}|j|dd|j|dd|jt5tdd|idddy#1swYyxYw)NceZdZdZy);TestCase.test_custom_format_specifier.<locals>.CustomFormatc|Srr)rrs  rrzFTestCase.test_custom_format_specifier.<locals>.CustomFormat.__format__s""rNrrrrCustomFormatrs
#rrru☃uf"{F():¯\_(ツ)_/¯}"F)r*assertWarns
SyntaxWarningr<)rrs  rtest_custom_format_specifierz%TestCase.test_custom_format_specifierss	#	#	
LN2.6LN62U;


m
,	A*S,,?@	A	A	AsA**A3cTGdd}|}|j|d|dy)NceZdZdZdZy)*TestCase.test_side_effect_order.<locals>.Xcd|_y)Nr)rr6s rr7z3TestCase.test_side_effect_order.<locals>.X.__init__s	rcV|xjdz
c_t|jS)NrH)rrrs  rrz5TestCase.test_side_effect_order.<locals>.X.__format__ s!466{"rN)r r!r"r7rrrrr#rs

#rr#rz1 2r)rr#r-s   rtest_side_effect_orderzTestCase.test_side_effect_orders/	#	#
CA3asU+rc|jtdgd|jtdgd|jtdgd|jtdgd|jtd	d
dgy)Nr)zf'{}'z
f'{ }'f' {} 'zf'{10:{ }}'zf' { } 'z
f'''{	
}'''z.f-string: valid expression required before '!')zf'{!r}'zf'{ !r}'zf'{!}'zf'''{	
!a}'''zf'{!'zf'{!s:'zf'{!x}'z	f'{ !xr}'zf'{!x:}'z	f'{!x:a}'z
f'{ !xr:}'zf'{ !xr:a}'z.f-string: valid expression required before ':')zf'{:}'zf'{ :!}'zf'{:2}'zf'''{	
:a}'''zf'{:'z.f-string: valid expression required before '=')zf'{=}'zf'{ =}'zf'{ =:}'z
f'{   =!}'zf'''{	
=}'''zf'{='z'invalid non-printable character U\+00A0uf'''{ }''' rr6s rtest_missing_expressionz TestCase.test_missing_expression'sKL		 	
KL	 ,	
KL	 	
KL	 	
K)S,#	 rc|jdd|jtddg|jtddgy)N)rIz(3,)rzf'{,}'rz
f'{3)+(4}'rr6s rtest_parens_in_expressionsz#TestCase.test_parens_in_expressionsdsLB4&)KN%	 
	
K)D)	 rc6|jtdgdy)Nr)zf'{.}'z
f'{.}'z

f'{.}'rr6s r!test_newlines_before_syntax_errorz*TestCase.test_newlines_before_syntax_errorpsKN4	6rcJ|jdd|jdd|jdd|jddd|jdddd|jddd|jdd|jd	d	|jd	d	|jddd
|jdddd|jddd|jdd|jd
d
|jd
d
|jddd
|jdddd|jddd|jdd|jddd
|jdddd|jddd|jd
d
|jdd|jdd|jdd|jdd|jdd|jddd|jdddd|jddd|jdd|jdd|jdd|jt5td}ddd|jd|jt5td}ddd|j|d|jddd|jdddd}|jdd|jd|d|jd|d|jddy#1swYxYw#1swYxYw)N	z\trGz2	rIz2	3z	3uΔz\u0394u2Δu2Δ3uΔ3z
\U00000394rz\x20z2 z2 3z 3z	f'\{6*7}'z\42zf'\g'z\g\rspam&z\Nz\Nspamz\&)r*rrr)rrQ	AMPERSANDs   rtest_backslashes_in_string_partz(TestCase.test_backslashes_in_string_partus2%&B'A3b5)A3bf-2aS5)6H-I.FY/A3fy1A3fQC*56!y1:1
6J7A3j)95A3j,j9:aS)959HEA3<=yIA3<QC@*M9!=yI:YG;jI:YG4#&'*D7+A3dT*A3d1#.4sT*54(6E*54(


m
,	'&E	''


m
,	#NE	#&2cUV,AcUV,		
=3/3yk*I6Byk*I6?U3	'	'	#	#s1N
,N
NN"c6|jtdgdy)Nzi\(unicode error\) 'unicodeescape' codec can't decode bytes in position .*: malformed \\N character escape)
zf'\N'zf'\N 'zf'\N  'zf'\N{'z f'\N{GREEK CAPITAL LETTER DELTA'z'\N'z'\N 'z'\N  'z'\N{'z'\N{GREEK CAPITAL LETTER DELTA'rr6s r%test_misformed_unicode_character_namez.TestCase.test_misformed_unicode_character_names	
K*V
	 rc|jdd|jdd|jdd|jdd|jtddgy)NrI3rrzf'{
}'rr6s r#test_backslashes_in_expression_partz,TestCase.test_backslashes_in_expression_partsu	
	
13745<56=KL&	 rcdDcgc]}dD]}|j|}}}|jtd|ycc}}w)N)z{expr}z
f'{{{expr}}}'zrf'{{{expr}}}')z\'a\'z\t3r)rBz,unexpected character after line continuation)r+rr)r
formattingrBcasess    r/test_invalid_backslashes_inside_fstring_contextz8TestCase.test_invalid_backslashes_inside_fstring_contextsc





4(
(

	
K)W!	#
s Ac|jdd|jdd|jdd|jddy)z@
        Only literal curly braces begin an expression.
        z{1+1}z{1+1Nrr6s rtest_no_escapes_for_bracesz#TestCase.test_no_escapes_for_bracessE
	
9w/7V,9v.KgVrcP|jdd|jddy)NrrrJ7rr6s rtest_newlines_in_expressionsz%TestCase.test_newlines_in_expressionss/A3% 
	rcd|jfddd|jfdddd|jfdddd	|jtd
gd|jtd5t	d
ddddd|jtd5tddddy#1swY4xYw#1swYyxYw)Nroc|zSrrr.r-s rr&z&TestCase.test_lambda.<locals>.<lambda>acr8z'88888'c|zSrrr-s rr&z&TestCase.test_lambda.<locals>.<lambda>r.r10z
'88888'   c|zSrrr-s rr&z&TestCase.test_lambda.<locals>.<lambda>r.rz
88888     z@f-string: lambda expressions are not allowed without parentheses)zf'{lambda x:x}'zf'{lambda :x}'zf'{lambda *arg, :x}'zf'{1, lambda:x}'zf'{lambda x:}'z
f'{lambda :}'rz)lambda name_3=f'{name_4}': {name_3}
1 $ 1z<string>r<rzf'{+ lambda:None}')r*rrr
r?rrs @rtest_lambdazTestCase.test_lambdas
\3/2Y?\3/"5E\3/3lC
	
K2		 
#
#K1A
B	V@*fU	V
#
#K1c
d	'%&	'	'		V	V	'	's	C
5C
CCcv|jdd|jdd|jddy)NrHrrGrrIr rr6s rtest_valid_prefixeszTestCase.test_valid_prefixess8A3%QC#&QC#&rc|jdd|jdd|jdd|jdd|jdd|jdd|jddy)Nz\'z\"z\"\'z\'\"z\"\'\"z\'\"\'z\"\'\"\'rr6s rtest_roundtrip_raw_quotesz"TestCase.test_roundtrip_raw_quotesssB'B'D9-D9-F\2F]3H'78rcgd}|D]\\}}|j||5|jt5t|}ddd|j	|ddd^|j	dd|j	dd|j	ddd|j	ddd|j	ddd	y#1swYxYw#1swYxYw)
N))z	f'\{{\}}'\{\})f'\{{'\{)zf'\{{{1+1}'\{2)zf'\}}{1+1}'\}2)zf'{1+1}\}}'2\})caseexpected_resultr9r;rGr<z\}r=r>)rrrrr*)rdeprecated_casesr?r@results     r,test_fstring_backslash_before_double_bracketz5TestCase.test_fstring_backslash_before_double_brackets
&6	:!D/4I
:%%m4(!$ZF(  9
:
:	:
	
FX.C%(Cuv.Cuv.SEv.((
:
:s"CC
C
CCC	c|jt5}tdddd|jt	j
d|j|j
djty#1swY\xYw)Nr:rHr)rrrr*rLwarningscategory)rws  r7test_fstring_backslash_before_double_bracket_warns_oncez@TestCase.test_fstring_backslash_before_double_bracket_warns_once0sd


m
,	O	QZZ!,A//?		sA==Bc|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jddy)Nrz\\z\\\\rr6s r!test_fstring_backslash_prefix_rawz*TestCase.test_fstring_backslash_prefix_raw6s2%4&)B'D7+B'D7+B'D7+B'D7+B'D7+rcd|jddd|jddddddy)NrHrz1}z>3ror'z$                                  1}rr6s r(test_fstring_format_spec_greedy_matchingz1TestCase.test_fstring_format_spec_greedy_matchingDs;AQ4rD)Ab0V9B)OPrcd}|d}|jt|d|jt|dy)Nc3*Kd|dzdyw)Nzy:rGr)r.s rfnzTestCase.test_yield.<locals>.fnKsqsgsr9ra)r*next)rrOrs   r
test_yieldzTestCase.test_yieldHs:	
qEa!$a$'rcd}|d}t|}|j|dd|j|jddy)Nc3&Kdfdyw)Nx:c|zSrr)rr-s rr&z6TestCase.test_yield_send.<locals>.fn.<locals>.<lambda>UsArrr-s`rrOz$TestCase.test_yield_send.<locals>.fnTso./00sr}r9(stringzx:string)rPr*send)rrOr
the_lambdas    rtest_yield_sendzTestCase.test_yield_sendSsH	1
rF!W
A+):6rc4|jdd|jdd|jdd|jdd|jdd|jdd|jdd|jddy)Nr-zeric'szxeric"syzxeric"szeric"syrr6s r+test_expressions_with_triple_quoted_stringsz4TestCase.test_expressions_with_triple_quoted_strings\sG9s+L>H5	
01J?,-	:,-	:45
C89JG9:ZHrcd}d}|j||d|jd||d|j|d|d|j||dd|jd|d|d	|jd||dd
|j|d|dd|jd|d|dd
y)Nbr98abcr#X98abc98Xabc98abcXYX98YabcX98abcY98XabcYZX98YabcZrrr-r.s   rtest_multiple_varszTestCase.test_multiple_varshsA3qcG,1QCsX.A3asX.A3qcX.1QCqi01QCs!i0A3as!i01QCq1z2rc~d}|j|dd|j|ddy)Ncfd}|S)NcdS)NrTrrVsrinnerz3TestCase.test_closure.<locals>.outer.<locals>.innerysA3xrr)r-ros` routerz$TestCase.test_closure.<locals>.outerxs

 Lr987zx:987rJzx:7r)rrps  rtest_closurezTestCase.test_closurews9	
	
u1qU+rc|dfd}|j|dddd}|j|dddy)NrGcd|z|dS)Nx=r'r)r-rr.s  rrz"TestCase.test_arguments.<locals>.fs!UG08}%%rfoor}zx=foofoo    barzx=        20r)rrr-r.s   @rtest_argumentszTestCase.test_argumentss@
	&	
5"~62rN3rc2d}|jd|dy)N{v:zv:123r)rrQs  rtest_localszTestCase.test_localss2eWw/rcj|jt5dtdddy#1swYyxYw)Nr{)r	NameErrorrQr6s rtest_missing_variablezTestCase.test_missing_variables.


y
)	L			s
)2cGdd}|j|dd|j|d|j|d|jdd|jddy)NceZdZdZy),TestCase.test_missing_format_spec.<locals>.Oc|sy|S)N*rrs  rrz7TestCase.test_missing_format_spec.<locals>.O.__format__s
rNrrrrOrs
rrr-rrIr r)rrs  rtest_missing_format_specz!TestCase.test_missing_format_specsv			
AC7S)AC53'ACq6C(AQ4#&Aq6C(rc<|jdtd|jdtdd}|jdtd|d|jdtd|jdtd|d|jdty)	Ng:zg:global variablezg:'global variable'local variable l:z"g:global variable l:local variablez$g:global variable l:'local variable'zmodule 'unittest' from)r*a_globalassertInunittest)ra_locals  rtest_globalzTestCase.test_globals2hZ*=>2h\*,AB"2hZs7)4=	?2h\*.	02hZs7+6?	A	


.8*>rcd}|jd|d|jd|dd}|jd|d|d|jd|d|jd|d|dy)	Nzreally a localrzg:really a localzg:'really a local'rrz!g:really a local l:local variablez#g:really a local l:'local variable'r)rrrs   rtest_shadowed_globalzTestCase.test_shadowed_globals#2hZ*<=2h\*,@A"2hZs7)4<	>2h\*-	/2hZs7+6>	@rc<d}|j|ddy)Ncdt|zS)Nrur
rVs rrvzTestCase.test_call.<locals>.foos#a&= rr}zx=10r)rrvs  r	test_callzTestCase.test_calls	!	
CG9v.rcdd}|jddzd|j|dzdy)NrorrI000555r)rr.s  rtest_nested_fstringszTestCase.test_nested_fstringss7
qc1H:.qc1H:.rcgd}|Dcgc]}|jdd}}|jtd||zycc}w)N)zfu''zuf''zFu''zfU''zUf''zuF''zufr''zurf''zfur''zfru''zrfu''zruf''zFUR''zFur''zfb''zfB''zFb''zFB''zbf''zbF''zBf''zBF''r"r)replacerr)rsingle_quote_casesr?double_quote_casess    rtest_invalid_string_prefixesz%TestCase.test_invalid_string_prefixessP&,BTTdll34TTK)9.1CC	EUs?c	X|jdd|jdd|jdd|jdd|jddDcic]\}}||
c}}d|jddDcic]\}}||
c}}dycc}}wcc}}w)NrIr zexpr=))rHrGzexpr={1: 2}rrjs   rtest_leading_trailing_spacesz%TestCase.test_leading_trailing_spacessQ4#&a53'A4#&A53'5J"?DAq1a4"? @A&	(5J"?DAq1a4"? AB&	(#@"?s
B 
B&c|jddk7d|jddk7d|jddk7d|jddk7ddy)NrIr9Truez.3Trurr6s rtest_not_equalzTestCase.test_not_equals`
	
AqD6F+AqD7V,AqD8f-AqD2;/rc0|jddk(dy)NrrHFalserr6s rtest_equal_equalzTestCase.test_equal_equals	
AqD6G,rc,|jddd|jddd|jddd|jddd|jdd|jdd|jdd|jdd|jddd|jd	d	|jdd
d|jtdgd
|jtdgddD]#}|jtd|zd|zdzg%dD] }|jtdd|zdzg"dD] }|jtdd|zdzg"|jtdgdy)NgQ	@z10.10z
      3.14z
3.14      rz'a'rIr za!rz!<10.10z
3.14!!!!!!f-string: expecting '}')f'{3!'f'{3!s'zf'{3!g'z&f-string: missing conversion character)zf'{3!}'zf'{3!:'zf'{3!:}')rAGäuɐzDf-string: invalid conversion character %r: expected 's', 'r', or 'a'zf'{3!z}')r !r)z sz s zFf-string: conversion type must come right after the exclamanation markzFf-string: invalid conversion character 'ss': expected 's', 'r', or 'a')z	f'{3!ss}'z
f'{3!ss:}'zf'{3!ss:s}'r)rconv_identifierconv_non_identifierconvs    rtest_conversionszTestCase.test_conversionssD<,7D5>L9D5>L9D5>L9C53'C7U+C7U+	
A7S)DU+l;	
E7U+	
D>L9K)B	 	
K)Q	  9	DO!<>M!N!(?!:T!A B
D	D$,	H H!(+>!>!E F
H	H
 	9D!6!(4$!6 7
9	9	
K8	 rc6|jtdgdy)Nr)zf'' = 3z
f'{0}' = xz
f'{x}' = xrr6s rtest_assignmentzTestCase.test_assignment5sK):	 rc6|jtdddgy)Nrzdel f''z
del '' f''rr6s rtest_delzTestCase.test_del<s K)9&)	 rc@|jtdgd|jtdgd|jtddg|jdd|jdd|jd	dd
d|jddd
d
y)Nz#f-string: single '}' is not allowed)zf'{{}'zf'{{}}}'zf'}'zf'x}'zf'x}x'z
f'\u007b}'zf'{3:}>10}'zf'{3:}}>10}'r)zf'{3'rzf'{3:'rzf'{3!s:'z	f'{3!s:3'zf'x{'zf'x{x'zf'{x'zf'{3:s'zf'{{{'zf'{{}}{'zf'{'zf'{i='rzf'{3:{{>10}'rrrIz>10z
}}}}}}}}}3rGz
{{{{{{{{{2)rrr*r6s rtest_mismatched_braceszTestCase.test_mismatched_bracesBsK)N
	 	
K)B	 "	
KN+	 	
C53'C53'Ase3Y<,7Ase3Y<,7rcfd}fd}fd}|dd|dd|dd|dd|dd|ddy)Nc>d}|rd}nd}j||yNrrHrGrr-expectedflagrs   rtest_fstringz2TestCase.test_if_conditional.<locals>.test_fstringqs)DvT8,rc>d}|rd}nd}j||yrrrs   rtest_concat_emptyz7TestCase.test_if_conditional.<locals>.test_concat_emptyys)DCyT8,rcBd}d|rd}nd}j||y)NrrrHrGrrs   rtest_concat_non_emptyz;TestCase.test_if_conditional.<locals>.test_concat_non_emptys+DaSzT8,rr'rGrrHr)rrrrs`   rtest_if_conditionalzTestCase.test_if_conditionallsP
	-	-	-	RS!"a #q!b!$c1%rcd}|j|d|j|d|j|d|j|dy)Ntestz'test'rrs  rtest_empty_format_specifierz$TestCase.test_empty_format_specifiersUA3(AQ4&)Aq6F+Aq6H-rcddd}d}|j|dd|j|dd|j||d|jdj|d|jdj|dy)	NrXinteger)rrrrz{d[a]})rz{d[0]})r*r+)rrrs   rtest_str_format_differencesz$TestCase.test_str_format_differencess

AaD6I.AcF8h/AaD6I.1-x81-y9rch|jtdddg|jtdddgy)Nunsupportedzf'{(lambda: 0):x}'zf'{(0,):x}'zUnknown format codezf'{1000:j}')rrrr6s rtest_errorszTestCase.test_errorss?I}2+	 	
J(=++	rcPt5}tjj|d}t	|dd5}|jddddt
|d\}}}ddd|jjddy#1swYExYw#1swY8xYw)	Nzt.pyrGutf-8)encodingzf"{a b}"ascii)PYTHONIOENCODINGbackslashreplace)	rospathjoinopenwriterrencode)rcwd	file_pathrrxstderrs      rtest_filename_in_syntaxerrorz%TestCase.test_filename_in_syntaxerrors
Z	K3S&1Iiw7
$1
#
$0BIKLAq&		K	


i&&w0BCVL	
$
$	K	Ks"/BBBB	BB%cftdD]#}|jd|dt|z%y)Nizi:)rr*r)rrs  r	test_loopzTestCase.test_loops3t	6Ar!Xtc!f}5	6rcdddd}|j|dd|j|dd|j|dd|j|ddy)Ndquotesquoterw)rrrvrrrvrrs  r	test_dictzTestCase.test_dictsl
	
afX(3afX(3AeH:.AeH:.rcp|jtdd|jtddy)Nzf"\
"r'zf"\
")r*rr6s rtest_backslash_charzTestCase.test_backslash_chars,	
i"-i"-rc	P	d|jddtz|jddtz|jddtz|jddtz|jddtzd|jdddt	dz|jddt	dz|jdddt	tdz|jdddt	tdz|jdddt	tdzd|jd	d
zdzdd
}|jd|dd|jddd|jdddddd}|jd|dd|jdd
d|jddk(d |jddk7d!|jddkd!|jddk\d |jd"xd"|jd"|jd#xd"|jd#|jd$d$d%|jd&d'fd(}d|j|d)*d+|jd)|j|d,*d)|jd,Gd-d.}|jd/|d0|jd/|d0|jd/|d1|jd/|d2d3|jd/|d4d5|jd/|dd6|jttd7d8|jd9d:d9tzd:z|jd;d:d;tzd:z|jd<d:d<tzd:z|jd=d:d=tzd:z|jd>d?d?d@dAdBy)CNzA stringruzx =g	@z.2fr'z^20	z3*x+15=rIrz	3*x+15=42gffffff?@utenπ=utenπ=31.40u"Σ"=uΣu	"Σ"='Σ'z3.1415=go!	@z.1fz*^20z*****3.1415=3.1*****uπualpha α pi=u	 ω omegaualpha α pi='π' ω omegaz
3
=z
3
=3rrHrr5ro==10
        20c}||Srr)roldxr-s  rrz)TestCase.test_debug_conversion.<locals>.f	sDAKrz3=)rrr9ceZdZdZdZy))TestCase.test_debug_conversion.<locals>.Ccd|S)NzFORMAT-r)rrs  rrz4TestCase.test_debug_conversion.<locals>.C.__format__s }$rcy)NREPRrr6s r__repr__z2TestCase.test_debug_conversion.<locals>.C.__repr__srN)r r!r"rrrrrCrs
%
rrzC()=zC()=REPRzC()=FORMAT-rzC()=FORMAT- r-zC()=FORMAT-xzC()=********REPR********zf'{C=]'rvzXx=rdzXx  =zXx=  zXx  =  zsadsd 1 + 1 =  rG1drzsadsd 1 + 1 =  2.000000)r*reprrrr+rrr)rtenπpirrr-s     @rtest_debug_conversionzTestCase.test_debug_conversionsBA4$a.1CA5547?3BA6D3q6M2BA6D47N3BA6D58O4BAs8dVAu-=&=>BAa54&B-#78BA:vd1gu/E(EFBA:vc!fe/D(DEBA:veAh/F(FG
GAaCF9{3FE3<-8	
ED7]3	
wvsm,T25KL=RE35PQ	
		
AqD6G,AqD6F+AqD6F+AqD6G,VQ:,C TQ8c*AC53'	
Ac7\2	

AI;-D!AF8d+A			
DAC6J/DAC8j1DAC7]3DAC8n5DAC8n5DAC4=)+EF+tY7
4QDE$q'M#$56	
6QF!gd1goc&9:6QF!gd1goc&9:8QHA	$q'(9#(=>+%U2Ja<!89;TUrc~d}|j|dd|jdx}d|j|dy)Nrrrr}r1rrs  rtest_walruszTestCase.test_walrus7sE	
Ac7\2	
UQ9t,Brct|jtd5tddddddy#1swYyxYw)N/f-string: expecting '=', or '!', or ':', or '}'z
f'{a $ b}'?r<r
rr?r6s r!test_invalid_syntax_error_messagez*TestCase.test_invalid_syntax_error_messageAs7

#
#K$UW	/L#v.	/	/	/s.7ctjd}|jt|5dddddy#1swYyxYw)NzCannot specify ',' with ','.rHz,,reescaper
rr	error_msgs  r(test_with_two_commas_in_format_specifierz1TestCase.test_with_two_commas_in_format_specifierF=II<=	

#
#J	
:	f				:Actjd}|jt|5dddddy#1swYyxYw)NzCannot specify '_' with '_'.rH__rrs  r,test_with_two_underscore_in_format_specifierz5TestCase.test_with_two_underscore_in_format_specifierKr
rctjd}|jt|5dddddy#1swYyxYw)N Cannot specify both ',' and '_'.rHz,_rrs  r8test_with_a_commas_and_an_underscore_in_format_specifierzATestCase.test_with_a_commas_and_an_underscore_in_format_specifierP=II@A	

#
#J	
:	f			rctjd}|jt|5dddddy#1swYyxYw)NrrHz_,rrs  r7test_with_an_underscore_and_a_comma_in_format_specifierz@TestCase.test_with_an_underscore_and_a_comma_in_format_specifierUrrc|jtd5tdddddd|jtd5tddddddy#1swY6xYw#1swYyxYw)Nz!can't use starred expression herezf'{*a}'rr<rzf'{**a}'rr6s r)test_syntax_error_for_starred_expressionsz2TestCase.test_syntax_error_for_starred_expressionsZsp

#
#K1T
U	,IsF+	,
#
#K$VX	-JV,	-	-	,	,	-	-sAA&A#&A/c$|jtdddg|jtdddgd}	t|dd	y#t$rB}|j|jd
|j|j
dYd}~yd}~wwxYw)Nzunterminated f-string literalzf"rz+unterminated triple-quoted f-string literalzf"""zf'''zNx = 1 + 1
y = 2 + 2
z = f"""
sdfjnsdfjsdf
sdfsdfs{1+
2} dfigdf {3+
4}sdufsd""
rr<zz = f"""rI)rrr?r*textrO)rdataes   rtest_not_closing_quotesz TestCase.test_not_closing_quotesbsK)H4QU,WK)V#V,	.	*D#v&	*QVVZ0QXXq))	*s
A	B
8B

Bch|jtdgd|jtdddgy)Nr)z	f'{1=}{;'z
f'{1=}{+;'zf'{1=}{2}{;'zf'{1=}{3}{;'rz
f'{1=}{1;'zf'{1=}{1;}'rr6s rtest_syntax_error_after_debugz&TestCase.test_syntax_error_after_debugus:K)[		
K)Z , -	rcft5d}tdd5}|jddddt|\}}}ddd|j	jdj
jddjdddy#1swYpxYw#1swYexYw)	N	script.pyrGzprint(f'''{
3
=}''')rz
r
z3
=3)rrrrr*decodestripr)rscriptrrxstdouts     rtest_debug_in_filezTestCase.test_debug_in_files
Z	4 Fk3'
1
,F3LAvq	4	
w/557??MUUVZ\`a 	"

	4	4s!B'BB'B$	 B''B0cZt5d}t|d5}|jddddt|\}}}|j	d||jt
|jjddddy#1swYjxYw#1swYyxYw)NrrGzprint(f'\{1}')s\1rG)	rrrrrr*rLr"
splitlines)rr#rrxr$rs      r.test_syntax_warning_infinite_recursion_in_filez7TestCase.test_syntax_warning_infinite_recursion_in_files
Z	B Ffc"
+a)*
+!1 8AvvMM&&)S!:!:!<=qA	B	B
+
+	B	Bs"B!BA B!B	B!!B*N)[r r!r"rr/rEr_rirmrrrzrrrrrrrrrrskipIfris_wasirrrrrrrrrrrrrrrr!r%r'r*r3r5r7rCrHrJrLrQr[r]rkrrrxr|rrrrrrrrrrrrrrrrrrrrrrrrrr	rrrrrrr%r(rrrrrs
=6"04>26h+.Z@5D2.MM^q5f5$%%' $
 X__W__&FGEHE.X__W__&FG
:H
:;! F# J1 f02 BA	,; z
 6
84t &
 #&W
'8'
9/&@,Q	(7
I
3,40)?@//
E6	(0-8 t  (8T$&L.	:	M6	/.^VR /




-*&"Brr__main__)r=rrr(rrrErrtest.support.os_helperrtest.support.script_helperrrrrr mainrrr<module>r/s[		+NzBx  zBx3zHMMOr