python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_ast.cpython-311.opt-2.pyc

eddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZdZgdZdgZgdZGdd	ejZGd
dejZGdd
ejZGddejZGddejZGddejZejGddejZdZgddggfddggfdddddggdggdgfdggddfggfdddddggdggdgfd ggddfggfddd!ddgd"gdggdgfd#ggddfggfddd$ddgd"gdggdd%gfd&ggddfggfddd'ddggd(ggdgfd)ggddfggfddd*ddggd+ggdgfd,ggddfggfddd-ddggd.d/d0d1d2d3d4d5d6d7d8d9d:edfgd;fd;fd;fdfggdgfd<ggddfggfddd-ddggd.d/d0d1d2d3d4d5d6d7d8d=gd;fd;fd;fdfggdgfd<ggddfggfddd>ddggdggd?gfd@ggddfggfdddAddggdBdCdDgdEgdFdGdHdIdJgd;fdKdLggfgfdMggddfggfdddNddggdggdgfdOggd3dPdQd6dRdSgd;fd;fdfggfdddTddggdggdgfdUggd3dVdQd6dWdXdYgd;fd;fdfggfdddZddggdggdgfd[ggd3d\dQd6d]dXd1d^d3d_d`d6dadbd9dcedfgd;fd;fd;fgd;fd;fdfggfddddedfggdgggfggfddddTdfggdhggfggfdddd>dfdiggd@ggfggfddd$ddggdggdgfdjggddfggfddkdldmgfggfddndldogdpdfggfddndqd6drdsdtgdufgdvdfggfddndwd6dldxdygdufgdzdfggfddndwdIdldxdygdufgdzdfggfdd{dd|d3d}d~d6ddgd;fd;fddfggfdd{d'd|d3dd~d6dddgd;fd;fddfggfdd{dd|d3dd~d6ddd1dd3ddd6ddd9dedfgd;fd;fd;fgd;fd;fddfggfddggfddddddggdfggfdddeddgggfggfdddwddggfggfdddddgddddggfgfggfdddddgddddgdgfgfggfddddgdgdfggfdddddgdgdfggfdddddddggfdfggfddddgdddddgfgggfggfddddgggdgfggfddddgdddddgfgggfggfddggfddddgfggfdddddgdfggfddddgfggfddggfddggfddd$dddggdfggfddddddggdfggfddd'd6dddgdufdd)ggdfggfdddd6dddgdufddggdfggfddddIdddgdufddggdfggfdddddd6dddgd;fdd6dddgdufdgdfgffggfddddddddddgdfddddgdfgffggfddddddddd6dddgdufdgdfgffggfddddddddddgdfgffggfddd$dd$ddd6dddgdufdgdfgffggfdddddggdggdgfddddddddggfffggddfggfdddddggdggdgfdddddgdgdfggddfggfdddddggdggdgfdddgdgdfggddfggfddd!dKd!ddgdKddpgdgfdgffggfdddedded1dddddgfd;fdgffggfdddddggdggdgfddd	dd
dӐddgdfgffggddfggfddd
ddggdggdgfdgddddggfddddggfgddfggfdddddggdggdgfdgddddggfddddggfgddfggfdddd
dfggdgddddggfddddggfgfggfdddddggdggdgfdgddddϐdddӐddgdfgfggfgddfggfdddddggdggdgfdgdgddfggfdd ggfddd'ddd"ggdggdgfd)ggddfggfddd!ddd"ggd"dggdgfd#ggddfggfdddddd"gd$gdd%d&gddgdgfd'ggddfggfddd(ddd"gd$gdd%d&gddgd)gfd*ggddfggfdddddd"ggdggdd+gfdggddfggfdddddd"gd,d-gdggdgd.fd'ggddfggfdddTddd"gd,gdd/gd0gdd+d1gfdUggddfggfddd2ddd"gd,gdd/gdgdd+d1gfd3ggddfggfddd4ddd"gd,gdd/gd0gd5d+d1gfd6ggddfggfddd7ddd"gd,gdd/gdgd8d+d1gfd9ggddfggfZd:d;gfgZgd<d=d>dqd?d@dAgffdBdCd=dDdEdggdggdgfdFffd=dKdqdGgdHgffd=dKdIggffd=ddqdJgffd=dKdKdLgdMgffd=d	ddddʐdNdOgdfgffd=dddddʐdNdOgdfgffd=d	dd6dPdQdRgd;fdd6ddSdTgdufdUgdfgffd=d	dVd6dPdQdRgd;fdd6dWddXgdufdYgdfgffd=d	dVd6dPdQdRgd;fddIdWddXgdufdYgdfgffd=ddd6dPdQdRgd;fdd6ddSdTgdufdUgdfgffd=ddVd6dPdQdRgd;fdd6dWddXgdufdYgdfgffd=ddVd6dPdQdRgd;fddIdWddXgdufdYgdfgffd=ddd6dPdQdRgd;fdd6ddSdTgdufdUgdfgffd=dϐdVd6dPdQdRgd;fdd6dWddXgdufdYgdfgffd=dϐdVd6dPdQdRgd;fddIdWddXgdufdYgdfgffd=dZdwd[d\d\gdHd]gffd=ddd^gd_d`dagffd=ddd^d1dbdIdcdddegd;fd;fggffd=ddd^dϐdfdQdӐdgdhgdfgfggffdidjdkdldmd=dIdqgdnd;ffd=dIdIgd;ffd=d6dlgdod;ffd=d6dqgdnd;ffd=d6dIgd;ffd=dddpdqggffZ edS(rN)dedent)supportc	t|+t|tttfs	|tur|St|t
rd|DS|jjg}t|drmt|dr]|	|j
|jft|dr,t|dr|dxx|j|j
fz
cc<|jt|S|jD]2}|	t!t#||3t|S)Nc,g|]}t|S)to_tuple).0es  A/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_ast.py
<listcomp>zto_tuple.<locals>.<listcomp>s''''''lineno
col_offset
end_linenoend_col_offset)
isinstancestrintcomplexEllipsislist	__class____name__hasattrappendrrrr_fieldstuplergetattr)tresultfs   rrrs4yJq3W"566y!x--	At		(''Q''''k"
#Fq(;< 8 8;

qx.///1l##	;3C(D(D	;2JJJ1<)9::JJJyV}}
Y//

hwq!}}--....==r
)MNonez'module docstring'z
def f(): passzdef f(): 'function docstring'zdef f(a): passzdef f(a=0): passzdef f(*args): passzdef f(*args: *Ts): passz$def f(*args: *tuple[int, ...]): passz$def f(*args: *tuple[int, *Ts]): passzdef f(**kwargs): passzGdef f(a, b=1, c=None, d=[], e={}, *args, f=42, **kwargs): 'doc for f()'zdef f() -> tuple[*Ts]: passz def f() -> tuple[int, *Ts]: passz-def f() -> tuple[int, *tuple[int, ...]]: passzclass C:passz class C: 'docstring for class C'zclass C(object): passzdef f():return 1zdel vv = 1za,b = cz	(a,b) = cz	[a,b] = cz
x: tuple[*Ts]zx: tuple[int, *Ts]zx: tuple[int, *tuple[str, ...]]zv += 1zfor v in v:passzwhile v:passz	if v:passzif a:
  pass
elif b:
  passz(if a:
  pass
elif b:
  pass
else:
  passzwith x as y: passzwith x as y, z as q: passzraise Exception('string')z$try:
  pass
except Exception:
  passztry:
  pass
finally:
  passz%try:
  pass
except* Exception:
  passzassert vz
import syszfrom sys import vzglobal v1passzfor v in v:breakzfor v in v:continuezfor a,b in c: passzfor (a,b) in c: passzfor [a,b] in c: passzL(
    (
    Aa
    ,
       Bb
    )
    for
    Aa
    ,
    Bb in Cc
    )z"{a : b for w in x for m in p if g}z{a : b for v,w in x}z{r for l in x if g}z{r for l,m in x}z3async def f():
 'async function'
 await something()z,async def f():
 async for e in i: 1
 else: 2z$async def f():
 async with a as b: 1z{**{1:2}, 2:3}z{*{1, 2}, 3}z$async def f():
 [i async for b in c]z'@deco1
@deco2()
@deco3(1)
def f(): passz-@deco1
@deco2()
@deco3(1)
async def f(): passz'@deco1
@deco2()
@deco3(1)
class C: passz!@deco(a for a in b)
def f(): pass@a.b.c
def f(): passz(a := 1)zdef f(a, /,): passzdef f(a, /, c, d, e): passzdef f(a, /, c, *, d, e): passz'def f(a, /, c, *, d, e, **kwargs): passzdef f(a=1, /,): passzdef f(a=1, /, b=2, c=4): passz def f(a=1, /, b=2, *, c=4): passzdef f(a=1, /, b=2, *, c): passz*def f(a=1, /, b=2, *, c=4, **kwargs): passz(def f(a=1, /, b=2, *, c, **kwargs): passz1+2)#r#za and ba + bznot vzlambda:Nonez{ 1:2 }{}z{None,}z&{
      1
        :
          2
     }z[a for b in c if d]z(a for b in c if d)z[(a,b) for a,b in c]z[(a,b) for (a,b) in c]z[(a,b) for [a,b] in c]z{(a,b) for a,b in c}z{(a,b) for (a,b) in c}z{(a,b) for [a,b] in c}z((a,b) for a,b in c)z((a,b) for (a,b) in c)z((a,b) for [a,b] in c)z	1 < 2 < 3zf(1,2,c=3,*d,**e)
f(*[0, 1])zf(a for a in b)10z'string'a.bza[b:c]vz[1,2,3]z[]z1,2,3z(1,2,3)()za.b.c.d(a.b[1:2])cneZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZej dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)d&Z*d'Z+ej d(Z,d)Z-d*e.e/j0d+e1d,e1d-d.fd/Z2d1d0Z3d.S)2	AST_Testsct|tsdSd|jvrdS|dko|dS)NFastASTr)rtype
__module__isupper)selfnamenodes   r_is_ast_nodezAST_Tests._is_ast_nodesH$%%	5''5u}2a!2!22r
c`t|tjr|jdSt|tjtjtjfr2|j|jf}|	|||j|jf}|jD]}t||}t|tr@|}|r |dkr|dj|djf}|D]}|||g|||||
|j|jdS)Ndecorator_listr)rr2r3rexprstmt
excepthandlerrrassertGreaterEqualrr_assertTrueorderassertEqual__match_args__)r7ast_node
parent_posnode_posr8value	first_poschilds        rrAzAST_Tests._assertTrueordersG(CG,,	0@0HFh38S5F GHH	@ )<=H##Hj999"/8+>?J$		9		9DHd++E%&&
9&	GT%555!&q%(2E FI"<<E))%;;;;<"%%eZ888)8+BCCCCCr
ctj}||jdd|_||jd||jdd|t5|jdddn#1swxYwY|t5tjdddddS#1swxYwYdS)Nr*foobar)
r2r3rBrrL__dict__assertRaisesAttributeErrorvararg	TypeErrorr7xs  rtest_AST_objectszAST_Tests.test_AST_objects(sXGIIB'''2&&&H-r222


~
.
.		
HH															

y
)
)		GAJJJ																		s$B  B$'B$C''C+.C+cGdd}tj}||_||j_t	j|j}~t
j||dS)NceZdZdS)0AST_Tests.test_AST_garbage_collection.<locals>.XNrr5__qualname__rr
rXrX7Dr
r[)	r2r3rTaweakrefrefr
gc_collectassertIsNone)r7r[r]r_s    rtest_AST_garbage_collectionz%AST_Tests.test_AST_garbage_collection6s								GIIacck!#
##%%     r
c	"ttdfttdftt
dffD]\}}}t
||D]\}}|d|5t|d|tj
}|t|||
|ddddn#1swxYwY|d||	5t|d|dddn#1swxYwYˌdS)
Nexecsingleevalparsing)actioninput?)rr	compiling)rhrikind)
exec_testsexec_resultssingle_testssingle_results
eval_testseval_resultszipsubTestcompiler2
PyCF_ONLY_ASTrBrrA)r7rioutputrlioast_trees       r
test_snippetszAST_Tests.test_snippetsAs%/v$F%1>8$L%/v$F$H		1		1E64E6**
1
11\\!\<<<<&q#tS5FGGH$$Xh%7%7;;;))(F;;;<<<<<<<<<<<<<<<\\AD\II11Hc4000111111111111111
1		1		1s%ACCC$DD	Dcttztz}|D]'}tj|}t|dd(dS)N<string>rd)rmrorqr2parseru)r7snippets_to_validatesnippettrees    rtest_ast_validationzAST_Tests.test_ast_validationMsO)L8:E+	.	.G9W%%DD*f----	.	.r
cgd}|D]\}}|d|d|5d}tj|}||jd_||jd_|t5t|dddddn#1swxYwYdddn#1swxYwYgd}|D]\}}|d|d|5d}tj|}||jd_	||jd_
|t5t|dddddn#1swxYwYdddn#1swxYwYdS)	N))
)i)rr))rrzCheck invalid linenos :za = 1rr}rdzCheck invalid col_offset )rtr2r~bodyrrrO
ValueErrorrurr)	r7invalid_linenosrrrrinvalid_col_offsetsrrs	         r!test_invalid_position_informationz+AST_Tests.test_invalid_position_informationTs


#2	6	6FJLvLL
LLMM
6
6!y))&,	!#*4	!'&&z2266D*f555666666666666666
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6


+>	6	6&JW*WW~WWXX
6
6!y))*4	!'.<	!+&&z2266D*f555666666666666666
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6smAB1<BB1BB1!B"B11B5	8B5	#AE-8E
E-EE-EE--E1	4E1	c
tjtjtjdddgddtjtjdddgddgg}t	|dd	dS)
Nbuiltinsrrr8rr)namesrr	traceback)rtype_ignoresr}rd)r2ModuleImportaliasrur7rs  r>test_compilation_of_ast_nodes_with_default_end_position_valueszHAST_Tests.test_compilation_of_ast_nodes_with_default_end_position_valuesnszJciZaPPPQZ[hijjjJci[qQQQR[\ijkkk 
	j&)))))r
ctjdjdjj}||j||j||jdS)Nzx[::]r)	r2r~rrGsliceraupperlowerstep)r7slcs  r
test_slicezAST_Tests.test_slicewsgi  %a(.4#)$$$#)$$$#(#####r
cxtjdjd}||jdS)Nzfrom . import yr)r2r~rramodule)r7ims  rtest_from_importzAST_Tests.test_from_import}s6
Y(
)
)
.q
1")$$$$$r
ctjd}||jdtjd|jd_t|dddS)Nzfrom __future__ import divisionrz __future__ <test>rd)r2r~assertIsInstancer
ImportFromstriprru)r7mods  r!test_non_interned_future_from_astz+AST_Tests.test_non_interned_future_from_astsbi9::chqk3>:::+1133Xv&&&&&r
ctjdjd}|t	|jd|jd}||jd||j||j	d||j
d||jd||jdtjdjd}|jd}||jd||j||j	d||j
d||jd||jdtjd	jd}|jd}||jd||jd
||j	d||j
d||jd||jdtjdjd}|jd}||jd
||jd||j	d||j
d||jd||jddS)Nzfrom bar import yrryzfrom bar import **zfrom bar import y as zzzimport bar as foobarfoo)
r2r~rrBlenrr8raasnamerrrr)r7rrs   r
test_aliaszAST_Tests.test_aliass
Y*
+
+
0
3RX***S)))%,'''q))))1---)2...-r222
Y*
+
+
0
3S)))%,'''q))))1---)2...-r222
Y/
0
0
5a
8S)))s+++q))))1---)2...-r222
Y*
+
+
0
3U+++u---q))))1---)1----r22222r
c|ttjtj|ttjtj|ttjtj|ttjtj|ttjtj|ttj	tjdSN)

assertTrue
issubclassr2Forr>Namer=r3
comprehensionGtr7s rtest_base_classeszAST_Tests.test_base_classess
37CH55666
38SX66777
38SW55666
38SW55666
3#4cg>>???
36373344444r
c*tjD]s\}}|||rX|dkr"|}t	|tjr-|t|jttdS)NIndex)
r2rNitemsr:rr3rBr4rr)r7r8itemrTs    rtest_field_attr_existencez#AST_Tests.test_field_attr_existences,,,..	=	=JD$  t,,
=7??DFFa))=$$T!)__e<<<	=	=r
ctj}||jd|t
5|jdddn#1swxYwY||jtjtdd}||jd||jddS)N)posonlyargsargsrQ
kwonlyargskw_defaultskwargdefaultsrrM)
r2	argumentsrBrrOrPrrarQrangerSs  rtest_argumentszAST_Tests.test_argumentssMOO%I	J	J	J

~
.
.		
FF															!(###M5A;;'###1%%%%%s	AA!$A!cptj}d|_||jddS)Ni)r2NumrrBrSs  rtest_field_attr_writablez"AST_Tests.test_field_attr_writables2GII	C(((((r
ctj}||jd|t
5|jdddn#1swxYwY|t
5|jdddn#1swxYwYtjd}||jd||jd|t
5|jdddn#1swxYwY|t
5|j	dddn#1swxYwYtjd}||jdtjdd}||jd||jd||jd||jd|ttjddd|ttjdddd|tjddjd|tjddjd|
td	5tjdd
dddn#1swxYwY|
td5tjdddddn#1swxYwY|tjdjd|tjd
jd
|tjdjd|tjdjd|tjdjd|tjdjd|tjdjd|tjdjd|tjdjd|tjd
jd
|tjdjd|tjdjd|tjdjd|tjdjd|tjdjd|tjdjd|tjdjddS)N)rGrlrKrMrrrr)rz(Num got multiple values for argument 'n'nz1Constant got multiple values for argument 'value'rG@@4242TF.)r2rrBrrOrPrGrrrLrRConstantrassertRaisesRegexStrsBytesassertIsNameConstantrSs  rtest_classattrszAST_Tests.test_classattrssGII$5666


~
.
.		
GG															

~
.
.		
CC															
GBKK"%%%b!!!


~
.
.		
HH															

~
.
.		
HH															
G11%%%GBq!!!1%%%$5666"%%%b!!!)SWaq999)SWaqCCC	
aU3337???...2E:::

#
#I/Y
Z
Z		GAOOOO															

#
#I/b
c
c	%	%L!$$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	
+++$///)5111$///5))+U333

c&t,,2D999

c&u--3U;;;

c&t,,2D999b))/444d++14888e,,2E:::d++14888e,,2E:::

cl4((.555

cl5))/777

cl4((.555

cl3''-s33333sl	AA!$A!BBBDD D>EEEK==LL#MM

M
cr|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjtjdS)NrKrrrrTF)	rBr4r2rrrrrrrs r
test_realtypezAST_Tests.test_realtypesycgbkk**CL999cgdmm,,cl;;;cgenn--s|<<<cgdmm,,cl;;;ci..//>>>c.t4455s|DDDc.u5566EEEc.t4455s|DDDclnn--s|<<<<<r
c	v|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjdtj|	ttjtj|	ttjtj|	ttjtj|	ttjtj|	ttjtjGd	d
t}|ttj|dtj|	ttj|dtjdS)NrKg@y@rrTF.ceZdZdS)$AST_Tests.test_isinstance.<locals>.SNrYrr
rSrEsr
r)rrr2rrrrrrassertFalser)r7rs  rtest_isinstancezAST_Tests.test_isinstancesV
372;;88999
373<<99:::
374==#'::;;;
374==#'::;;;
39U#3#3SY??@@@
3#3D#9#93;KLLMMM
3#3E#:#:C<LMMNNN
3#3D#9#93;KLLMMM
3<>>3<@@AAA
3<#3#3SW==>>>
3<#4#4cg>>???
3<#5#5sw??@@@
3<#5#5sw??@@@
3<#6#6	BBCCC
3<#5#5s7GHHIII
3<#6#68HIIJJJ
3<#5#5s7GHHIII
3<#4#4clCCDDDCGDMM37;;<<<CGBKK99:::CGDMM39==>>>CGBKK1ABBCCCCGBKK>>???C$4T$:$:CGDDEEEC$4U$;$;SWEEFFFCL$6$6@@AAACL$4$4cg>>???CL$6$6	BBCCCCL$4$4c6FGGHHHCL$4$4clCCDDDCL$6$6@@AAACL$7$7AABBBCLNNCG<<===CLNNCG<<===CLNNCI>>???CLNNC4DEEFFFCLNNCLAABBB
3<$#8#8#'BBCCCCL4$9$937CCDDDDDr
cGddtj}Gddtj}|d}||jd||jd|t|||t|||t|tj|t|||ttjd||d}||jd|t||dS)NceZdZfdZxZS)$AST_Tests.test_subclasses.<locals>.NcHtj|i|d|_dS)Nspam)super__init__r)r7rkwargsrs   rrz-AST_Tests.test_subclasses.<locals>.N.__init__Ks*  $1&111r
)rr5rZr
__classcell__)rs@rNrJs8
 
 
 
 
 
 
 
 
 r
rceZdZdS)%AST_Tests.test_subclasses.<locals>.N2NrYrr
rN2rNr\r
rrKrr)	r2rrBrrr4rrr)r7rrrs    rtest_subclasseszAST_Tests.test_subclassesIs|	 	 	 	 	 	 	 	 								
AbEEb!!!f%%%a!$$$
1a(()))
1cg..///Ar**+++CGBKK33444
AGGGb!!!a!$$$$$r
ctjdg}tj|g}||j|dS)NrK)r2rrrBr)r7rrTs   rtest_modulezAST_Tests.test_module]s@}JtR  &&&&&r
c	tj}||jdd|_||jdtjd}tjd}tj}tj|||}||j|||j|||j	|tjddd}||jd||jd||j	dtjdddd}||jd||jd||j	d||j
d|ttjdddd|ttjdddddtjdddd	}||jd||jd||j	d||j
dtjdddd
}||jd
dS)N)leftoprightrrrMrr)rrrrrK)	foobarbaz)
r2BinOprBrrrAddrrrrrOrR)r7rTn1n3addops     rtest_nodeclasseszAST_Tests.test_nodeclassesbsIKK$;<<<a(((
WQZZ
WQZZ		Ib%$$$$$u%%%"%%%IaA###q!!!!$$$IaAa(((###q!!!!$$$1%%%	
)SY1a;;;)SY1a1EEE
I1!A666###q!!!!$$$1%%%
IaA,,,b)))))r
cbtj}||jddS)Nr)r2SubrBrrSs  rtest_no_fieldszAST_Tests.test_no_fieldss+GIIB'''''r
c	`ddl}|g}	ddl}||n#t$rYnwxYwgd}|D]t}|D]o}dtDD][}||||}|t|t|\pudS)Nr)rrrMc3:K|]}t|dddVdS)rjrdiN)ru)r	rxs  r	<genexpr>z*AST_Tests.test_pickling.<locals>.<genexpr>s0OOqGAsFE::OOOOOOr
)	picklecPicklerImportErrorrmloadsdumpsrBr)	r7rmodsr	protocolsrprotocolr2ast2s	         r
test_picklingzAST_Tests.test_picklings


x	NNNKK    			D	II		D	DC%
D
DOOJOOODDC99SYYsH%=%=>>D$$Xd^^Xc]]CCCCD
D	D	Ds#
00c	htdd}tjtjtjdi|fi|gg}|t5}t|dddddn#1swxYwY|dt|j
dS)NrMrrrrrdzbut got <ast.exprr)dictr2rExprr=rOrRruassertInr	exception)r7posmcms    rtest_invalid_sumzAST_Tests.test_invalid_sums!***JC88C8892>>


y
)
)	)RAx(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)

)3r|+<+<=====s!A??BBc	tjtjtjdtjgg}tj||t5}t|dddddn#1swxYwY|	dt|jdS)NrKrrdzidentifier must be of type str)r2rr rLoadfix_missing_locationsrOrRrur!rr")r7r$r%s   rtest_invalid_identifierz!AST_Tests.test_invalid_identifiersJ"chjj!9!9::;R@@!!$$$


y
)
)	)RAx(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)

6BL8I8IJJJJJs;BB BcXtddtftddtffD]}tjtj|}tj||td5t|dddddn#1swxYwYdS)NrrMrzinvalid type in Constant: typerrf)	r	frozensetr2
Expressionrr)rrRru)r7invalid_constantr
s   rtest_invalid_constantzAST_Tests.test_invalid_constants #aC[)Q3K2H2H H	-	-CL1A$B$BCCCA%a((('';
-
-8V,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-	-	-sBB"	%B"	cHtjd}d|jdjdj_|t
5}t
|dddddn#1swxYwY|dt|j	dS)Nzdef f():
 yield from g()rrrdzfield 'value' is required)
r2r~rrGrOrrur!rr")r7empty_yield_fromr%s   rtest_empty_yield_fromzAST_Tests.test_empty_yield_froms9%@AA7;a %a(.4


z
*
*	8b$h777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8

13r|3D3DEEEEEsA//A36A3cddl}d}tj|d|5|tt
jdddddS#1swxYwYdS)NrcdSrrrs r
bad_normalizez0AST_Tests.test_issue31592.<locals>.bad_normalizes4r
	normalizeuϕ)unicodedatar	swap_attrrOrRr2r~)r7r9r7s   rtest_issue31592zAST_Tests.test_issue31592s				

{K
G
G	>	>iH===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>s'AAActjd}|jdj}|j}|j}||jd||jd||jd||jd||jd||jdtjd}|jdj}|j}|j}||jd||jd||jd||j	d	||jd||jd||jd	||j	d	||jd||jd||jd||j	ddS)
Nz4+5+6+7rrrrz
4+5-\
 6-7rrrM)
r2r~rrGrrBrrrr)r7rparent_binopchild_binopgrandchild_binops     r test_issue18374_binop_col_offsetz*AST_Tests.test_issue18374_binop_col_offsets,y##y|)"'&+0!4444a888/3333Q777)4a888)8!<<<y((y|)"'&+0!444,a0004a8880!444/333+Q///3Q777/333)4a888)0!444)8!<<<)4a88888r
ctjd}|jdjdj}||jddS)Nr'rr)r2r~rr<rGrBr)r7rattr_bs   r*test_issue39579_dotted_name_end_col_offsetz4AST_Tests.test_issue39579_dotted_name_end_col_offsetsGy0111,Q/5.22222r
cL|tjjd|tjjd|tjjd|tjjddtjD}dtjdj|d<|	tjj
d|dS)	Nz0withitem(expr context_expr, expr? optional_vars)GtEz%Name(identifier id, expr_context ctx)zBcmpop = Eq | NotEq | Lt | LtE | Gt | GtE | Is | IsNot | In | NotInc"g|]}d|j
S)z     | )__doc__)r	r9s  rrz5AST_Tests.test_ast_asdl_signature.<locals>.<listcomp>s#VVVD///VVVr
zexpr = r
)rBr2withitemrGrErcmpopr=__subclasses__assertCountEqualsplit)r7expressionss  rtest_ast_asdl_signaturez!AST_Tests.test_ast_asdl_signatures-/abbb%000)+RSSS*,pqqqVVCH<S<S<U<UVVVI38#:#:#<#<Q#?#GIIAch.44T::KHHHHHr
ctjddtjdd|t5tjdddddn#1swxYwY|t5tjdddddn#1swxYwYtjddtjdd|t5tjdddddn#1swxYwY|t5tjddddddS#1swxYwYdS)Nzdef foo(x, /): ...rrfeature_versionzdef bar(x=1, /): ...rrzlambda x, /: ...zlambda x=1, /: ...r2r~rOSyntaxErrorrs r$test_positional_only_feature_versionz.AST_Tests.test_positional_only_feature_versions	&????	(&AAAA


{
+
+	D	DI*FCCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D


{
+
+	F	FI,fEEEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F		$f====	&????


{
+
+	B	BI(&AAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B


{
+
+	D	DI*FCCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	DsHA**A.1A.B22B69B6D&&D*-D*E//E36E3ctjddtjdd|t5tjdddddn#1swxYwYtjdddS)Nz#with (CtxManager() as example): ...rrrR)r	rQz!with CtxManager() as example: ...rUrs r'test_parenthesized_with_feature_versionz1AST_Tests.test_parenthesized_with_feature_versions	7QQQQ	7PPPP


{
+
+	U	UI;VTTTT	U	U	U	U	U	U	U	U	U	U	U	U	U	U	U	5vNNNNNNsA**A.1A.ctjdd|t5tjddddddS#1swxYwYdS)Nzf"{x=}"rQrRrTrUrs r#test_debug_f_string_feature_versionz-AST_Tests.test_debug_f_string_feature_versions	)V4444


{
+
+	9	9Ii8888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9AAActjdd|t5tjddddddS#1swxYwYdS)Nz(x := 0)rQrRrTrUrs r*test_assignment_expression_feature_versionz4AST_Tests.test_assignment_expression_feature_versions	*f5555


{
+
+	:	:Ij&9999	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:r^ctd}tj||t5tj|dddddS#1swxYwYdS)Nz9
        try: ...
        except* Exception: ...
        rYrR)rr2r~rOrV)r7codes  r%test_exception_groups_feature_versionz/AST_Tests.test_exception_groups_feature_versions

		$


{
+
+	5	5IdG4444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sA""A&)A&c8dD]}tjtj|tj}tj||td|d5t|dddddn#1swxYwYdS)N)TrueFalser#z"identifier field can't represent 'z
' constantrrf)r2r.rr(r)rrru)r7constantr=s   rtest_constant_as_namezAST_Tests.test_constant_as_name"s/	0	0H>#(8SXZZ"@"@AAD%d+++''
4mYa4m4m4mnn
0
0h///
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0	0	0s0BB	B	ctGddtj}tj|tjdS)Nc6eZdZ	ejZejZejZejZejZ	ejZ
ejZejZejZ
e
ZejZejZejZejZejZejZejZejZejZdZdS)3AST_Tests.test_precedence_enum.<locals>._PrecedencecX	||dzS#t$r|cYSwxYw)Nr)rrrs rnextz8AST_Tests.test_precedence_enum.<locals>._Precedence.next@sA >>$(333!   KKK s))N)rr5rZenumauto
NAMED_EXPRTUPLEYIELDTESTORANDNOTCMPEXPRBORBXORBANDSHIFTARITHTERMFACTORPOWERAWAITATOMrmrr
r_Precedencerk*sG"JDIKKEDIKKE49;;DB$)++C$)++C$)++C49;;DC49;;D49;;DDIKKEDIKKE49;;DTY[[FDIKKEDIKKE49;;D
 
 
 
 
 r
r)rnIntEnum_test_simple_enumr2r)r7rs  rtest_precedence_enumzAST_Tests.test_precedence_enum)sK	 	 	 	 	 $,	 	 	 6	
{CO<<<<<r
ctjdztjdztdzfd}|dd|dd|dd|dd	dS)
Nri,g?cr||	zz}tj|fD]}|||zz}d|||}t|5tj5tj|dddn#1swxYwYdddn#1swxYwYdS)NzCompiling ({!r} + {!r} * {})msg)r2r~formatrORecursionErrorrinfinite_recursion)
prefixrepeated	expect_okdepthbrokendetailscrash_depth
fail_depthr7
success_depths
      rcheck_limitz7AST_Tests.test_ast_recursion_limit.<locals>.check_limitMsNM!99IIi   $k2
*
*(U"228??"He55&&~7&CC** 355**	&)))******************************	
*
*s6B+3BB+BB+BB++B/	2B/	r]r.z.bz[0]z*a)sysgetrecursionlimitr)r7rrrrs` @@@rtest_ast_recursion_limitz"AST_Tests.test_ast_recursion_limitGs*,,q0
+--3J-..
		*		*		*		*		*		*		*		*	CCCCr
c|td5tjdddddS#1swxYwYdS)Nz,source code string cannot contain null bytesrzab)rOrVr2r~rs rtest_null_byteszAST_Tests.test_null_bytes]s


{>@@		If																		s?AAr9attrsourcereturnNc||jd|5tj|}d}tj|D](}t||rt
||d|dz
})||dtj	d|d|j}|
td|d5t|dd	dddn#1swxYwYddddS#1swxYwYdS)
N.rrzfield 'z' is required for ^$rrd)
rtrr2r~walkrsetattrrBreescaperrru)r7r9rrrfoundrIr
s        rassert_none_checkzAST_Tests.assert_none_checkbs
\\T]33T33
4
4
	0
	09V$$DE$

eT**E4...QJEUA&&&	KDKKDMKKLLA''
HHHH==
0
0h///
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0s6B(C>C&C>&C*	*C>-C*	.C>>DDc	tjddftjddftjddftjddftjd	d
ftjddftjd
dfg}|D]\}}}||||dS)Nr8zimport spam as SPAMargzdef spam(SPAM): spamtargetz[spam for SPAM in spam]iterz[spam for spam in SPAM]rGzspam(**SPAM)patternzmatch spam:
 case SPAM: spamcontext_exprzwith SPAM: spam)r2rrrkeyword
match_caserIr)r7testsr9rrs     rtest_none_checkszAST_Tests.test_none_checksos
Y 56
We34

*CD

(AB
['>2
^Y(GH
\>+<=
#(	7	7D$""4v6666	7	7r
)rN)4rr5rZr:rArUrbr{rrrrrrrrrrrrrrrrrrrr&r*r0r3rcpython_onlyr;r@rCrOrWr[r]r`rcrhrrrr4r2r3rrrrr
rr0r0s333DDD&	!	!	!
1
1
1...6664***$$$%%%'''$3$3$3L555	=	=	=&&&))):4:4:4x	=	=	=-E-E-E^%%%('''
******X(((

D
D
D>>>KKK---FFF
>>>999>333
III
D
D
DOOO999
:::
555000===<
*
0d37m0300PT0000777777r
r0ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)ASTHelpers_TestNctjd}tdddtj}|tj|tj|dS)Nz
foo(1 + 1)z	<unknown>rd)r2r~rurvrBdump)r7r]bs   r
test_parsezASTHelpers_Test.test_parsesSIl##L+vs7HII!chqkk22222r
c	ddzdS#t$ri|t5}tjddddn#1swxYwY||jjYdSwxYw)Nrrz'\U')	ExceptionrOrVr2literal_evalassertIsNotNoner"__context__r7r
s  rtest_parse_in_errorz#ASTHelpers_Test.test_parse_in_errors	:
aCCCC	:	:	:"";//
*1 )))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*  !8999999	:s2	$A<AA<A	A<A	"A<;A<c&tjd}|tj|d|tj|dd|tj|dddS)	Nspam(eggs, "and cheese")zModule(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), args=[Name(id='eggs', ctx=Load()), Constant(value='and cheese')], keywords=[]))], type_ignores=[])Fannotate_fieldszbModule([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), Constant('and cheese')], []))], [])Tinclude_attributesaModule(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), lineno=1, col_offset=0, end_lineno=1, end_col_offset=4), args=[Name(id='eggs', ctx=Load(), lineno=1, col_offset=5, end_lineno=1, end_col_offset=9), Constant(value='and cheese', lineno=1, col_offset=11, end_lineno=1, end_col_offset=23)], keywords=[], lineno=1, col_offset=0, end_lineno=1, end_col_offset=24), lineno=1, col_offset=0, end_lineno=1, end_col_offset=24)], type_ignores=[])r2r~rBrr7r9s  r	test_dumpzASTHelpers_Test.test_dumpsy344$
/	
	
	

	
$>>>
2	
	
	
	
$4@@@
Z	
	
	
	
	
r
c.tjd}|tj|dd|tj|ddd|tj|d	d
ddS)NrrindentzModule(
   body=[
      Expr(
         value=Call(
            func=Name(id='spam', ctx=Load()),
            args=[
               Name(id='eggs', ctx=Load()),
               Constant(value='and cheese')],
            keywords=[]))],
   type_ignores=[])F	)rrzModule(
	[
		Expr(
			Call(
				Name('spam', Load()),
				[
					Name('eggs', Load()),
					Constant('and cheese')],
				[]))],
	[])T)rraModule(
   body=[
      Expr(
         value=Call(
            func=Name(
               id='spam',
               ctx=Load(),
               lineno=1,
               col_offset=0,
               end_lineno=1,
               end_col_offset=4),
            args=[
               Name(
                  id='eggs',
                  ctx=Load(),
                  lineno=1,
                  col_offset=5,
                  end_lineno=1,
                  end_col_offset=9),
               Constant(
                  value='and cheese',
                  lineno=1,
                  col_offset=11,
                  end_lineno=1,
                  end_col_offset=23)],
            keywords=[],
            lineno=1,
            col_offset=0,
            end_lineno=1,
            end_col_offset=24),
         lineno=1,
         col_offset=0,
         end_lineno=1,
         end_col_offset=24)],
   type_ignores=[])rrs  rtest_dump_indentz ASTHelpers_Test.test_dump_indentsy344$q111
4
	
	
		
$dKKK
N	
	

	

	
	
$4JJJ#M#	#	#	#	#	r
ctjdd}|tj|d|tj|ddtjtjdtj	dd
}|tj|d|tj|d
d|tj|dd|tj|dddtjtjdtj	}|tj|d|tj|d
ddS)NrrrzRaise()TrzRaise(lineno=3, col_offset=4)r
)idctx)excrrz#Raise(exc=Name(id='e', ctx=Load()))FrzRaise(Name('e', Load()))z;Raise(exc=Name(id='e', ctx=Load()), lineno=3, col_offset=4))rrz0Raise(Name('e', Load()), lineno=3, col_offset=4))causez%Raise(cause=Name(id='e', ctx=Load()))zRaise(cause=Name('e', Load())))r2RaiserBrrr(rs  rtest_dump_incompletez$ASTHelpers_Test.test_dump_incompletesya000$	
	
	
	
$4@@@+	
	
	
ySX#(**===aTUVVV$1	
	
	
	
$>>>&	
	
	
	
$4@@@I	
	
	
	
$RVWWW>	
	
	
ysx3CHJJ???@@@$3	
	
	
	
$>>>,	
	
	
	
	
r
cRtjdd}tjtjd|jj|j_|tj|ddtjdddd	}tj|tjdd
}|	|j
|	|j||jd||j
ddS)N1 + 1rfmoderMTrzExpression(body=BinOp(left=Constant(value=1, lineno=1, col_offset=0, end_lineno=1, end_col_offset=1), op=Add(), right=Constant(value=2, lineno=1, col_offset=4, end_lineno=1, end_col_offset=5), lineno=1, col_offset=0, end_lineno=1, end_col_offset=5))r)rrrr)rr)r2r~
copy_locationrrrrBrCallrarrrr)r7srcnews   rtest_copy_locationz"ASTHelpers_Test.test_copy_locationsif---*371::sx~FF#$???
=	
	
	
h!A!ANNNSXd%K%K%KLL#.)))#,---Q'''+++++r
ctjd}|jtjtjtjdtjtjdgg|	|tj
|d|_|	tj|dddS)Nz
write("spam")reggsTraModule(body=[Expr(value=Call(func=Name(id='write', ctx=Load(), lineno=1, col_offset=0, end_lineno=1, end_col_offset=5), args=[Constant(value='spam', lineno=1, col_offset=6, end_lineno=1, end_col_offset=12)], keywords=[], lineno=1, col_offset=0, end_lineno=1, end_col_offset=13), lineno=1, col_offset=0, end_lineno=1, end_col_offset=13), Expr(value=Call(func=Name(id='spam', ctx=Load(), lineno=1, col_offset=0, end_lineno=1, end_col_offset=0), args=[Constant(value='eggs', lineno=1, col_offset=0, end_lineno=1, end_col_offset=0)], keywords=[], lineno=1, col_offset=0, end_lineno=1, end_col_offset=0), lineno=1, col_offset=0, end_lineno=1, end_col_offset=0)], type_ignores=[]))
r2r~rrr rrr(rrBr)maxDiffrr7rs  rtest_fix_missing_locationsz*ASTHelpers_Test.test_fix_missing_locationssi((#(638::*F*F+.76??*;R"A"ABB	C	C	Cc7<<===#$???

	
	
	
	
	
r
ctjdd}|tj|d||tj|ddtjdd}|tj|jd|j|tj|ddtjtjd	tjggd
}|tj|j	d|
tj|jdS)
NrrfrrrTrzExpression(body=BinOp(left=Constant(value=1, lineno=4, col_offset=0, end_lineno=4, end_col_offset=1), op=Add(), right=Constant(value=1, lineno=4, col_offset=4, end_lineno=4, end_col_offset=5), lineno=4, col_offset=0, end_lineno=4, end_col_offset=5))testr)funcrkeywordsrrM)r2r~rBincrement_linenorrrrr(rrarrs  rtest_increment_linenoz%ASTHelpers_Test.test_increment_linenosYif----cQ777===#$???
=	
	
	
if----ch!<<<chGGG#$???
=	
	
	
h&#(**--BA


	
-c2291===#.s33>?????r
c\tjtdd}tj|d||jdjd||jdjd	||jdjd
dS)Nzb        a = 1
        b = 2 # type: ignore
        c = 3
        d = 4 # type: ignore@tag
        T)
type_commentsrrrrrrZz@tag)r2r~rrrBrrtagrs  rtest_increment_lineno_on_modulez/ASTHelpers_Test.test_increment_lineno_on_module7si 

!"""	SA&&&&)!,3Q777)!,3Q777)!,0&99999r
ctjdd}ttj|j}||djd||ggddS)Nfoo()rfrrr)rr)r2r~riter_fieldsrrBpopr)r7r9ds   rtest_iter_fieldsz ASTHelpers_Test.test_iter_fieldsCsvyv...++,,v)5111R8899999r
c	Ltjdd}|tt	tj|jdtj|j}|t|jd|t|j	d|t|j	d|tj
t|ddS)	Nzspam(23, 42, eggs='leek')rfrrrrKz1keyword(arg='eggs', value=Constant(value='leek')))r2r~rBrriter_child_nodesrrmrrGr)r7r9iterators   rtest_iter_child_nodesz%ASTHelpers_Test.test_iter_child_nodesIsy46BBBT#"6ty"A"ABBCCQGGG'	22h*F333h-r222h-r222$x..11?	
	
	
	
	
r
c(tjd}|tj|dtjd}|tj|jddtjd}|tj|jddtjd}|tj|jdddS)Nz"""line one
  line two"""zline one
line twoz&class foo:
  """line one
  line two"""rz&def foo():
  """line one
  line two"""z#async def foo():
  """spam
  ham"""zspam
ham)r2r~rB
get_docstringrrs  rtest_get_docstringz"ASTHelpers_Test.test_get_docstringTsy566*400-	/	/	/yCDD*49Q<88-	/	/	/yCDD*49Q<88-	/	/	/y@AA*49Q<88+FFFFFr
c8|tjtjdtjd}|tj|tjd}|tj|tjd}|tj|jdtjd}|tj|jdtjd}|tj|jdtjd}|tj|jdtjd}|tj|jdtjd	}|tj|jdtjd
}|tj|jddS)Nzx = "not docstring"zdef foo():
  passzclass foo:
  passrz class foo:
  x = "not docstring"z class foo:
  def bar(self): passz def foo():
  x = "not docstring"zasync def foo():
  passz&async def foo():
  x = "not docstring")rar2rr~rrs  rtest_get_docstring_nonez'ASTHelpers_Test.test_get_docstring_noneds#+CIbMM::;;;y.//#+D11222y-..#+D11222y-..#+DIaL99:::y<==#+DIaL99:::y<==#+DIaL99:::y-..#+DIaL99:::y<==#+DIaL99:::y344#+DIaL99:::yBCC#+DIaL99:::::r
ctjd}||jdjd||jdjd||jdjdjd||jdjdjd||jdjdjdjd||jdjdjdjd||jdjdjd||jdjdjd||jdjd||jdjd	dS)
Nz"""line one
line two"""

def foo():
  """line one
  line two"""

  def bar():
    """line one
    line two"""
  """line one
  line two"""
"""line one
line two"""

rrrMrrrZ
)r2r~rBrrrrs  r:test_multi_line_docstring_col_offset_and_lineno_issue16806zJASTHelpers_Test.test_multi_line_docstring_col_offset_and_lineno_issue16806|sy
+

	
10!4441,a0001*1-8!<<<1*1-4a8881*1-215@!DDD1*1-215<a@@@1*1-8!<<<1*1-4b99910!4441,b11111r
ctjd}|jdjd}||jd||jddS)Nz if a:
    pass
elif b:
    pass
rrr2r~rorelserBrrr7r9	elif_stmts   rtest_elif_stmt_start_positionz-ASTHelpers_Test.test_elif_stmt_start_positions]y?@@IaL'*	)1----q11111r
ctjd}|jdjd}||jd||jddS)Nz/if a:
    pass
elif b:
    pass
else:
    pass
rrrrs   r'test_elif_stmt_start_position_with_elsez7ASTHelpers_Test.test_elif_stmt_start_position_with_elses]yPQQIaL'*	)1----q11111r
ctjd}|jdjjd}||jd||jddS)Nr*rrrZ)r2r~rrGrrBrr)r7r9starred_exprs   r*test_starred_expr_end_position_within_callz:ASTHelpers_Test.test_starred_expr_end_position_within_calls_y&&y|).q10!4444a88888r
c|tjdgd|tjdddi|tjdd|tjdhd	|tjd
d|tjdt|t
tjd
|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd|t
tjdd|t
tjd|t
tjd|t
tjddS)Nz	[1, 2, 3]rrMrz{"foo": 42}rrKz(True, False, None))TFNz	{1, 2, 3}>rrMrzb"hi"shizset()r6z+6z-6iz3.25g
@z+3.25z-3.25g
z-0.0z++6z+Truez2+3)rBr2rsetrOrreprrs rtest_literal_evalz!ASTHelpers_Test.test_literal_evals;)+66			BBB)-885"+FFF)*?@@BUVVV)+66			BBB)'22E:::)'22CEE:::*c&6@@@)#..222)$//333)$//444)&114888)'22D999)'22E:::c.v6677@@@*c&6>>>*c&6@@@*c&6>>>>>r
ctjd5tjd|t
5}tjddddn#1swxYwY|dt|j|dt|jddddS#1swxYwYdS)Ni333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zExceeds the limit z Consider hexadecimal )	radjust_int_max_str_digitsr2rrOrVr!rr")r7err_ctxs  rtest_literal_eval_str_int_limitz/ASTHelpers_Test.test_literal_eval_str_int_limitsS

.t
4
4	L	LX&&&"";//
+7 ***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MM.G4E0F0FGGGMM2C8I4J4JKKK	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	Ls6/C
A%C
%A)	)C
,A)	-AC

CCc|tjdd|tjdd|tjdd|tjdd|tjd	d
|tjdd|tjd
d|tjdd|tjdd|tjdd|tjdd|tjdd|tjdd
|ttjd|ttjd|ttjd|ttjd|ttjddS)N6jy@z-6jyz6.75jy@z-6.75jyz3+6jy@@z-3+6jy@z3-6jy@z-3-6jyz
3.25+6.75jy
@@z-3.25+6.75jy
@z
3.25-6.75jy
@z-3.25-6.75jy
z(3+6j)z-6j+3z-6j+3jz3+-6jz3+(0+6j)z-(3+6j))rBr2rrOrrs rtest_literal_eval_complexz)ASTHelpers_Test.test_literal_eval_complexs<)$//444)%00#666)'22E:::)(33V<<<)&114888)'22E:::)&114888)'22E:::),77DDD)-88+FFF),77DDD)-88+FFF)(33T:::*c&6@@@*c&6AAA*c&6@@@*c&6
CCC*c&6	BBBBBr
ctjtjdtjdgtjdg}|ttj|tjtjdgtjdtjdg}|ttj|dS)NrrMr)keysvalues)r2DictrrOrr)r7	malformeds  r&test_literal_eval_malformed_dict_nodesz6ASTHelpers_Test.test_literal_eval_malformed_dict_nodessH3<??CLOO"Dcl[\ooM^___	*c&6	BBBH3<??"3S\!__cl[\oo<^___	*c&6	BBBBBr
cB|tjdd|tjdd|tjdd|ttjddS)Nz    -1rz		-1z 	 -1z
 -1)rBr2rrOIndentationErrorrs rtest_literal_eval_trailing_wsz-ASTHelpers_Test.test_literal_eval_trailing_wss)(33R888)(33R888)(33R888*C,<gFFFFFr
c	,d}|t|5tjddddn#1swxYwYtjtjtjtjtjd}|t|ddd}|t|5tj|ddddS#1swxYwYdS)Nz#malformed node or string on line 3:z{'a': 1,
'b':2,
'c':++3,
'd':4}rrzmalformed node or string:)	rrr2rUnaryOpUAddrrar)r7rr9s   r"test_literal_eval_malformed_linenoz2ASTHelpers_Test.test_literal_eval_malformed_linenos4

#
#J
4
4	C	CABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C{HJJCHJJQ@@BB'$$77888*

#
#J
4
4	#	#T"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#s!?AA'D		D
D
c|td5tjdddddS#1swxYwYdS)Nzunexpected indentz4
                \
                (\
            \ )rrVr2rrs rtest_literal_eval_syntax_errorsz/ASTHelpers_Test.test_literal_eval_syntax_errorss

#
#K1D
E
E		


																		s>AAcbtjdtjdgdddg}tj|g}|t
5}t
|dddddn#1swxYwY|dt|j	dS)Ntimesleepr8rrlevelrrrrdzinvalid integer value: None)
r2rrrrOrrur!rr")r7rrr%s    rtest_bad_integerz ASTHelpers_Test.test_bad_integersf&)iW&=&=&=%>%)&*t===>jr""


z
*
*	)bC(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)

3S5F5FGGGGGsA<<BBctjdtjdddgdddg}tj|g}t	|dd}i}t|||d|dS)Nr/r0rrr2rrd)r2rrrrurdr!)r7rrrbnss     rtest_level_as_nonez"ASTHelpers_Test.test_level_as_nonesf&)iW78Q'H'H'H&I%)&'A	7778
jr""sFF++
T2

gr"""""r
cftjtjdd}||_|t
5t
j5ttj	|dddddn#1swxYwYddddS#1swxYwYdSNr)rrrrrf
r2r)NotoperandrOrrrrur.rs  rtest_recursion_directz%ASTHelpers_Test.test_recursion_directsK3799Q1===	


~
.
.	=	=+--
=
=q))8V<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=s6
B&$BB&B	B&B	B&&B*-B*ctjtjdd}tjtjdd}||_||_|t
5t
j5ttj	|dddddn#1swxYwYddddS#1swxYwYdSr9r:)r7r
r"s   rtest_recursion_indirectz'ASTHelpers_Test.test_recursion_indirects@K3799Q1===K3799Q1===		


~
.
.	=	=+--
=
=q))8V<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=s69C
$B=1C=C	CC	CCC) rr5rZrrrrrrrrrrrrrrrr	rrrrrr$r'r+r-r4r7r=r?rr
rrr|sG333
:::


*;;;z


:,,, 


(@@@0
:
:
::::	
	
	
GGG ;;;0222&222222999???&LLLCCC*CCCGGG
#
#
#	H	H	H
#
#
#========r
rc	eZdZdGeddZdHeddZdHdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"d#Z#d$Z$d%Z%d&Z&d'Z'd(Z(d)Z)d*Z*d+Z+d,Z,d-Z-d.Z.d/Z/d0Z0d1Z1e2j3d2d3Z4e5j6d4Z7e5j8e7Z9e5j6d5Z:e5j8e:Z;e5j6d6Z<e5j=d6Z>e5j?d7e5j@ZAe5j8e5jBe5jBe5j?d5e5jCd8e5j@d9e5j@e5j8e5jBe5jBe5j?d5e5j@d8e5jCd9e5j@e5j8e5j6d:e5j8e5j6d6e5j8e5j6d;e5j=d<e5jDe5j=d<ge5jDe5jDe5j=d<gge5jEe7e<ge;ge5jEe<e7ge;e9gd=>e5jEe<e5jFe5j?d?e5j@e5j@ge;e9gd@>e5jGe5jBe5jBe:d8e5j@d9e5j@gggAe5jGeAgd=ge9gAe5jGeAgge9gAe5jGeAe5j=d<gggAe5jGeAe5jHgggAe5jGeAgge5jHgAe5jGe<gd=ge9gAe5jDe5jHd=ge5jIdBCe5jJge5jJe9ge5jJe9e;e5j=dDge5jIdECe5jHd5Ce5jDe5jHdEge5jEggdE>gZKdFZLdS)IASTValidatorTestsNrdrc@dx|_|_tj||t	|d|dS||5}t	|d|dddn#1swxYwY||t|jdS)Nrr)	rrr2r)rurOr!rr")r7rrrrr%s      rrzASTValidatorTests.mods&''
S^!#&&&;C4(((((""3''
-2Xt,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-MM#s2<0011111s
A++A/2A/ctjtj|gg}||||dS)NrB)r2rr r)r7r9rrrs     rr=zASTValidatorTests.expr$s<j#(4..)2..cs#####r
c^tj|gg}|||dSr)r2rr)r7r>rrs    rr>zASTValidatorTests.stmt(s/j$$$cr
c	htjtjtjdtjg}||ddtjtjdtj}||dddS)NrTmust have Load contextrerf)r2Interactiver rStorerr.)r7r$s  rrzASTValidatorTests.test_module,sOSXchsCIKK&@&@AABCC,h777N38C5566,f55555r
c			dfd	}tjdtjdtjg}|||d|||d|||d||tjdgd	||tjd
gdtjdtjdtjg}|||tjdtjg
dtjdtjdtjtjdtjdtjg}|||dtjdtjgddS)Nc	v|g}|g}|g}|g}|g}tj|||||||}|Sr)r2r)rrrQrrrrfacs       rrz5ASTValidatorTests._check_arguments.<locals>.arguments3si|" !
" ={FJ!,eX??D3t99r
rTr6rG)r)rr)rz"more positional defaults than argsr)rz3length of kwonlyargs is not the same as kw_defaults)rrr]rr)rr)NNNNNNN)r2rrrIrr()r7rLcheckrrs `   r_check_argumentsz"ASTValidatorTests._check_arguments2s:>-115						 SXc39;;77889
iiT"""$<===
iiD)))+CDDD
ii4(((*BCCC
ii#'!**...;	=	=	=
iiSWQZZL111L	N	N	NSXc38::66778
iiTSXc39;;-G-G,HIII/	1	1	1SXc38::6677SXc38::66779
ii4'+SXc39;;-G-G&HJJJ2	4	4	4	4	4r
cdtjggdggdg}tjd|ggd}||dtjd|tjgtjdtjgd}||dtjd|tjggtjdtj}||dd}|||jdS)NrTzempty body on FunctionDefrGcVtjd|tjggdSNrT)r2FunctionDefPassr6s rrLz+ASTValidatorTests.test_funcdef.<locals>.fac^s"?3sxzzlBEEEr
)r2rrRr>rSrrIrN)r7r]r"rLs    rtest_funcdefzASTValidatorTests.test_funcdefTsM"b$Bb99OCBD11		!0111OCSXZZL38C3M3M2N 
"
"		!-...OCSXZZL"HS#)++66
8
8		!-...	F	F	Fc49-----r
cTd
d}||tjdtjgd||tjdtjdtjgd||gd||dgd||tjdtjg	ddS)Ncv|g}|g}|tjg}|g}tjd||||S)Nmyclass)r2rSClassDef)basesrrr<s    rclsz,ASTValidatorTests.test_classdef.<locals>.clscsS}|

|%!#<	5( $n66
6r
rT)rYrG)rr,zempty body on ClassDefNone disallowed)r<)NNNN)r>r2rrIr)r7rZs  r
test_classdefzASTValidatorTests.test_classdefbs(
	6
	6
	6
	6	
		##SXc39;;778999*	,	,	,		##C#sy{{1K1K L LMNNN*	,	,	,		##2,,, 8999		##D6"""$5666		##chsCIKK&@&@%ABBB*	,	,	,	,	,r
c	B|tjgd|tjdgd|tjtjdtjgddS)Nzempty targets on Deleter[rTzmust have Del context)r>r2Deleterr(rs rtest_deletezASTValidatorTests.test_deletews		#*R..";<<<		#*dV$$&7888		#*chsCHJJ77899)	+	+	+	+	+r
c
|tjgtjdd|tjdgtjdd|tjtjdtjgtjdd|tjtjdtjgtjdtjddS)Nrzempty targets on Assignr[rTmust have Store contextrrG)r>r2Assignrrr(rIrs rtest_assignzASTValidatorTests.test_assign}s		#*R,,.GHHH		#*dVSWQZZ002CDDD		#*chsCHJJ778#'!**EE+	-	-	-		#*chsCIKK889 #cikk : :<<*	,	,	,	,	,r
c	tjtjdtjtjtjdtj}||dtjtjdtjtjtjdtj}||ddS)NrTrrarG)r2	AugAssignrr(rr>rI)r7augs  rtest_augassignz ASTValidatorTests.test_augassignsmCHS#(**55swyyHS#(**5577		#0111mCHS#)++66		HS#)++6688		#/00000r
c
|tjdtj}tjdtj}tj}|tj||ggd|tjtjdtj||ggd|tj|tjdtj|ggdtjtjdtj}|tj|||ggd|tj|||g|gddS)NrTrzempty body on ForrarG)r2rrIr(rSr>rr )r7rTrpr
s     rtest_forzASTValidatorTests.test_forsUHS#)++&&HS#(**%%HJJ		#'!QB'')<===		#'#(3

33QR@@+	-	-	-		#'!SXc39;;77!bAA*	,	,	,HSXc39;;//00		#'!QR((*BCCC		#'!QaS))+CDDDDDr
c
H|tjtjdggd|tjtjdtjtjggd|tjtjdtjgtjtjdtjgddS)Nrzempty body on WhilerTrG)r>r2WhilerrrIrSr rs r
test_whilezASTValidatorTests.test_whiles		#)CGAJJB//1FGGG		#)CHS#)++66bII*	,	,	,		#)CGAJJ!hsxSY[['A'ABBCEE5	7	7	7	7	7r
c:|tjtjdggdtjtjdtjtjgg}||dtjtjdtjtjdtjgg}||dtjtjdtjgtjtjdtjg}||ddS)Nrzempty body on IfrTrG)r>r2IfrrrIrSr )r7rxs  rtest_ifzASTValidatorTests.test_ifs 		#&R,,.@AAAF38C--

|R@@		!-...F371::#sy{{)C)C D DErJJ		!-...F371::

|HSXc39;;77889
;
;		!-.....r
ctj}|tjg|gdtjtjdd}|tj|ggdtjtjdtjd}|tj|g|gdtjtjdtjdtj}|tj|g|gddS)Nzempty items on Withrzempty body on WithrTrGra)	r2rSr>WithrIrrrIr()r7rirxs   r	test_withzASTValidatorTests.test_withs
HJJ		#(2s##%:;;;LT**		#(A3##%9:::L#sy{{33T::		#(A3$$&>???LSXc38::%>%>??		#(A3$$&?@@@@@r
ctjdtjd}||dtjtjdtjd}||dtjtjdtjdtj}||ddS)Nrz!Raise with cause but no exceptionrTrGr)r2rrr>rrI)r7rs  r
test_raisezASTValidatorTests.test_raisesIdCGAJJ''		!8999IchsCIKK00$77		!-...Icgajj#(3	"<"<==		!-.....r
c,tj}tjggg|g}||dtjtjtjdtjggg|g}||dtj|gggg}||dtj|gg|g|g}||dtj|gtjddgggg}||dtjtjdtjd|gg}|tj|g|ggdtjdd|gg}tj|g|tjtjdtjg|g}||dtj|g||gtjtjdtjg}||ddS)Nzempty body on TryrTrGz-Try has neither except handlers nor finalbodyz%Try has orelse but no except handlersempty body on ExceptHandlerr)r2rSTryr>r rrI
ExceptHandlerr7rir r
s    rtest_tryzASTValidatorTests.test_trys)HJJGBB$$		!()))GSXchsCIKK8899:BQCHH		!-...GQCR$$		!DEEEGQCaS1#&&		!<===GQC#+D#r::;RDD		!2333

sxSY[[993
D
DE		#'1#q"b))+CDDD

tS1#
.
./GQCSXchsCIKK&@&@AABQCHH		!-...GQCQC#(38C+E+E"F"F!GHH		!-.....r
c,tj}tjggg|g}||dtjtjtjdtjggg|g}||dtj|gggg}||dtj|gg|g|g}||dtj|gtjddgggg}||dtjtjdtjd|gg}|tj|g|ggdtjdd|gg}tj|g|tjtjdtjg|g}||dtj|g||gtjtjdtjg}||ddS)Nzempty body on TryStarrTrGz1TryStar has neither except handlers nor finalbodyz)TryStar has orelse but no except handlersrxr)r2rSTryStarr>r rrIrzr{s    r
test_try_starzASTValidatorTests.test_try_stars)HJJKBQC((		!,---K#(3	"<"<==>BLL		!-...KRR((		!HIIIKR!qc**		!@AAAKc/c2>>?RHH		!2333

sxSY[[993
D
DE		#+qc1b"--/GHHH

tS1#
.
./KQ#(3	*D*D!E!E FLL		!-...KQchsxSY[[/I/I&J&J%KLL		!-.....r
c	|tjtjdtjddtjtjdtjtjdtj}||ddS)NrTrGr)r>r2AssertrrIr()r7assrts  rtest_assertzASTValidatorTests.test_asserts		#*SXc39;;77>>*	,	,	,
38C448C5577		%122222r
cV|tjgddS)Nzempty names on Import)r>r2rrs rtest_importzASTValidatorTests.test_import%		#*R.."9:::::r
ctjdtjddgd}||d|tjdgdddS)NrTizNegative ImportFrom levelrzempty names on ImportFrom)r2rrr>)r7imps  rtest_importfromz!ASTValidatorTests.test_importfromsbnTCIc4$8$8#93??		#2333		#.r1--/JKKKKKr
cV|tjgddS)Nzempty names on Global)r>r2Globalrs rtest_globalzASTValidatorTests.test_globalrr
cV|tjgddS)Nzempty names on Nonlocal)r>r2Nonlocalrs r
test_nonlocalzASTValidatorTests.test_nonlocals'		#,r""$=>>>>>r
ctjtjdtj}||ddSNrTrG)r2r rrIr>rs  r	test_exprzASTValidatorTests.test_exprs>HSXc39;;//00		!-.....r
c	tjtjg}||dtjtjtjdg}||dtjtjtjddg}||dtjtjtjdtjdtjg}||ddS)Nzless than 2 valuesrrr[rTrG)r2BoolOpAndr=rrrI)r7rs  rtest_boolopzASTValidatorTests.test_boolopsJswyy"%%		!)***Jswyy371::,//		!)***Jswyy371::t"455		!&'''Jswyy371::sxSY[[/I/I"JKK		!-.....r
ctjtjtjdtj}||ddSr)r2r)r;rrIr=)r7us  rtest_unaryopzASTValidatorTests.test_unaryop
sFK		38C#=#=>>		!-.....r
c
tjggdggdg}|tj|tjdtjdd}|||jdS)NrTrGcttj|tjdtjSrQ)r2Lambdarr(r6s rrLz*ASTValidatorTests.test_lambda.<locals>.facs&:dCHS#(**$=$=>>>r
)r2rr=rrrIrN)r7r]rLs   rtest_lambdazASTValidatorTests.test_lambdasM"b$Bb99		#*Qcikk : :;;*	,	,	,	?	?	?c49-----r
ctjdtj}tjdtj}|||f|||f|||ffD]$}|tj|d%dSNrTrrG)r2rr(rIr=IfExp)r7lrrs    r
test_ifexpzASTValidatorTests.test_ifexpsHS#(**%%HS#)++&&1I1ay1a)3	B	BDIIci&(@AAAA	B	Br
cHtjgtjdtjg}||dtjtjdtjgdg}||ddS)NrTzsame number of keys as valuesr[)r2r"rr(r=)r7rs  r	test_dictzASTValidatorTests.test_dictsHR#(3

33455		!4555HchsCHJJ//04&99		!&'''''r
c|tjdgdtjtjdtjg}||ddSNr[rTrG)r=r2SetrrIr7rs  rtest_setzASTValidatorTests.test_set"s`		#'4&//#4555GSXc39;;//011		!-.....r
c	||gdtjtjdtjtjdtjgd}|||gdtjtjdtjtjdtjgd}|||gdtjdtj}tjdtj}tj||dgd}|||gdtj||tjdtjgd}|||gddS)Nz comprehension with no generatorsrTrrarGrr[)r=r2rrr(rI)r7rLgrTrs     r_check_comprehensionz&ASTValidatorTests._check_comprehension's		##b''=>>>chsCHJJ77!hsCHJJ77Q
@
@		##qc((5666chsCIKK88!hsCIKK88"a
A
A		##qc((4555HS#)++&&HS#(**%%aTFA..		##qc((-...aSXc39;;%?%?$@!DD		##qc((455555r
c	tjtjdtjtjdtjgd}|tjdtj|gdfd}||dS)NrTrrGcdtjdtj|SrQ)r2rrI)gensrLs rwrapz,ASTValidatorTests._simple_comp.<locals>.wrap;s'3sxSY[[114888r
)r2rrrIr(r=r)r7rLrrs `  r_simple_compzASTValidatorTests._simple_comp6schsCIKK88!hsCHJJ77Q
@
@		##chsCIKK001#66*	,	,	,	9	9	9	9	9!!$'''''r
cD|tjdSr)rr2ListComprs r
test_listcompzASTValidatorTests.test_listcomp?s#,'''''r
cD|tjdSr)rr2SetComprs rtest_setcompzASTValidatorTests.test_setcompBs#+&&&&&r
cD|tjdSr)rr2GeneratorExprs rtest_generatorexpz#ASTValidatorTests.test_generatorexpEs#*+++++r
ctjtjdtjtjdtjgd}tjtjdtjtjdtj|g}||dtjtjdtjtjdtj|g}||dd}||dS)NrrirrTrGctjdtj}tjdtj}tj|||S)NrTr)r2rr(DictComp)compskr-s   rfactoryz0ASTValidatorTests.test_dictcomp.<locals>.factoryQsDchjj))Achjj))A<1e,,,r
)r2rrrIr(rr=r)r7rcrs    r
test_dictcompzASTValidatorTests.test_dictcompHschsCIKK88!hsCHJJ77Q
@
@L#sy{{33#sxzz22QC
9
9		!-...L#sxzz22#sy{{33aS
:
:		!-...	-	-	-	
!!'*****r
c	6|tjtjdtjd|tjtjdtjddS)NrTzmust have Load)r=r2YieldrrI	YieldFromrs r
test_yieldzASTValidatorTests.test_yieldWsj		#)CHS#)++66779IJJJ		#-cikk : :;;=MNNNNNr
ctjdtj}tj|tjgg}||dtj|tjgtjdtjdg}||dtjtjdtjg|g}||tj|tjgtjdg}||dS)NrTzno comparatorsrrz,different number of comparators and operandsblah)r2rr(CompareInr=r)r7rcomps   rtest_comparezASTValidatorTests.test_compare[sxSXZZ(({4#&((R00		$())){4#&((cgajj#'!**-EFF		$FGGG{376??SVXXJ??		${4#&((cgfoo->??		$r
ctjdtj}tjdtjg}tjdtjdtjg}tjtjdtj||}||dtj|dg|}||dtjdtjdtjg}tj|||}||ddS)NrTrwrrGr[)r2rr(rrrIr=)r7rrrcallbad_keywordss      r	test_callzASTValidatorTests.test_callfsxSXZZ((chjj))*KSXc38::%>%>??@xcikk22D(CC		$0111xtfh//		$)***C#sy{{)C)CDDExdL11		$011111r
cnGddt}Gddt}Gddt}dD])}|t	j|*|||fD]1}|t	j|dt	2dS)
NceZdZdS)*ASTValidatorTests.test_num.<locals>.subintNrYrr
rsubintrsr\r
rceZdZdS),ASTValidatorTests.test_num.<locals>.subfloatNrYrr
rsubfloatrur\r
rceZdZdS).ASTValidatorTests.test_num.<locals>.subcomplexNrYrr
r
subcomplexrwr\r
r)0hellozinvalid typerB)rfloatrr=r2rrR)r7rrrobjs     rtest_numzASTValidatorTests.test_numrs					S								u												$	$CIIcgcll####688XXZZ5	C	CCIIcgcllN	IBBBB	C	Cr
ctjtjdtjdtj}||ddSr)r2	AttributerrIr(r=)r7rs  rtest_attributez ASTValidatorTests.test_attribute~sH}SXc39;;77chjjII		$011111r
c	~tjtjdtjtjdtj}||dtjdtj}tj|tjdtjtj}||dtjdtj}|ddfd|dfdd|ffD]K}tj|}|tj||tjdLtjgtj}|tj||tjtj|gtj}|tj||tjddS)NrTrrGr)	r2	SubscriptrrIrr(r=SliceTuple)r7subrTrrsls      rtest_subscriptz ASTValidatorTests.test_subscriptsmCHS#)++66

HJJ((		#/000HS#(**%%mAsxSY[[99HJJ((		#/000HS#)++&&dOdAt_tT1oE	0	0DD!BIIcmAr38::66.
0
0
0
0
Yr38::
&
&		#-2sxzz22333
YsCHJJ
'
'		#-2sxzz224LMMMMMr
c	`tjtjtjdtjtjgtj}tj|gtjd}||ddS)NrTrra)	r2ListStarredrr(rIrbrr>)r7rassigns   rtest_starredzASTValidatorTests.test_starreds{xSXc38::%>%>	LLM	%%TFCGAJJ//		&344444r
c	||dgtjd||tjdtjgtjddSr)r=r2r(rrI)r7rLs  r	_sequencezASTValidatorTests._sequencesw		##tfchjj))+<===		##sxSY[[112CHJJ??*	,	,	,	,	,r
cD|tjdSr)rr2rrs r	test_listzASTValidatorTests.test_listssx     r
cD|tjdSr)rr2rrs r
test_tuplezASTValidatorTests.test_tuplessy!!!!!r
cT|tjddS)Nr)r=r2rrs rtest_nameconstantz#ASTValidatorTests.test_nameconstants%		#"1%%&&&&&r
cpuc.tjtj}dtj|D}|ddg|D]}||5tj||}t|dd5}|
}dddn#1swxYwYtj||}t||ddddn#1swxYwYdS)Nc<g|]}|d|S)z.py)endswith)r	fns  rrz;ASTValidatorTests.test_stdlib_validates.<locals>.<listcomp>s)GGGBKK4F4FGGGGr
ztest/test_grammar.pyztest/test_unpack_ex.pyruzutf-8)encodingrd)
ospathdirnamer2__file__listdirextendrtjoinopenreadr~ru)r7stdlibrrrfprrs        rtest_stdlib_validatesz'ASTValidatorTests.test_stdlib_validatessz..GGbj00GGG
,.FGHHH	)	)Ff%%
)
)W\\&&11"cG444'WWYYF'''''''''''''''i++R(((
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)	)	)s683D	+CD	CD	C)D		D
	D
	rrTTcarterrr.rstringre)restlollegit)patterns	kwd_attrskwd_patternsrfr1xxx_c
<tjdtj}|jD]}|tj|d5tj|tj|tjgg}tj	|}tj
|gg}|t5t|dddddn#1swxYwYdddn#1swxYwYdS)NrTrr)rr)subjectcasesrrd)r2rr(_MATCH_PATTERNSrtrMatchrrSr)rrOrru)r7name_xrr9rs     rtest_match_validation_patternz/ASTValidatorTests.test_match_validation_pattern:s#sxzz**+	6	6Gchwq999::

6

6y"$+$'HJJ<066TFB//&&z2266FHf555666666666666666

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6	6	6s7BDC9-D9C==DC=DD	D	)Nrdr)Mrr5rZrrr=r>rrNrTr\r_rcrgrjrmrprsrvr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrequires_resourcer	r2r
constant_1
MatchValue	pattern_1
constant_x	pattern_x
constant_trueMatchSingletonpattern_truerr(name_carterrrI
MatchSequenceMatchMappingr
MatchClass	MatchStarMatchAsMatchOrrrrr
rrArAs2Z22222$*$$$$$666 4 4 4D...,,,*+++,,,111EEE777///AAA//////(///(333;;;LLL
;;;???/////////...BBB(((///

6
6
6((((((''',,,
+
+
+OOO			
2
2
2
C
C
C222NNN$555,,,
!!!"""'''Wu%%
)
)&%
)aJz**Ic""Jz**I CL&&M%3%d++L#(8XSXZZ00K	CM
CHS)#)++..XSXZZ

	
	
	CM
CHS(#(**--XSXZZ

	
	
	CL	
	
	CL	
	
	CL!!	
	
	8$$
#
X
&
&
			!!**844
	
	
	
'
K	
	
	
J'
	"	
	
	

	
KCK

(C(CXSXZZPPQ
	"	
	
	

	CM
%%XSXZZ	
!
!
2B
	
	
	
	h#		
	
	
	#		
	
	
	(c(223		
	
	
	#cmoo&		
	
	
	'#-//*		
	
	
	h#		
	
	
	
f%%
	
	

		
	
	
		
	
	
K	
	
	
	#53#5e#<#<=	
	
	
3=3=--.//Rc***oxOt66666r
rAcfeZdZ	dZdZdZdZdZdZdZ	e
jdZd	Z
d
ZdS)
ConstantTestsctjd}|jdj}tj|}tj||||jd_t
|dd}i}t|||dS)Nzx = 123rrr}rdrT)r2r~rrGrrrurd)r7rGrr9new_noderbr6s       rcompile_constantzConstantTests.compile_constantPs~y##y|!<e,,,(D)))%	!tZ00
T2#wr
c|t5}|gddddn#1swxYwY|t	|jddS)Nrz%got an invalid type in Constant: list)rOrRr/rBrr")r7r%s  rtest_validationzConstantTests.test_validation^s


y
)
)	-R!!))),,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-R\**@	B	B	B	B	Bs?AAcdddtdtfD][}||5||}|||dddn#1swxYwY\dS)NFTr
)const)rr-rtr/r)r7r3rGs   rtest_singletonszConstantTests.test_singletonsdsE43	D	,	,EE**
,
,--e44

eU+++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,s,A**A.	1A.	c	~d}tdh}tdD]}|df}t|dh}ddddd	td
td||f	}|D][}||5||}|||dddn#1swxYwY\dS)
N)rrrrM{g^@y^@unicodebytesrr-r)r-rrrtr/rB)r7nested_tuplenested_frozensetr3r!rGr!s       rtest_valueszConstantTests.test_valuesjs'$aS>>1XX	@	@E(!,L(*:A)>??udX..)K"8"8 02	0	0EE**
0
0..u55  ///
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0	0	0s9,B11B5	8B5	ctjd}|jdjd}tjd}tj||||jdjd<|t5}t|dddddn#1swxYwY|	t|jddS)Nx = 1rrrrrdz6expression which can't be assigned to in Store context)r2r~rtargetsrrrOrrurBrr")r7rr
new_targetr%s     rtest_assign_to_constantz%ConstantTests.test_assign_to_constantysy!!1%a(\***
*f---",	!Q


z
*
*	,bD(F+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,R\**/	0	0	0	0	0sB$$B(+B(c~tjd}|tj|ddS)Nz'docstring'
x = 1	docstring)r2r~rBrrs  rrz ConstantTests.test_get_docstrings9y-..*400+>>>>>r
ct|dd}g}tj|D]'}|jdkr||j(|S)Nr}rd
LOAD_CONST)rudisget_instructionsopnamerargval)r7rcoconstsinstrs     rget_load_constzConstantTests.get_load_consts[T:v
.
.)"--	,	,E||++

el+++
r
cgd}dd|D}|dz
}|tdftj|}||||t|j|D];\}}tj	|}tj
||j||_<||||dS)N)	NTF|g@y@r7r8rrHc8g|]}d|S)zx={!r})r)r	r3s  rrz1ConstantTests.test_load_const.<locals>.<listcomp>s$EEEU(//%00EEEr
z
x = ...r)rrrr2r~rBrLrsrrrrG)r7rJrbrrr3r.s       rtest_load_constzConstantTests.test_load_constsyyEEfEEEFF

x&'''y,,T22	!	!	!!F33	$	$MFE|%000Hh555#FLL,,T22	!	!	!	!	!r
cztjd}|jdj}tjd}tj||j||_tjd}tj||j||_|tj	|ddS)Nz1 + 2rrry4@y$@4@)
r2r~rrGrrrrrBr)r7rbinopnew_left	new_rights     rrzConstantTests.test_literal_evalsy!!	!"<b)))(EJ///
Ls+++	)U[111)%00&99999r
ctjddj}||jd||jdtjddj}||jd||jdtjddj}||jd||jdtjddj}||jd	||jddS)
Nz"x"rfrrTzu"x"rzr"x"zb"x"x)r2r~rrBrGrl)r7rs  rtest_string_kindzConstantTests.test_string_kinds$Ie&))).#&&&&&&If6***/#&&&%%%If6***/#&&&&&&If6***/$'''&&&&&r
N)rr5rZr/r1r4r;r@rrLrrrPrrWrr
rr,r,Ms.BBB,,,
0
0
0000???
!!!8:::'''''r
r,ceZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dS) EndPositionTestscr||j|||j|dSr)rBrr)r7rDrrs    r_check_end_poszEndPositionTests._check_end_poss:,j9990.AAAAAr
cX|tj|||dSr)rBr2get_source_segment)r7rrDcontents    r_check_contentzEndPositionTests._check_contents+/AA7KKKKKr
cJtj|jdjS)Nr)r2r~rrGrs  r_parse_valuezEndPositionTests._parse_valuesy|| #))r
cd}||}|||jd|||jjdd|||jjddS)Nzlambda x, *y: Noner#rrTr)rar_rrrQ)r7rlams   rrzEndPositionTests.test_lambdasw ""Asx000Asx}Q/555Asx44444r
c,td}tj|jd}||dd|||jdd|||jjdd|||jjdjd|||jj	d|||jj	jd	dS)
Nz
            def func(x: int,
                     *args: str,
                     z: float = 0,
                     **kwargs: Any) -> bool:
                return True
            rrzreturn Truezx: intrzkwargs: AnyAny)
rrr2r~rr[r_r
annotationrr7rfdefs   r
test_func_defzEndPositionTests.test_func_defs


	
y|| #D!R(((Aty|];;;Aty~a0(;;;Aty~a0;UCCCAty
>>>Aty95AAAAAr
cd}||}|||jd|||jdjd|||jdjddS)Nzfunc(x, y=2, **kw)rr2rkw)rar_rrrGr7rrs   rrzEndPositionTests.test_calls~   ##Aty&111At}Q/5s;;;At}Q/5t<<<<<r
cd}||}|||jd||dddS)Nzx[0]()zx[0]rr)rar_rr[rns   rtest_call_noargsz!EndPositionTests.test_call_noargssR  ##Aty&111D!Q'''''r
c<td}tj|jd}||dd|||jdd|||jdddS)Nz?
            class C(A, B):
                x: int = 0
        rrMrBz
x: int = 0)rrr2r~rr[r_rYr7rcdefs   rtest_class_defzEndPositionTests.test_class_defs



UWW	
y|| #D!R(((Atz!}c222Aty|\:::::r
cd}tj|jd}|||jdjddS)Nz$class S(metaclass=abc.ABCMeta): passrzabc.ABCMeta)r2r~rr_rrGrts   r
test_class_kwzEndPositionTests.test_class_kwsD2y|| #At}Q/5}EEEEEr
ctd}tj|jd}||dd||jdddS)Nzh
            x = """Some multi-line text.

            It goes on starting from same indent."""
        rr(rrr2r~rr[rGr7rrs   rtest_multi_line_strz$EndPositionTests.test_multi_line_strss



UWW		

1"1%FAr***FL!R00000r
ctd}tj|jd}||dd||jdddS)NzB
            x = "first part" \
            "second part"
        rrMrr{r|s   rtest_continued_strz#EndPositionTests.test_continued_str!ss



UWW	
1"1%FAr***FL!R00000r
cltd}tj|}|jd}|jd}|jd}|jd}|jd}||dd||dd	||d	d
||dd||dd|||jd
|||jdd|||jdjd|||j	d|||jdd|||j
djddS)Na
            while True:
                pass

            if one():
                x = None
            elif other():
                y = None
            else:
                z = None

            for x, y in stuff:
                assert True

            try:
                raise RuntimeError
            except TypeError as e:
                pass

            pass
        rrrMrrrrZrerrezx = Nonezother()x, yzraise RuntimeErrorrR)rrr2r~rr[r_rrrhandlersr4)r7rr
while_loopif_stmtfor_looptry_stmt	pass_stmts        rtest_suiteszEndPositionTests.test_suites*s




(UWW)	
*illXa[
(1+8A;8A;HQK	J1---GQ+++Hb"---Hb!,,,Ir1---Az777Aw|A
;;;Aw~a05yAAAAx777Ax}Q/1EFFFAx038+FFFFFr
cd}||}|jdj}|||ddS)Nzx = f"abc {x + y} abc"rzx + y)rar!rGr_r7rfstrrRs    rtest_fstringzEndPositionTests.test_fstringVsF$  ##A$Aug.....r
c4td}||}|jdj}||dd|||jd|||jddS)Nz
            f"""Some multi-line text.
            {
            arg_one
            +
            arg_two
            }
            It goes on..."""
        rrrarg_onearg_two)	rrrar!rGr[r_rrrs    rtest_fstring_multi_linez(EndPositionTests.test_fstring_multi_line\s



UWW	
  ##A$E1a(((Auz9555Au{I66666r
ctd}tj|jd}||dd||jddddS)NzT
            from x.y.z import (
                a, b, c as c
            )
        rrrrMr)rrr2r~rr[r)r7rrs   rtest_import_from_multi_linez,EndPositionTests.test_import_from_multi_linelsw



UWW		

ill"CA&&&CIaL!R00000r
cdd}d}td}t|j|||f\}}}|||jd|||jjd|||jjd|||jjd|||jj	djd	|||jj	d
jd|
|dddS)
Nz
f()[1, 2] [0]zx[ a.b: c.d]zN
            x[ a.b: f () ,
               g () : c.d
              ]
        z	f()[1, 2]z1, 2r,zc.drf ()rg ()r)rrmaprar_rGrrreltsr[)r7s1s2smi1i2rs       rtest_sliceszEndPositionTests.test_slicesvs"




UWW		
*RRL99
BB+666B777B666B666B
a 0 6???B
a 0 6???B1%%%%%r
cRtd}||}||dd|||jd|||jd|||jjddS)NzF
            (1 * 2 + (3 ) +
                 4
            )
        rMr4z1 * 2 + (3 )3)rrrar[r_rr)r7rrRs   r
test_binopzEndPositionTests.test_binops



UWW		

!!!$$E1a(((Au{C000Auz>:::Auz/55555r
ctd}tj|jdj}||dd|||jdddS)Nz{
            if (one_condition and
                    (other_condition or yet_another_one)):
                pass
        rrM,rz"other_condition or yet_another_one)	rrr2r~rrr[r_r!)r7rbops   rrzEndPositionTests.test_boolops



UWW		

ill"'CB'''Asz!}@	B	B	B	B	Br
cHd}d}d}td}t|j||||f\}}}}|||d|||d|||d||dd	dS)
Nzx = () ;z	x = 1 , ;zx = (1 , 2 ) ;z?
            x = (
                a, b,
            )
        r.z1 ,z(1 , 2 )rr)rrrrar_r[)	r7rrs3rt1t2t3tms	         rtest_tupleszEndPositionTests.test_tupless





UWW		
T.RR0@AABBBD)))BE***BJ///B1%%%%%r
cd}||}|||||||jdddS)Nz
func(x. y .z)rzx. y .z)rar_rrns   rtest_attribute_spacesz&EndPositionTests.test_attribute_spacessV  ##AtQ'''Aty|Y77777r
cd}tj|jdj}|t|jd|||dd|z}tj|jdjj}|t|jd|||ddS)Nz( ( ( a + b ) ) )rrr(await )r2r~rrGrBr4rr_)r7rr-rs    rtest_redundant_parenthesisz+EndPositionTests.test_redundant_parenthesissIaLLa &a)7333Aq'***
\IbMMq!'-a)7333B7+++++r
cd}|D]\}}||5tj|jdj}|t
|j|||||d|z}tj|jdjj}|t
|j|||||dddn#1swxYwYdS)N))z( ( ( a ) ) ) ( )r)z( ( ( a ) ) ) ( b )r)z( ( ( a ) ) ) [ b ]r)z( ( ( a ) ) ) . brrr)	rtr2r~rrGrBr4rr_)r7rrr r-rs      r(test_trailers_with_redundant_parenthesisz9EndPositionTests.test_trailers_with_redundant_parenthesiss8
	.	.DAqa
.
.IaLL%a(.  a!11555##Aq!,,,\IbMM&q)/5  a!11555##B1---
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.	.	.sCC==D	D	cd}d}||}||}|||jdd|||jdd|||jdd|||jdd	|||jdd
dS)Nz[{}, {1, }, {1, 2,} ]z{a: b, f (): g () ,}rr)rz{1, }rMz{1, 2,}rr)rar_rr r!)r7rrc1c2s     r
test_displayszEndPositionTests.test_displayss
$
#


r
"
"


r
"
"B
D111B
G444B
I666B
F333B	!f55555r
ctd}||}||dd|||jdjd|||jjdjd|||jjdjdd|||jjdj	ddS)	Nza
            x = [{x for x, y in stuff
                  if cond.x} for stuff in things]
        rM%rthingsstuffzcond.xr)
rrrar[r_
generatorsreltifsr)r7rcmps   rtest_comprehensionsz$EndPositionTests.test_comprehensionss



UWW	
""CB'''As~a05x@@@Asw1!497CCCAsw1!48;XFFFAsw1!4;VDDDDDr
c"td}tj|jd}|||jdjd|||jdjddS)NzT
            async def f():
                yield x
                await y
        rzyield xrzawait y)rrr2r~rr_rGrhs   rtest_yield_awaitz!EndPositionTests.test_yield_awaits



UWW		

y|| #Aty|19===Aty|19=====r
ctd}td}||}|t	j||j|dS)NzD
            x = (
                a, b,
            ) + ()
        z;
            (
                a, b,
            )
        )rrrarBr2r]r)r7s_origs_tuplerRs    rtest_source_segment_multiz*EndPositionTests.test_source_segment_multis

UWW		


UWW		
!!&))/
CCWMMMMMr
ctd}d}tj|jd}|tj||jdd|dS)Nuf
            class C:
                def fun(self) -> None:
                    "ЖЖЖЖЖ"
        u/    def fun(self) -> None:
        "ЖЖЖЖЖ"rTpaddedrrr2r~rrBr])r7rs_methodrus    rtest_source_segment_paddedz+EndPositionTests.test_source_segment_paddeds

UWW		
*y  %a(/	!TRRR!	#	#	#	#	#r
c.d}tj|j\}}}}}|||d|||d|||d|||d|||ddS)Nz!v = 1
w = 1
x = 1

y = 1
z = 1
r$zw = 1r=zy = 1zz = 1)r2r~rr_)r7rr-rrTrrs       rtest_source_segment_endingsz,EndPositionTests.test_source_segment_endings		s7	!)
1aAAq'***Aq'***Aq'***Aq'***Aq'*****r
ctd}d}tj|jd}|tj||jdd|dS)Nzb
            class C:
              	  def fun(self) -> None:
              	      pass
        z+  	  def fun(self) -> None:
  	      passrTrr)r7rrrus    rtest_source_segment_tabsz)EndPositionTests.test_source_segment_tabs	sv



UWW		

&y|| #/49Q<MMMxXXXXXr
cd}tj|j\}}}}|`|`|`|`|tj|||tj|||tj|||tj||dS)Nzv = 1
w = 1
x = 1

y = 1
)	r2r~rrrrrrar])r7rr-rrTrs      r test_source_segment_missing_infoz1EndPositionTests.test_source_segment_missing_info	s0Yq\\&
1a
H
L
L
#0A66777#0A66777#0A66777#0A6677777r
N)!rr5rZr[r_rarrjrrprvrxr}rrrrrrrrrrrrrrrrrrrrrr
rrYrYs
BBBLLL***
555BBB ===(((;;;FFF
111111*G*G*GX///777 111&&&"
6
6
6	B	B	B
&
&
&888,,,..."	6	6	6
E
E
E>>>NNN
#
#
#+++
Y
Y
Y
8
8
8
8
8r
rYceZdZdZdS)NodeVisitorTestscGfddtj}tjtd}|}gt	jd5}t	jddt||dddn#1swxYwY|	gd|	d	|Dgd
dS)NcBeZdZfdZfdZfdZfdZfdZdS)9NodeVisitorTests.test_old_constant_nodes.<locals>.VisitorcL|jd|jfdS)Nr)rrrr7r9logs  r	visit_NumzCNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Num-	&

DK788888r
cL|jd|jfdS)Nrrrrrs  r	visit_StrzCNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Str/	rr
cL|jd|jfdS)Nrrrs  rvisit_ByteszENodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Bytes1	s&

DK$&9:::::r
cL|jd|jfdS)Nr)rrrGrs  rvisit_NameConstantzLNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_NameConstant3	s&

DKDEEEEEr
cB|jddfdS)Nr.)rrrs  rvisit_EllipsiszHNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Ellipsis5	s$

DKS9:::::r
N)rr5rZrrrrr)rsrVisitorr,	s
9
9
9
9
9
9
9
9
9
9
;
;
;
;
;
F
F
F
F
F
;
;
;
;
;
;
;r
rz            i = 42
            f = 4.25
            c = 4.25j
            s = 'string'
            b = b'bytes'
            t = True
            n = None
            e = ...
            T)recordalwaysr))rrrK)rMrr)rrr)rrr)rrr8)rrT)rrN)rr.c6g|]}t|jSr)rmessage)r	rs  rrz<NodeVisitorTests.test_old_constant_nodes.<locals>.<listcomp>P	s 777Q#ai..777r
)+visit_Num is deprecated; add visit_Constantrrz+visit_Str is deprecated; add visit_Constantz-visit_Bytes is deprecated; add visit_Constant4visit_NameConstant is deprecated; add visit_Constantrz0visit_Ellipsis is deprecated; add visit_Constant)
r2NodeVisitorr~rwarningscatch_warningsfilterwarningsDeprecationWarningvisitrB)r7rrvisitorwlogrs     @rtest_old_constant_nodesz(NodeVisitorTests.test_old_constant_nodes+	sl
	;
	;
	;
	;
	;
	;
	;co
	;
	;
	;i	 				'))

$D
1
1
1	T#Hb2DEEEMM#																
	
	
	
							
77$777	:
	:
	:
										s1BB"BN)rr5rZrrr
rrr*	s#.....r
rc&eZdZdZdZdZdZdS)ModuleStateTestscd}d}d}t|||tj}t|||}||tjdS)Nzx + 1r}rf)flags)rur2rvrtypesCodeType)r7rbfilenamerrzs     rcheck_ast_modulez!ModuleStateTests.check_ast_module`	s]44s7HIIIx400dEN33333r
c4tjtjdd5tjd=ddl}tjd=ddl}|dddn#1swxYwY~~tj|dS)N_astr)r	swap_itemrmodulesrrr`)r7ast1rs   rtest_reload_modulez#ModuleStateTests.test_reload_modulem	s

s{FD
9
9	$	$F#F#!!###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$
s7A$$A(+A(ctfd}tjtjdd5tjd=tjtd|5||dtjddl	}|
|dddn#1swxYwYddddS#1swxYwYdS)Nc&tj|<Sr)rr)r8rrmlazy_mods   r	my_importz4ModuleStateTests.test_sys_modules.<locals>.my_import	s (CKOr
r
__import__r)objectrrrrr:rrassertNotInrr)r7rrrs   @rtest_sys_modulesz!ModuleStateTests.test_sys_modules	sa88					
s{FD
9
9
	.
	.F#"8\9EE
.
.%%'''  555

dH---
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.
	.s6)CAB9-C9B=	=CB=	CCCcxtd}tj|}||ddS)Nap
            import _ast
            import ast
            import gc
            import sys
            import types

            # Create _ast.AST subclasses instances and call PyAST_Check()
            ast_tree = compile('x+1', '<string>', 'eval',
                               flags=ast.PyCF_ONLY_AST)
            code = compile(ast_tree, 'string', 'eval')
            if not isinstance(code, types.CodeType):
                raise AssertionError

            # Unloading the _ast module must not crash.
            del ast, _ast
            del sys.modules['ast'], sys.modules['_ast']
            gc.collect()
        r)rrrun_in_subinterprB)r7rbress   rtest_subinterpreterz$ModuleStateTests.test_subinterpreter	sF

&&t,,a     r
N)rr5rZrrrrrr
rrr\	sP444   $...*!!!!!r
rctdkrdStjdddgkrtdftdft
dffD]`\}}t
|dz|D]7}tj|d|}t
t|d	8t
d
at
dttjdS)N__main__rz-grdrerfz_results = [rj,]zmain())
rrargvrmrorqprintr2r~r
SystemExitunittestmain)
statementsrl	statementrs    rrr	s:
x|v",f!5h7O",f!5!7		J$~%&&&'
1
1	yC66x~~~~/0000#JJJJ
hMOOOOOr
r)r rrrrrrNN)r rrr)rrzmodule docstringNrR)rrrrr"r)rS)rrZrr)rrr)r rrZrr )rr!zfunction docstringN)rrrrrrrrrrr]NN)rS)rrrrr)rrrr)rrrrrZrN)rS)rrrrr)rrrrrrNN)rS)rrrrr)rrrr)r)rrrrr)rrrrr)r)rrrrrTsr(r(N)rS)rrrr)rrr$r)rrrr rr)rrrr r)rrrrr )r)rrrrrrr(r)rr)r)rr*rrrr(rrrr+r()rS)r rr))rr,)r)rrr+r'r(r()rrr)rrrrrrrNN)rS)rrrr0)rrrG)r")rrrZrrrNN)rrrrrrerNN)rrrrrrNN)r)rr+rr r
NN)rr#r'rNN)r)r)rrKr"NN)r)r+r-rKN)r)r1r7rNN)rrrrrrN)rrrrr*NNr)rrr/r")rrr.)r r:rr2)rrBzdoc for f()N)rrr)rS)rrrrD)rrrr0)rrrrrrr(rrrr*)rrF)r)rrrr*r'r(r()rrrr.)rS)rr+rr.)rrrr/)rrrr-)rrFrr()r)rrrr-)r)rrrr-r'r(r()rrrr;)rS)rr9rr;)rrrr8)rrr&)rrrrG)rrrrG)r)rrrr+rr()rr rr)r)rr rr.rr()r"rrrX)rrrrC)rS)rrrr)r rrZrr.)rrJzdocstring for class CN)rr1r
r()Returnrrrr)rrrerrrNr^rrrr)rrrrrr-)Delrbrrrrrr-rI)rrOrNrrrrrrrr)rrRr]rS)rrrMrrrrSrS)rr#rr()rrrrZrrrrrMr]rS)rrrrrrrS)rr$rr(	AnnAssign)rrRrTrS)rrrr)rrrrrrr(rrZrr)rr\)rrrrrr'r(r(r)rrrr)rrZrr)rr\rr()r)rrrrr)r)rrerrr'r(r()rrr)rrrr^)rrZrrA)rrrrrA)rrerrA)r)rrerr*rr()rr0rr )r)rr0rr@rr()rr/rr )rerrrrrQr)rrrrrrNr)rrrre)rrOr-rS)rr3r-r()rS)rrrrerl)rr#r-r(ro)rrYr-r()rS)rrrrZ)rrrr)rrYr]r()rS)rMrMrMr)rrrr)r)rrrrrr()rS)rrMrr)rrrr)rrrr)rS)rrMrrrr)rrrr)rI)rrarTr()rrrrrrrS)rS)rrrr)rrrr-)rI)rrrrrrrr()rrrrrqrS)rS)rr0rr-rr)rrrr-)r)rrrrerr()r)rrrr@rNryrz)rrrrrrr(r~)r)rrrrrr()rrrrr)rrrrrr-r(Nr)rrrr)rrrrrrNrr)rrrrrr-Nrrgr-)r rRrrRrN)rSr)BreakrE)rrrr)Continue)rrrr)rrrr)rrOr]rS)rr#rrS)rr>rr()rrrr*)rrrrZ)rrar]rS)rrhrrS)rrcrr()rSr?r )rrrrr)rMrrr)r)rrrrAar()r)rrrrZBbr(r)rrrr)r)rrrrrnrS)r)rrrrrorS)r)rrrrCcr()rrrrHrrrXr]r()rrarr()rr>rrS)rrjrTr()rr5r$rS)r)rrDrr+rir()r)rr.r!rr()rrrrr)rr>r-rS)rrcrrS)rrdrTr(r)rrXrur()rrhrrS)rrrrrrTr()rrrrrrr(ri)rr3r$rS)rr4rTr(AsyncFunctionDef)rrrr)r rMrrMr)rrvzasync functionN)rrrrAwait)rrrr)rrf	somethingr()rrrrAsyncFor)rMrrr)r)rMrrMrr
rS)r)rMrrMrrxr()r rMrrMr*)rrzrN)r rrrr)rr{rMN)rrrMr0	AsyncWith)rMrrMr0)rI)r)rMrrMrr]r()r)rMrrMrrrS)r rMr*rMr0)rr}rN)rrbrMNr[)rr#rMN)rrsrNr)rrrr)rrMrr)rrYrN)rrbrNr)r)rMrMrMrrxr()r)rMrrrMrerrS)rrzrr()rrrr)rS)rrZrr)rrrrrdeco1r()rMrrMr)r)rMrrMrdeco2r()rrrrZ)r)rrrrdeco3r()rr{rN)rrrr)rS)rrerr)rMrrMr)rS)rMrZrMr)rrrr)rrrrrdecor()rrrr)rr#r]r()rrsr]rS)rrtrr()rr~)r)rrrrrqrr(rr()r rg)	NamedExpr)rrrrrW)rr#rN)rrrr/)rrsrNN)rrMrNN)rrdr
NN)rS)rrrr/r)rrdrNN)rrr0rrr
NN)rS)rr-rr )rrrr8)r)rr/rr.rNN)rSr6rr$rN)rr4rNN)r)rrrr*rNN)rrrjrMN)rrrN)rr5rNN)r)rr@rr-rNr)rrrrA)rS)rr/rrA)rrrrK)r)rr rr7rNN)rS)rrGrrK)rrrrz)r)rrDrrrrNN)rS)rr)rrzrH)r rU)rrUrkr`rrVrMN)r.rr.r)rrrRr]r()rr#rr()r.)rrNrr`rrOrr()r.)r)rN)r;)rrOr-r(r)rrrr)rr%NNrrVrNrrOrMNrrrrM)rrNN)rrrr)r)rMrrMrrN)r)rrrrrMN)rrsrr()rrtrr(r~)rrVr]r(r)rr>r]rS)rrcrrS)rrdrr()rrrrrE)rr4rrS)r)rr*rr0rr(rrk)Ltrr$rN)rrRr"r()rr)rr])rr>rr(r()r)rrrrZrr)rr&N)rrMr
r()rrMrrZ)rrrrZ)rrOrN)rrhrN)rrrre)rr$r]rS)rrcrr()r.)rrrN)r.)rrgrN)r.rrUrrr()r.)rr_r)r)rrMrr)rrVrr()rrOrr(Nr()r.)rrRr-r())rrXrN)rrYrMN)rrarN)rkr)rrOrN)rrT)rrNrrr(rr()rrL)r)rrrr)rr$r]r(rr()r)rrrre)rrsrN)rr4rMNNr()!r2rrErnrrrrrrr^textwraprrrrrmrorqTestCaser0rrAr,rYrrrrrrnrprrrr
r<module>rs)/







								



&SSS
r
FFF
Vn	7n	7n	7n	7n	7!n	7n	7n	7`Y=Y=Y=Y=Y=h'Y=Y=Y=xr6r6r6r6r6)r6r6r6jB'B'B'B'B'H%B'B'B'JV8V8V8V8V8x(V8V8V8p
/////x(///d	N!N!N!N!N!x(N!N!N!b


 N	JKRPN	Z[]_`N
]M3b"dBPRTXZ\0]`w_xz|CEI
JKMOPN
]M3b"dBPRTXZ\0]aq`rtvx|~B
CDFHI	N

]M3bCiBjlprtvxz~AC1DG_F`bdfjlp
qrtvwN
]M3bCiBjlprtvxz~BeAf1gjBiCEGIMOS
TUWYZ
N
]M3b"Fprtvxz~AC1DG_F`bdfjlp
qrtvwN
]M3b"G~@BDFHLNP1QTlSmoqswy}
~ACDN
]M3b"um]cfoqCNP^`LOVXfiSV`bprz|@UAhBDMNNPYBZ\effhlGmoqsuw{}1@C[B\^`bfhl
mnprsN
]M3b"um]cfoqCNP^`LOVXfiSUfhgirNsu~BAJfKMQGRTVXZ\`bd1eh@gACEGKMQ
RSUWXN
]M3b"dBPRUACE1FIaHbdfhlnr
stvxyN
]M3bCRCRCRTBjAknTmUWDGlnVY_aoqsu~XB	H	J	X	Z	\	^	`	A	a	Fb	1c	f	q
e	r
t
v
x
|
~
B
CDFHIN
]M3b"dBPRTXZ\0]`x_y{}ALN\^JMTVdgxfy{DLEGP@QSW
XY[]^N
]M3b"dBPRTXZ\0]`x_y{}ALN\^JMTVdgQSdfegpLqs|@}C
DEGIJN
]M3b"dBPRTXZ\0]`x_y{}ALN\^JMTVdgQT]_mp{}KMy|CESV@CMO]_gimBnUoqz{{}FoGIRSSfTV_L`bk@lnr
stvxyN 
ZR6M5NPRSTVXY!N"
ZR7J6KMO
PQSUV#N$
Z.Z-[]_bza{}
ABDFG%N&
]M3b"dBPRTXZ\0]aa`bdfhlnr
stvxy'N(
X|&K%LMNPRS)N*
X|&M%NPsuyz{}A+N,
X|w?fiP?QS]'^&_aGIM
NOQST-N.
X|w?fiP?QS]'^&_aGIM
NOQST/N0
X|v|>ehO>PR\']&^`FHL
MNPRS1N2
[-)PS^`mpZ]dfsvFuGIR\SU^S_aegh
ijlno3N4
[-)PS^`mpZ]dfsv_arusu~\AJSKMQST
UVXZ[5N6
[-)PS^`mpZ]dfsv_bkm{~IKY[GJQSadNQ[]kmuw{P|c}HIIKT}UW`aaubdm\npySz|@BC
DEGIJ7N8
ACEF9N:
UM#JLswOvPRTVZ
[\^`a;N<
Wm%KNeMfhjklnpq=N>
T<!GJ`Iacefgikl?N@
T<!GJ`Iaeikwz`cybz|~ed@
ABDFGANB
T<!GJ`Iaeikwz`cybz}S|TeUdV
WXZ\]CND
V]&E%FIaHbdh
ijlnoENF
V]&EGh%ilDkEGK
LMOQRGNH
Wmfm=lp\o]_a&bdh
ijlnoINJ
UL#9":o|^MOSVlUm>n=oqsuw
xy{}~KNL
UL#9":BE[D\]^`bcMNN
Y'=&>/S_bQSWZpYqBrAsuwy{
|}ABONP
RSUWXQNR
X}'L&MNOQSTSNT
\=%2V1WYZ[\^`aUNV
X|cU+,b1WNX
GH"MYNZ
"#R([N\
UM#JLswPvQSUW[
\]_ab]N^
UM#JLswSvTVXZ^
_`bde_N`
UMG\<cfM<NPZ$[]EH`Gacegk
lmoqraNb
UMG\<cfM<NPZ$[]EH`Gacegk
lmoqrcNd
UMFL;beL;MOY$Z\DG_F`bdfj
klnpqeNf
V]^]Wl^EGn]oqzE{NQXZgjRT~iAKPLNy{}@~A}B%C
DEGIJgNh
V]Z@fiOSbdMOwy{}~RBQS|~fiQhRTUAVQW%X
YZ\^_iNj
V]Z@fiOSbeln|hjS~TV`dacKMOQRRSQT%U
VWY[\kNl
V]Y
?eix{bdLOwNxz{i|h}%~
@BDEmNn
V]Y
?eix|CERU|~fTgis{tv^`bdeifhg%h
ijlnooNp

k2r4QSUWY]_a5bfru{}JMTVcfln{}lnprteuLvtwexz|~BDH
IJLNOqNr

s["b$PRTVX\^`4aeoq}@ikSVUUVYTXUW[e\d]_acgim
noqstsNt

k2r4QSUWY]_a5bfqtADeCfihhikofpeqsuw{}A
BCEGHuNv
V]V]TCh<imsvBEhDilOkPmQSxly%z
{|~@AwNx
V]UMYW\^jnQSvmwWxzC=DFk<l%m
noqstyNz

k2r4QSUWY]_a5bfln{IKXZ@DSU~@hjlnoCpBq~rfsetvxz~@D
EFHJK{N|
]M3b"dBPRTXZ\0]`w_x|fioq}ikmoqhru{}IKux[w\^`ta{bdhjn
oprtu}N~

k2r4QSUWY]_a5be}d~BlouwCEoqsuwnx{ACOQ{~a}bdfzgAhjnpt
uvxz{N@
ZR6M5NQ{EGSUACEG~HKQS_aKNqMrtvJwQx
yz|~ANB
]M3b"dBPRTXZ\0]`w_x}CERT}AOQ^`FJY[DFnprtuIvHw@xy{}|~{AEGK
LMOQRCND
]M3b"dBPRTXZ\0]`w_x||{}CEI
JKMOPENF

NOQSTGNH
]M3?e>fhjlprtvxz~AC1DG_F`bdfjlp
qrtvwINJ
]M3?e>figigigimoqsuw{}1@C[B\^`bfhl
mnprsKNL
]M3?e>fjRiSUY\DFn[orvx|q}CEG1HKcJdfhjnpt
uvxz{MNN
]M3?e>fjRiSUY\DFn[orvx|q}lnp1qtLsMOQSWY]
^_acdONP
]M3?e>fhjlprtvxz~BeAf1gjBiCEGIMOS
TUWYZQNR
]M3?e>fjRT|i}CEGIKMQSFSFSF1GJbIcegimos
tuwyzSNT
]M3?e>fjRiSUY\D[EHmGnptwZ\AvB1CF^E_aceiko
pqsuvUNV
]M3?e>fjRiSUY\D[EHLGMOSVy{`Ua1be}d~@BDHJN
OPRTUWNX
]M3?e>fjRiSUY\D[EHmGnp]`CEj_k1loGnHJLNRTX
YZ\^_YNZ
]M3?e>fjRiSUY\D[EHLGMO|bdI~J1KNfMgikmqsw
xy{}~[N`UVW$6$
,3Y\B3CDE$B$\	$
-+r2tRTSU)VXAB$'J&KNqMrst
$b"-.$|&L%MNO$'J&KNsMtuv$
M+QUdgNPx{czdfgUhTijk$
/UYhkRT|g~hjkYlXmno$
MG\DjmSDTV_,`dsv}MPy{dOegqurt\^`bccdbefg$
MG\DjmSDTV_,`dsv}MPy{dOegqurt\^`bccdbefg$
MG\DjmSDTV_,`dsv|~LOxzcNdfpuqs[]_abccbdef$	=7LCilRCSU^+_cru|~LOxzcNdfptqs[]_abbcadef$ 	=7LCilRCSU^+_cru|~LOxzcNdfptqs[]_abbcadef!$"	=7LCilRCSU^+_cru{}KNwybMceotprZ\^`abbacde#$$
HnqWHXZc0dhwzACQT}hSikuyvx`bdfgghfijk%$&
HnqWHXZc0dhwzACQT}hSikuyvx`bdfgghfijk'$(
HnqWHXZc0dhwz@BPS|~gRhjtyuw_acefggfhij)$*	<)LwX_N`dGIlcmno+$,
'MPlPlPlortn@AB-$.
'MQZ\hkqsCfhKBLNWkXZcQdPegijk/$0
'MQ_anqW[jlSU}ACDZEYFQGPHJLMN1$253$4;5$6d7$8N9$:7;$<'V'V'VXabc=$>b)45?$@(W(W(WYbcdA$B(W(W(WYbcdC$Dr956E$F
(UXDWEGIJKG$Jr