Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_ast.cpython-311.opt-2.pyc
�

�Ke|�����ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
d�Zgd�ZdgZgd�ZGd�d	ej��ZGd
�dej��ZGd�d
ej��ZGd�dej��ZGd�dej��ZGd�dej��Ze
jGd�dej����Zd�Zgddggf�ddggf�dddddggdggdgfdggddfggf�dddddggdggdgfd ggddfggf�ddd!ddgd"gdggdgfd#ggddfggf�ddd$ddgd"gdggdd%gfd&ggddfggf�ddd'ddggd(ggdgfd)ggddfggf�ddd*ddggd+ggdgfd,ggddfggf�ddd-ddggd.d/d0d1d2d3d4d5d6d7d8d9d:edfgd;fd;fd;fdfggdgfd<ggddfggf�ddd-ddggd.d/d0d1d2d3d4d5d6d7d8d=gd;fd;fd;fdfggdgfd<ggddfggf�ddd>ddggdggd?gfd@ggddfggf�dddAddggdB�dCdDgdEgdFdGdHdIdJgd;fdKdLggfgfdMggddfggf�dddNddggdggdgfdOggd3dPdQd6dRdSgd;fd;fdfggf�dddTddggdggdgfdUggd3dVdQd6dWdXdYgd;fd;fdfggf�dddZddggdggdgfd[ggd3d\dQd6d]dXd1d^d3d_d`d6dadbd9dcedfgd;fd;fd;fgd;fd;fdfggf�ddddedfggdgggfggf�ddddTdfggdhggfggf�dddd>dfdiggd@ggfggf�ddd$ddggdggdgfdjggddfggf�ddkdldmgfggf�ddndldogdpdfggf�ddndqd6drdsdtgdufgdvdfggf�ddndwd6dldxdygdufgdzdfggf�ddndwdIdldxdygdufgdzdfggf�dd{dd|d3d}d~d6dd�gd;fd;fdd�fggf�dd{d'd|d3d�d~d6d�d�d�gd;fd;fdd�fggf�dd{d�d|d3d�d~d6d�d�d1d�d3d�d�d6d�d�d9d�edfgd;fd;fd;fgd;fd;fdd�fggf�dd�ggf�dd�d�d�d�d�ggdfggf�dd�ded�dgggfggf�dd�dwd�d�ggfggf�dd�d�d�d�gd�d�d�d�ggfgfggf�dd�d�d�d�gd�d�d�d�gd�gfgfggf�dd�d�d�gd�gdfggf�dd�d�d�d�gd�gdfggf�dd�d�d�d�d�d�ggfdfggf�dd�d�d�gd�d�d�dd�gfgggfggf�dd�d�d�gggd�gfggf�dd�d�d�gd�d�d�dd�gfgggfggf�dd�ggf�dd�d�d�gfggf�dd�d�d�d�gdfggf�dd�d�d�gfggf�dd�ggf�dd�ggf�dd�d$d�d�d�ggdfggf�dd�d�d�d�d�ggdfggf�dd�d'd6d�d�d�gdufd�d)ggdfggf�dd�d�d6d�d�d�gdufd�d�ggdfggf�dd�d�dId�d�d�gdufd�d�ggdfggf�dd�d�d�d�d6d�d�d�gd;fd�d6d�d�d�gdufd�gdfgffggf�dd�d�d�d�d�d�d�d�d�gdfd�d�d�d�gdfgffggf�dd�d�d�d�d�d�d�d6d�d�d�gdufd�gdfgffggf�dd�d�d�d�d�d�d�d�d�gdfgffggf�dd�d$d�d$d�d�d6d�d�d�gdufd�gdfgffggf�dd�d�ddggdggdgfd�d�d�d�d�d�d�d�ggfffggddfggf�dd�d�ddggdggdgfd�d�d�d�d�gd�gdfggddfggf�dd�d�ddggdggdgfd�d�d�gd�gdfggddfggf�dd�d!dKd!d�dgdK�ddpg�dgf�dgffggf�dd�de�dded1�d�d�d�d�dgfd;f�dgffggf�dd�d�ddggdggdgfd�d��d	d��d
dӐd�dgd�fgffggddfggf�dd�d
ddggdggdgf�dg�dd��d�dggfd��d�d�dggfgddfggf�dd�dddggdggdgf�dg�dd��d�dggfd��d�d�dggfgddfggf�ddd�d
dfgg�dg�dd��d�dggfd��d�d�dggfgfggf�dd�dddggdggdgf�dgd��d�ddϐd�ddӐd�dgdfgfggfgddfggf�dd�dddggdggdgf�dg�dgddfggf�d�d ggf�ddd'ddd"ggdggdgfd)ggddfggf�dd�d!ddd"gg�d"�dggdgf�d#ggddfggf�dddddd"g�d$gd�d%�d&gddgdgf�d'ggddfggf�dd�d(ddd"g�d$gd�d%�d&gddg�d)gf�d*ggddfggf�ddd�ddd"ggdggd�d+gfd�ggddfggf�dddddd"g�d,�d-gdggdg�d.�f�d'ggddfggf�dddTddd"g�d,gd�d/g�d0gd�d+�d1gfdUggddfggf�dd�d2ddd"g�d,gd�d/gdgd�d+�d1gf�d3ggddfggf�dd�d4ddd"g�d,gd�d/g�d0g�d5�d+�d1gf�d6ggddfggf�dd�d7ddd"g�d,gd�d/gdg�d8�d+�d1gf�d9ggddfggf�Z�d:�d;gfgZg�d<��d=�d>dq�d?�d@�dAgff��dB��dC��d=�dD�dEdggdggdgf�dFff��d=dKdq�dGg�dHgff��d=dK�dIggff��d=�ddq�dJgff��d=dK�dK�dLg�dMgff��d=�d	d�d�d�dʐdN�dOgdfgff��d=d�d�d�d�dʐdN�dOgdfgff��d=�d	d�d6�dP�dQ�dRgd;fd�d6d�dS�dTgduf�dUgdfgff��d=�d	�dVd6�dP�dQ�dRgd;fd�d6�dW�d�dXgduf�dYgdfgff��d=�d	�dVd6�dP�dQ�dRgd;fd�dI�dW�d�dXgduf�dYgdfgff��d=d�d�d6�dP�dQ�dRgd;fd�d6d�dS�dTgduf�dUgdfgff��d=d�dVd6�dP�dQ�dRgd;fd�d6�dW�d�dXgduf�dYgdfgff��d=d�dVd6�dP�dQ�dRgd;fd�dI�dW�d�dXgduf�dYgdfgff��d=d�d�d6�dP�dQ�dRgd;fd�d6d�dS�dTgduf�dUgdfgff��d=dϐdVd6�dP�dQ�dRgd;fd�d6�dW�d�dXgduf�dYgdfgff��d=dϐdVd6�dP�dQ�dRgd;fd�dI�dW�d�dXgduf�dYgdfgff��d=�dZdw�d[�d\�d\g�dH�d]gff��d=d�d��d^g�d_��d`�dagff��d=d�d��d^d1�dbdI�dc�dd�degd;fd;fggff��d=d�d��d^dϐdf�dQdӐdg�dhgdfgfggff��di��dj��dk��dl��dm��d=dIdqg�dn�d;ff��d=dI�dIgd;ff��d=d6dlg�do�d;ff��d=d6dqg�dn�d;ff��d=d6�dIgd;ff��d=d�d��dp�dqggff�Ze��dS(r�N)�dedent)�supportc	�t�|�+t|tttf��s	|tur|St|t
��rd�|D��S|jjg}t|d��rmt|d��r]|�	|j
|jf��t|d��r,t|d��r|dxx|j|j
fz
cc<|j�t|��S|jD]2}|�	t!t#||�������3t|��S)Nc�,�g|]}t|����S�)�to_tuple)�.0�es  �7/usr/local/apps/python3/lib/python3.11/test/test_ast.py�
<listcomp>zto_tuple.<locals>.<listcomp>s��'�'�'������'�'�'��lineno�
col_offset�
end_lineno�end_col_offset���)�
isinstance�str�int�complex�Ellipsis�list�	__class__�__name__�hasattr�appendrrrr�_fields�tupler�getattr)�t�result�fs   rrrs4���y�J�q�3��W�"5�6�6�y�!�x�-�-���	�A�t�	�	�(�'�'�Q�'�'�'�'��k�"�
#�F��q�(���;���<� 8� 8�;��
�
�q�x���.�/�/�/��1�l�#�#�	;���3C�(D�(D�	;��2�J�J�J�1�<��)9�:�:�J�J�J��y���V�}�}��
�Y�/�/���
�
�h�w�q�!�}�}�-�-�.�.�.�.���=�=�r
)M�Nonez'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 v�v = 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 v�1�passzfor 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 b�a + 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])c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej d���Z!d�Z"d�Z#d �Z$d!�Z%d"�Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+ej d(���Z,d)S)*�	AST_Testsc��t|t��sdSd|jvrdS|dko|d���S)NF�ast�ASTr)r�type�
__module__�isupper)�self�name�nodes   r�_is_ast_nodezAST_Tests._is_ast_node
sH���$��%�%�	��5����'�'��5��u�}�2��a����!2�!2�2r
c�`�t|tj��r|j�dSt|tjtjtjf��r2|j|jf}|�	||��|j|jf}|jD]}t||��}t|t��r@|}|r |dkr|dj|djf}|D]}|�||����g|�|�||����|�
|j|j��dS)N�decorator_listr)rr2r3r�expr�stmt�
excepthandlerrr�assertGreaterEqualrr�_assertTrueorder�assertEqual�__match_args__)r7�ast_node�
parent_pos�node_posr8�value�	first_pos�childs        rrAzAST_Tests._assertTrueordersG���(�C�G�,�,�	��0@�0H��F��h���3�8�S�5F� G�H�H�	@� ���)<�=�H��#�#�H�j�9�9�9�"�/�8�+>�?�J��$�		9�		9�D��H�d�+�+�E��%��&�&�
9�&�	��G�T�%5�5�5�!&�q���%��(�2E� F�I�"�<�<�E��)�)�%��;�;�;�;�<��"��%�%�e�Z�8�8�8������)�8�+B�C�C�C�C�Cr
c���tj��}|�|jd��d|_|�|jd��|�|jdd��|�t��5|jddd��n#1swxYwY|�t��5tjd��ddd��dS#1swxYwYdS)Nr�*�foobar�)
r2r3rBrrL�__dict__�assertRaises�AttributeError�vararg�	TypeError�r7�xs  r�test_AST_objectszAST_Tests.test_AST_objects'sX���G�I�I�������B�'�'�'���������2�&�&�&������H�-�r�2�2�2�
�
�
�~�
.�
.�	�	�
�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	�	��G�A�J�J�J�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�B � B$�'B$�C'�'C+�.C+c��Gd�d��}tj��}|��|_||j_t	j|j��}~t
j��|�|����dS)Nc��eZdZdS)�0AST_Tests.test_AST_garbage_collection.<locals>.XN�rr5�__qualname__rr
r�XrX6��������Dr
r[)	r2r3rT�a�weakref�refr�
gc_collect�assertIsNone)r7r[r]r_s    r�test_AST_garbage_collectionz%AST_Tests.test_AST_garbage_collection5s���	�	�	�	�	�	�	�	��G�I�I���a�c�c��������k�!�#����
���������#�#�%�%� � � � � r
c	�"�ttdfttdftt
dffD]�\}}}t
||��D]�\}}|�d|���5t|d|tj
��}|�t|��|��|�
|d��ddd��n#1swxYwY|�d||�	��5t|d|��ddd��n#1swxYwY�ˌ�dS)
N�exec�single�eval�parsing)�action�input�?)rr�	compiling)rhri�kind)�
exec_tests�exec_results�single_tests�single_results�
eval_tests�eval_results�zip�subTest�compiler2�
PyCF_ONLY_ASTrBrrA)r7ri�outputrl�i�o�ast_trees       r�
test_snippetszAST_Tests.test_snippets@s���%/��v�$F�%1�>�8�$L�%/��v�$F�$H�		1�		1��E�6�4��E�6�*�*�
1�
1���1��\�\��!�\�<�<�<�<�&�q�#�t�S�5F�G�G�H��$�$�X�h�%7�%7��;�;�;��)�)�(�F�;�;�;�<�<�<�<�<�<�<�<�<�<�<����<�<�<�<��\�\��A�D�\�I�I�1�1��H�c�4�0�0�0�1�1�1�1�1�1�1�1�1�1�1����1�1�1�1��
1�		1�		1s%�AC�C�C�$D�D�	Dc��ttztz}|D]'}tj|��}t|dd���(dS)N�<string>rd)rmrorqr2�parseru)r7�snippets_to_validate�snippet�trees    r�test_ast_validationzAST_Tests.test_ast_validationLsO��)�L�8�:�E��+�	.�	.�G��9�W�%�%�D��D�*�f�-�-�-�-�	.�	.r
c��gd�}|D]�\}}|�d|�d|����5d}tj|��}||jd_||jd_|�t��5t|dd��ddd��n#1swxYwYddd��n#1swxYwY��gd�}|D]�\}}|�d|�d|����5d}tj|��}||jd_	||jd_
|�t��5t|dd��ddd��n#1swxYwYddd��n#1swxYwY��dS)	N))�
�)i�������)r�r�)������)r�r�zCheck invalid linenos �:za = 1rr}rdzCheck invalid col_offset )rtr2r~�bodyrrrO�
ValueErrorrurr)	r7�invalid_linenosrrr�r��invalid_col_offsetsrrs	         r�!test_invalid_position_informationz+AST_Tests.test_invalid_position_informationSs���
�
�
��#2�	6�	6��F�J����L�v�L�L�
�L�L�M�M�
6�
6�!���y��)�)��&,��	�!��#�*4��	�!��'��&�&�z�2�2�6�6��D�*�f�5�5�5�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��
�
�
��+>�	6�	6�&�J�����W�*�W�W�~�W�W�X�X�
6�
6�!���y��)�)��*4��	�!��'�.<��	�!��+��&�&�z�2�2�6�6��D�*�f�5�5�5�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��	6�	6sm�AB1�<B�B1�B�B1�!B�"B1�1B5	�8B5	�#AE-�8E�
E-�E�E-�E�E-�-E1	�4E1	c
��tjtjtjddd���gdd���tjtjddd���gdd���gg���}t	|dd	��dS)
N�builtinsr�r�r8rr)�namesrr�	traceback)r��type_ignoresr}rd)r2�Module�Import�aliasru�r7r�s  r�>test_compilation_of_ast_nodes_with_default_end_position_valueszHAST_Tests.test_compilation_of_ast_nodes_with_default_end_position_valuesms����z��J�c�i�Z��a�P�P�P�Q�Z[�hi�j�j�j��J�c�i�[��q�Q�Q�Q�R�[\�ij�k�k�k� 
������	��j�&�)�)�)�)�)r
c���tjd��jdjj}|�|j��|�|j��|�|j��dS)Nzx[::]r)	r2r~r�rG�slicera�upper�lower�step)r7�slcs  r�
test_slicezAST_Tests.test_slicevsg���i�� � �%�a�(�.�4�����#�)�$�$�$����#�)�$�$�$����#�(�#�#�#�#�#r
c�x�tjd��jd}|�|j��dS)Nzfrom . import yr)r2r~r�ra�module)r7�ims  r�test_from_importzAST_Tests.test_from_import|s6��
�Y�(�
)�
)�
.�q�
1�����"�)�$�$�$�$�$r
c���tjd��}|�|jdtj��d���|jd_t|dd��dS)Nzfrom __future__ import divisionrz __future__ �<test>rd)r2r~�assertIsInstancer��
ImportFrom�stripr�ru)r7�mods  r�!test_non_interned_future_from_astz+AST_Tests.test_non_interned_future_from_ast�sb���i�9�:�:�����c�h�q�k�3�>�:�:�:�+�1�1�3�3��������X�v�&�&�&�&�&r
c���tjd��jd}|�t	|j��d��|jd}|�|jd��|�|j��|�|j	d��|�|j
d��|�|jd��|�|jd��tjd��jd}|jd}|�|jd��|�|j��|�|j	d��|�|j
d��|�|jd��|�|jd��tjd	��jd}|jd}|�|jd��|�|jd
��|�|j	d��|�|j
d��|�|jd��|�|jd��tjd��jd}|jd}|�|jd
��|�|jd��|�|j	d��|�|j
d��|�|jd��|�|jd��dS)Nzfrom bar import yrr��y��zfrom bar import *�*zfrom bar import y as z�z�zimport bar as foo�bar�foo�)
r2r~r�rB�lenr�r8ra�asnamerrrr)r7r�r�s   r�
test_aliaszAST_Tests.test_alias�s���
�Y�*�
+�
+�
0��
3������R�X����*�*�*�����������S�)�)�)����%�,�'�'�'������q�)�)�)�����)�1�-�-�-�����)�2�.�.�.�����-�r�2�2�2�
�Y�*�
+�
+�
0��
3������������S�)�)�)����%�,�'�'�'������q�)�)�)�����)�1�-�-�-�����)�2�.�.�.�����-�r�2�2�2�
�Y�/�
0�
0�
5�a�
8������������S�)�)�)������s�+�+�+������q�)�)�)�����)�1�-�-�-�����)�2�.�.�.�����-�r�2�2�2�
�Y�*�
+�
+�
0��
3������������U�+�+�+������u�-�-�-������q�)�)�)�����)�1�-�-�-�����)�1�-�-�-�����-�r�2�2�2�2�2r
c��|�ttjtj����|�ttjtj����|�ttjtj����|�ttjtj����|�ttjtj����|�ttj	tj����dS�N)
�
assertTrue�
issubclassr2�Forr>�Namer=r3�
comprehension�Gt�r7s r�test_base_classeszAST_Tests.test_base_classes�s������
�3�7�C�H�5�5�6�6�6����
�3�8�S�X�6�6�7�7�7����
�3�8�S�W�5�5�6�6�6����
�3�8�S�W�5�5�6�6�6����
�3�#4�c�g�>�>�?�?�?����
�3�6�3�7�3�3�4�4�4�4�4r
c�*�tj���D]s\}}|�||��rX|dkr�"|��}t	|tj��r-|�t|j��t���tdS)N�Index)
r2rN�itemsr:rr3rBr4rr)r7r8�itemrTs    r�test_field_attr_existencez#AST_Tests.test_field_attr_existence�s����,�,�,�.�.�	=�	=�J�D�$�� � ��t�,�,�
=��7�?�?���D�F�F���a���)�)�=��$�$�T�!�)�_�_�e�<�<�<��	=�	=r
c��tj��}|�|jd��|�t
��5|jddd��n#1swxYwY|�|j��tjtdd���}|�|jd��|�|jd��dS)N)�posonlyargs�argsrQ�
kwonlyargs�kw_defaults�kwarg�defaultsr��rM�)
r2�	argumentsrBrrOrPr�rarQ�rangerSs  r�test_argumentszAST_Tests.test_arguments�s���M�O�O�������%I�	J�	J�	J��
�
�~�
.�
.�	�	�
�F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����!�(�#�#�#��M�5��A�;�;�'��������#�#�#������1�%�%�%�%�%s�	A�A!�$A!c�p�tj��}d|_|�|jd��dS)Ni�)r2�NumrrBrSs  r�test_field_attr_writablez"AST_Tests.test_field_attr_writable�s2���G�I�I����	������C�(�(�(�(�(r
c��tj��}|�|jd��|�t
��5|jddd��n#1swxYwY|�t
��5|jddd��n#1swxYwYtjd��}|�|jd��|�|jd��|�t
��5|jddd��n#1swxYwY|�t
��5|j	ddd��n#1swxYwYtjd���}|�|jd��tjdd���}|�|jd��|�|jd��|�|jd��|�|jd��|�ttjddd��|�ttjdddd���|�tjdd���jd��|�tjdd���jd��|�
td	��5tjdd�
��ddd��n#1swxYwY|�
td��5tjdd���ddd��n#1swxYwY|�tjd��jd��|�tjd
��jd
��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd
��jd
��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��|�tjd��jd��dS)N)rGrlrKrM�rrr�r�)r�z(Num got multiple values for argument 'n'��nz1Constant got multiple values for argument 'value'�rG�@�@�42�42TF.)r2r�rBrrOrPrGr�rrLrR�Constantr��assertRaisesRegex�Str�s�Bytes�assertIs�NameConstantrSs  r�test_classattrszAST_Tests.test_classattrs�s����G�I�I�������$5�6�6�6�
�
�
�~�
.�
.�	�	�
�G�G�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�~�
.�
.�	�	�
�C�C�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�B�K�K�������"�%�%�%������b�!�!�!�
�
�
�~�
.�
.�	�	�
�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�~�
.�
.�	�	�
�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�G�1����������1�%�%�%��G�B�q�!�!�!�������1�%�%�%������$5�6�6�6������"�%�%�%������b�!�!�!����)�S�W�a��q�9�9�9����)�S�W�a��q���C�C�C�	
�����a�U�3�3�3�7��?�?�?��������.�.�.�2�E�:�:�:�
�
#�
#�I�/Y�
Z�
Z�	�	��G�A��O�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�/b�
c�
c�	%�	%��L��!�$�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	
����������+�+�+����������$�/�/�/���������)�5�1�1�1����������$�/�/�/������5�)�)�+�U�3�3�3��
�
�c�&�t�,�,�2�D�9�9�9��
�
�c�&�u�-�-�3�U�;�;�;��
�
�c�&�t�,�,�2�D�9�9�9������b�)�)�/��4�4�4������d�+�+�1�4�8�8�8������e�,�,�2�E�:�:�:������d�+�+�1�4�8�8�8������e�,�,�2�E�:�:�:��
�
�c�l�4�(�(�.��5�5�5��
�
�c�l�5�)�)�/��7�7�7��
�
�c�l�4�(�(�.��5�5�5��
�
�c�l�3�'�'�-�s�3�3�3�3�3sl�	A�A!�$A!�B�B�B�D�D� D�>E�E�E�K=�=L�L�#M�M
�
M
c�r�|�ttjd����tj��|�ttjd����tj��|�ttjd����tj��|�ttjd����tj��|�ttjd����tj��|�ttjd����tj��|�ttjd����tj��|�ttjd����tj��|�ttj����tj��dS)NrKr�r�r�r�TF)	rBr4r2r�r�r�r�r�rr�s r�
test_realtypezAST_Tests.test_realtypesy������c�g�b�k�k�*�*�C�L�9�9�9�����c�g�d�m�m�,�,�c�l�;�;�;�����c�g�e�n�n�-�-�s�|�<�<�<�����c�g�d�m�m�,�,�c�l�;�;�;�����c�i��.�.�/�/���>�>�>�����c�.�t�4�4�5�5�s�|�D�D�D�����c�.�u�5�5�6�6���E�E�E�����c�.�t�4�4�5�5�s�|�D�D�D�����c�l�n�n�-�-�s�|�<�<�<�<�<r
c	�v�|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttj��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttjd��tj����|�	ttj��tj����|�	ttj��tj����|�	ttj��tj����|�	ttj��tj����|�	ttj��tj����Gd	�d
t��}|�ttj|d����tj����|�	ttj|d����tj����dS)NrKg������@y������@r�r�TF.c��eZdZdS)�$AST_Tests.test_isinstance.<locals>.SNrYrr
r�Sr�Ds�������r
r�)r�rr2r�r�r�r�rr��assertFalser)r7r�s  r�test_isinstancezAST_Tests.test_isinstancesV�����
�3�7�2�;�;���8�8�9�9�9����
�3�7�3�<�<���9�9�:�:�:����
�3�7�4�=�=�#�'�:�:�;�;�;����
�3�7�4�=�=�#�'�:�:�;�;�;����
�3�9�U�#3�#3�S�Y�?�?�@�@�@����
�3�#3�D�#9�#9�3�;K�L�L�M�M�M����
�3�#3�E�#:�#:�C�<L�M�M�N�N�N����
�3�#3�D�#9�#9�3�;K�L�L�M�M�M����
�3�<�>�>�3�<�@�@�A�A�A����
�3�<��#3�#3�S�W�=�=�>�>�>����
�3�<��#4�#4�c�g�>�>�?�?�?����
�3�<��#5�#5�s�w�?�?�@�@�@����
�3�<��#5�#5�s�w�?�?�@�@�@����
�3�<��#6�#6��	�B�B�C�C�C����
�3�<��#5�#5�s�7G�H�H�I�I�I����
�3�<��#6�#6��8H�I�I�J�J�J����
�3�<��#5�#5�s�7G�H�H�I�I�I����
�3�<��#4�#4�c�l�C�C�D�D�D�����C�G�D�M�M�3�7�;�;�<�<�<�����C�G�B�K�K���9�9�:�:�:�����C�G�D�M�M�3�9�=�=�>�>�>�����C�G�B�K�K��1A�B�B�C�C�C�����C�G�B�K�K���>�>�?�?�?�����C�$4�T�$:�$:�C�G�D�D�E�E�E�����C�$4�U�$;�$;�S�W�E�E�F�F�F�����C�L��$6�$6���@�@�A�A�A�����C�L��$4�$4�c�g�>�>�?�?�?�����C�L��$6�$6��	�B�B�C�C�C�����C�L��$4�$4�c�6F�G�G�H�H�H�����C�L��$4�$4�c�l�C�C�D�D�D�����C�L��$6�$6���@�@�A�A�A�����C�L��$7�$7���A�A�B�B�B�����C�L�N�N�C�G�<�<�=�=�=�����C�L�N�N�C�G�<�<�=�=�=�����C�L�N�N�C�I�>�>�?�?�?�����C�L�N�N�C�4D�E�E�F�F�F�����C�L�N�N�C�L�A�A�B�B�B�������������
�3�<���$���#8�#8�#�'�B�B�C�C�C�����C�L���4���$9�$9�3�7�C�C�D�D�D�D�Dr
c��Gd�dtj��}Gd�dtj��}|d��}|�|jd��|�|jd��|�t|��|��|�t||����|�t|tj����|�t||����|�ttjd��|����|d���}|�|jd��|�t|��|��dS)Nc���eZdZ�fd�Z�xZS)�$AST_Tests.test_subclasses.<locals>.Nc�H��t��j|i|��d|_dS)N�spam)�super�__init__r�)r7r��kwargsrs   �rr�z-AST_Tests.test_subclasses.<locals>.N.__init__Js*��� ���� �$�1�&�1�1�1�����r
)rr5rZr��
__classcell__)rs@r�Nr�Is8�������
 �
 �
 �
 �
 �
 �
 �
 �
 r
r�c��eZdZdS)�%AST_Tests.test_subclasses.<locals>.N2NrYrr
r�N2r�Mr\r
r�rKr�r�)	r2r�rBr�r�r4r�rr�)r7r�r�r�s    r�test_subclasseszAST_Tests.test_subclassesHs|��	 �	 �	 �	 �	 ���	 �	 �	 �	�	�	�	�	���	�	�	�
�A�b�E�E�������b�!�!�!������f�%�%�%�����a���!�$�$�$����
�1�a�(�(�)�)�)����
�1�c�g�.�.�/�/�/�����A�r�*�*�+�+�+�����C�G�B�K�K��3�3�4�4�4�
�A��G�G�G�������b�!�!�!�����a���!�$�$�$�$�$r
c��tjd��g}tj|g��}|�|j|��dS)NrK)r2r�r�rBr�)r7r�rTs   r�test_modulezAST_Tests.test_module\s@�������}���J�t�R� � ��������&�&�&�&�&r
c	���tj��}|�|jd��d|_|�|jd��tjd��}tjd��}tj��}tj|||��}|�|j|��|�|j|��|�|j	|��tjddd��}|�|jd��|�|jd��|�|j	d��tjdddd���}|�|jd��|�|jd��|�|j	d��|�|j
d��|�ttjdddd��|�ttjddddd���tjdddd�	��}|�|jd��|�|jd��|�|j	d��|�|j
d��tjdddd
���}|�|jd
��dS)N)�left�op�right�r�r�rMrr��)rrrrrK)�	foobarbaz)
r2�BinOprBrrr��AddrrrrrOrR)r7rT�n1�n3�addops     r�test_nodeclasseszAST_Tests.test_nodeclassesas����I�K�K�������$;�<�<�<���������a�(�(�(�
�W�Q�Z�Z��
�W�Q�Z�Z����	�	���I�b�%��$�$��������$�$�$������u�%�%�%������"�%�%�%��I�a��A����������#�#�#������q�!�!�!������!�$�$�$��I�a��A�a�(�(�(��������#�#�#������q�!�!�!������!�$�$�$������1�%�%�%�	
���)�S�Y��1�a��;�;�;����)�S�Y��1�a��1��E�E�E�
�I�1��!�A�6�6�6��������#�#�#������q�!�!�!������!�$�$�$������1�%�%�%�
�I�a��A��,�,�,�������b�)�)�)�)�)r
c�b�tj��}|�|jd��dS)Nr)r2�SubrBrrSs  r�test_no_fieldszAST_Tests.test_no_fields�s+���G�I�I�������B�'�'�'�'�'r
c	�`�ddl}|g}	ddl}|�|��n#t$rYnwxYwgd�}|D]t}|D]o}d�tD��D][}|�|�||����}|�t|��t|�����\�p�udS)Nr)rr�rMc3�:K�|]}t|ddd��V��dS)rjrdiN)ru)r	rxs  r�	<genexpr>z*AST_Tests.test_pickling.<locals>.<genexpr>�s0����O�O�q�G�A�s�F�E�:�:�O�O�O�O�O�Or
)	�pickle�cPickler�ImportErrorrm�loads�dumpsrBr)	r7r�modsr�	protocolsr��protocolr2�ast2s	         r�
test_picklingzAST_Tests.test_pickling�s����
�
�
��x��	��N�N�N��K�K�� � � � ���	�	�	��D�	�����I�I�	��	D�	D�C�%�
D�
D��O�O�J�O�O�O�D�D�C��9�9�S�Y�Y�s�H�%=�%=�>�>�D��$�$�X�d�^�^�X�c�]�]�C�C�C�C�D�
D�	D�	Ds�#�
0�0c	�h�tdd���}tjtjtjdi|��fi|��gg��}|�t��5}t|dd��ddd��n#1swxYwY|�dt|j
����dS)NrMr��rrr�rdzbut got <ast.exprr)�dictr2r��Exprr=rOrRru�assertInr�	exception)r7�pos�m�cms    r�test_invalid_sumzAST_Tests.test_invalid_sum�s����!��*�*�*���J�������C���8�8�C�8�8�9�2�>�>��
�
�
�y�
)�
)�	)�R��A�x��(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��
�
�)�3�r�|�+<�+<�=�=�=�=�=s�!A?�?B�Bc	��tjtjtjdtj������gg��}tj|��|�t��5}t|dd��ddd��n#1swxYwY|�	dt|j����dS)NrKr�rdzidentifier must be of type str)r2r�r r��Load�fix_missing_locationsrOrRrur!rr")r7r$r%s   r�test_invalid_identifierz!AST_Tests.test_invalid_identifier�s����J�����"�c�h�j�j�!9�!9�:�:�;�R�@�@���!�!�$�$�$�
�
�
�y�
)�
)�	)�R��A�x��(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��
�
�6��B�L�8I�8I�J�J�J�J�Js�;B�B� Bc�X�tddtftddtf��fD]�}tjtj|�����}tj|��|�td��5t|dd��ddd��n#1swxYwY��dS)Nr�rM�r�zinvalid type in Constant: typer�rf)	r�	frozensetr2�
Expressionr�r)r�rRru)r7�invalid_constantr
s   r�test_invalid_constantzAST_Tests.test_invalid_constant�s��� #�a��C�[�)�Q��3�K�2H�2H� H�	-�	-����C�L�1A�$B�$B�C�C�C�A��%�a�(�(�(��'�'��;���
-�
-���8�V�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��	-�	-s�B�B"	�%B"	c�H�tjd��}d|jdjdj_|�t
��5}t
|dd��ddd��n#1swxYwY|�dt|j	����dS)Nzdef f():
 yield from g()rr�rdzfield 'value' is required)
r2r~r�rGrOr�rur!rr")r7�empty_yield_fromr%s   r�test_empty_yield_fromzAST_Tests.test_empty_yield_from�s����9�%@�A�A��7;���a� �%�a�(�.�4�
�
�
�z�
*�
*�	8�b��$�h��7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8��
�
�1�3�r�|�3D�3D�E�E�E�E�Es�A/�/A3�6A3c��ddl}d�}tj|d|��5|�tt
jd��ddd��dS#1swxYwYdS)Nrc��dSr�r�r�s r�
bad_normalizez0AST_Tests.test_issue31592.<locals>.bad_normalize�s���4r
�	normalizeuϕ)�unicodedatar�	swap_attrrOrRr2r~)r7r9r7s   r�test_issue31592zAST_Tests.test_issue31592�s���	����	�	�	�
�
�{�K��
G�
G�	>�	>����i���H�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s�'A�A�Ac��tjd��}|jdj}|j}|j}|�|jd��|�|jd��|�|jd��|�|jd��|�|jd��|�|jd��tjd��}|jdj}|j}|j}|�|jd��|�|jd��|�|jd��|�|j	d	��|�|jd��|�|jd��|�|jd	��|�|j	d	��|�|jd��|�|jd��|�|jd��|�|j	d��dS)
Nz4+5+6+7rr�rr�z
4+5-\
 6-7r�rrM)
r2r~r�rGrrBrrrr)r7r��parent_binop�child_binop�grandchild_binops     r� test_issue18374_binop_col_offsetz*AST_Tests.test_issue18374_binop_col_offset�s,���y��#�#���y��|�)��"�'��&�+������0�!�4�4�4�����4�a�8�8�8�����/��3�3�3�����3�Q�7�7�7����)�4�a�8�8�8����)�8�!�<�<�<��y��(�(���y��|�)��"�'��&�+������0�!�4�4�4�����,�a�0�0�0�����4�a�8�8�8�����0�!�4�4�4�����/��3�3�3�����+�Q�/�/�/�����3�Q�7�7�7�����/��3�3�3����)�4�a�8�8�8����)�0�!�4�4�4����)�8�!�<�<�<����)�4�a�8�8�8�8�8r
c��tjd��}|jdjdj}|�|jd��dS)Nr'rr)r2r~r�r<rGrBr)r7r��attr_bs   r�*test_issue39579_dotted_name_end_col_offsetz4AST_Tests.test_issue39579_dotted_name_end_col_offset�sG���y�0�1�1����1��,�Q�/�5������.��2�2�2�2�2r
c�L�|�tjjd��|�tjjd��|�tjjd��|�tjjd��d�tj���D��}dtj���dj��|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#��V�V�V�D�/���/�/�V�V�Vr
zexpr = r�
)rBr2�withitemrGrEr��cmpopr=�__subclasses__�assertCountEqual�split)r7�expressionss  r�test_ast_asdl_signaturez!AST_Tests.test_ast_asdl_signature�s��������-�/a�b�b�b�������%�0�0�0������)�+R�S�S�S������*�,p�q�q�q�V�V�C�H�<S�<S�<U�<U�V�V�V��I�3�8�#:�#:�#<�#<�Q�#?�#G�I�I��A�����c�h�.�4�4�T�:�:�K�H�H�H�H�Hr
c��tjdd���tjdd���|�t��5tjdd���ddd��n#1swxYwY|�t��5tjdd���ddd��n#1swxYwYtjdd���tjdd���|�t��5tjdd���ddd��n#1swxYwY|�t��5tjdd���ddd��dS#1swxYwYdS)Nzdef foo(x, /): ...�r�r���feature_versionzdef bar(x=1, /): ...�r�r�zlambda x, /: ...zlambda x=1, /: ...�r2r~rO�SyntaxErrorr�s r�$test_positional_only_feature_versionz.AST_Tests.test_positional_only_feature_version�s����	�&��?�?�?�?��	�(�&�A�A�A�A�
�
�
�{�
+�
+�	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�	DsH�A*�*A.�1A.�B2�2B6�9B6�D&�&D*�-D*�E/�/E3�6E3c��tjdd���tjdd���|�t��5tjdd���ddd��n#1swxYwYtjdd���dS)Nz#with (CtxManager() as example): ...�r�r�rR)r��	rQz!with CtxManager() as example: ...rUr�s r�'test_parenthesized_with_feature_versionz1AST_Tests.test_parenthesized_with_feature_versions����	�7��Q�Q�Q�Q��	�7��P�P�P�P�
�
�
�{�
+�
+�	U�	U��I�;�V�T�T�T�T�	U�	U�	U�	U�	U�	U�	U�	U�	U�	U�	U����	U�	U�	U�	U��	�5�v�N�N�N�N�N�Ns�A*�*A.�1A.c���tjdd���|�t��5tjdd���ddd��dS#1swxYwYdS)Nzf"{x=}"rQrRrTrUr�s r�#test_debug_f_string_feature_versionz-AST_Tests.test_debug_f_string_feature_versions����	�)�V�4�4�4�4�
�
�
�{�
+�
+�	9�	9��I�i��8�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9��A�A�Ac���tjdd���|�t��5tjdd���ddd��dS#1swxYwYdS)Nz(x := 0)rQrRrTrUr�s r�*test_assignment_expression_feature_versionz4AST_Tests.test_assignment_expression_feature_versions����	�*�f�5�5�5�5�
�
�
�{�
+�
+�	:�	:��I�j�&�9�9�9�9�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:r^c���td��}tj|��|�t��5tj|d���ddd��dS#1swxYwYdS)Nz9
        try: ...
        except* Exception: ...
        rYrR)rr2r~rOrV)r7�codes  r�%test_exception_groups_feature_versionz/AST_Tests.test_exception_groups_feature_versions�����
�
��	�	�$����
�
�
�{�
+�
+�	5�	5��I�d�G�4�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s�A"�"A&�)A&c�8�dD]�}tjtj|tj������}tj|��|�td|�d���5t|dd��ddd��n#1swxYwY��dS)N)�True�Falser#z"identifier field can't represent 'z
' constantr�rf)r2r.r�r(r)r�r�ru)r7�constantr=s   r�test_constant_as_namezAST_Tests.test_constant_as_name!s���/�	0�	0�H��>�#�(�8�S�X�Z�Z�"@�"@�A�A�D��%�d�+�+�+��'�'�
�4m�Ya�4m�4m�4m�n�n�
0�
0���h��/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0s�0B�B	�B	c�t�Gd�dtj��}tj|tj��dS)Nc�6�eZdZ	ej��Zej��Zej��Zej��Zej��Z	ej��Z
ej��Zej��Zej��Z
e
Zej��Zej��Zej��Zej��Zej��Zej��Zej��Zej��Zej��Zd�ZdS)�3AST_Tests.test_precedence_enum.<locals>._Precedencec�X�	|�|dz��S#t$r|cYSwxYw)Nr�)rr�r�s r�nextz8AST_Tests.test_precedence_enum.<locals>._Precedence.next?sA�� ��>�>�$��(�3�3�3��!� � � ��K�K�K� ���s��)�)N)rr5rZ�enum�auto�
NAMED_EXPR�TUPLE�YIELD�TEST�OR�AND�NOT�CMP�EXPR�BOR�BXOR�BAND�SHIFT�ARITH�TERM�FACTOR�POWER�AWAIT�ATOMrmrr
r�_Precedencerk)s������G�"�����J��D�I�K�K�E��D�I�K�K�E��4�9�;�;�D������B��$�)�+�+�C��$�)�+�+�C��$�)�+�+�C��4�9�;�;�D��C��4�9�;�;�D��4�9�;�;�D��D�I�K�K�E��D�I�K�K�E��4�9�;�;�D��T�Y�[�[�F��D�I�K�K�E��D�I�K�K�E��4�9�;�;�D�
 �
 �
 �
 �
 r
r�)rn�IntEnum�_test_simple_enumr2r�)r7r�s  r�test_precedence_enumzAST_Tests.test_precedence_enum(sK��	 �	 �	 �	 �	 �$�,�	 �	 �	 �6	
��{�C�O�<�<�<�<�<r
c������tj��dz�tj��dz�t�dz�������fd�}|dd��|dd��|dd��|dd	��dS)
Nr�i,g�?c�r��||�	zz}tj|����fD]�}|||zz}d�|||��}��t|���5tj��5tj|��ddd��n#1swxYwYddd��n#1swxYwY��dS)NzCompiling ({!r} + {!r} * {}))�msg)r2r~�formatrO�RecursionErrorr�infinite_recursion)
�prefix�repeated�	expect_ok�depth�broken�details�crash_depth�
fail_depthr7�
success_depths
      ����r�check_limitz7AST_Tests.test_ast_recursion_limit.<locals>.check_limitLsN�����M�!9�9�I��I�i� � � �$�k�2�
*�
*���(�U�"2�2��8�?�?�"�H�e�5�5���&�&�~�7�&�C�C�*�*� �3�5�5�*�*��	�&�)�)�)�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*��	
*�
*s6�B+�3B�B+�B�B+�B�B+�+B/	�2B/	r]r.z.bz[0]z*a)�sys�getrecursionlimitr)r7r�r�r�r�s` @@@r�test_ast_recursion_limitz"AST_Tests.test_ast_recursion_limitFs��������*�,�,�q�0�
��+�-�-��3���J��-�.�.�
�		*�		*�		*�		*�		*�		*�		*�		*�	��C�������C�������C�������C������r
N)-rr5rZr:rArUrbr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr&r*r0r3r�cpython_onlyr;r@rCrOrWr[r]r`rcrhr�r�rr
rr0r0s�������3�3�3�D�D�D�&���	!�	!�	!�
1�
1�
1�.�.�.�6�6�6�4*�*�*�$�$�$�%�%�%�'�'�'�$3�$3�$3�L5�5�5�	=�	=�	=�&�&�&�)�)�)�:4�:4�:4�x	=�	=�	=�-E�-E�-E�^%�%�%�('�'�'�
**�**�**�X(�(�(�

D�
D�
D�>�>�>�K�K�K�-�-�-�F�F�F�
��>�>���>�9�9�9�>3�3�3�
I�I�I�
D�
D�
D�O�O�O�9�9�9�
:�:�:�
5�5�5�0�0�0�=�=�=�<
��������r
r0c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�ASTHelpers_TestNc���tjd��}tdddtj��}|�tj|��tj|����dS)Nz
foo(1 + 1)z	<unknown>rd)r2r~rurvrB�dump)r7r]�bs   r�
test_parsezASTHelpers_Test.test_parse`sS���I�l�#�#���L�+�v�s�7H�I�I�������!���c�h�q�k�k�2�2�2�2�2r
c��	ddzdS#t$ri|�t��5}tjd��ddd��n#1swxYwY|�|jj��YdSwxYw)Nr�rz'\U')�	ExceptionrOrVr2�literal_eval�assertIsNotNoner"�__context__�r7r
s  r�test_parse_in_errorz#ASTHelpers_Test.test_parse_in_errores���	:�
�a�C�C�C�C���	:�	:�	:��"�"�;�/�/�
*�1�� ��)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*�� � ���!8�9�9�9�9�9�9�	:���s2�	�$A<�A�A<�A	�A<�A	�"A<�;A<c�&�tjd��}|�tj|��d��|�tj|d���d��|�tj|d���d��dS)	N�spam(eggs, "and cheese")z�Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), args=[Name(id='eggs', ctx=Load()), Constant(value='and cheese')], keywords=[]))], type_ignores=[])F��annotate_fieldszbModule([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), Constant('and cheese')], []))], [])T��include_attributesa�Module(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~rBr��r7r9s  r�	test_dumpzASTHelpers_Test.test_dumpms����y�3�4�4�������$���
/�	
�	
�	
�
	
�����$��>�>�>�
2�	
�	
�	
�	
�����$�4�@�@�@�
Z�	
�	
�	
�	
�	
r
c�.�tjd��}|�tj|d���d��|�tj|dd���d��|�tj|d	d�
��d��dS)Nr�r���indentz�Module(
   body=[
      Expr(
         value=Call(
            func=Name(id='spam', ctx=Load()),
            args=[
               Name(id='eggs', ctx=Load()),
               Constant(value='and cheese')],
            keywords=[]))],
   type_ignores=[])F�	)r�r�z�Module(
	[
		Expr(
			Call(
				Name('spam', Load()),
				[
					Name('eggs', Load()),
					Constant('and cheese')],
				[]))],
	[])T)r�r�a�Module(
   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=[])r�r�s  r�test_dump_indentz ASTHelpers_Test.test_dump_indent�s����y�3�4�4�������$�q�1�1�1�
4�
	�
	�
	�	
�����$��d�K�K�K�
N	�
	
�
	
�
	
�	
�����$�4��J�J�J�#M�#	�#	�#	�#	�#	r
c��tjdd���}|�tj|��d��|�tj|d���d��tjtjdtj���	��dd�
��}|�tj|��d��|�tj|d�
��d��|�tj|d���d��|�tj|dd���d��tjtjdtj���	�����}|�tj|��d��|�tj|d�
��d��dS)Nr�rrzRaise()Tr�zRaise(lineno=3, col_offset=4)r
)�id�ctx)�excrrz#Raise(exc=Name(id='e', ctx=Load()))Fr�zRaise(Name('e', Load()))z;Raise(exc=Name(id='e', ctx=Load()), lineno=3, col_offset=4))r�r�z0Raise(Name('e', Load()), lineno=3, col_offset=4))�causez%Raise(cause=Name(id='e', ctx=Load()))zRaise(cause=Name('e', Load())))r2�RaiserBr�r�r(r�s  r�test_dump_incompletez$ASTHelpers_Test.test_dump_incomplete�s����y��a�0�0�0�������$����	
�	
�	
�	
�����$�4�@�@�@�+�	
�	
�	
��y�S�X��#�(�*�*�=�=�=�a�TU�V�V�V�������$���1�	
�	
�	
�	
�����$��>�>�>�&�	
�	
�	
�	
�����$�4�@�@�@�I�	
�	
�	
�	
�����$��RV�W�W�W�>�	
�	
�	
��y�s�x�3�C�H�J�J�?�?�?�@�@�@�������$���3�	
�	
�	
�	
�����$��>�>�>�,�	
�	
�	
�	
�	
r
c�R�tjdd���}tjtjd��|jj��|j_|�tj|d���d��tjdddd�	��}tj|tjdd�
����}|�	|j
��|�	|j��|�|jd��|�|j
d��dS)N�1 + 1rf��moderMTr�z�Expression(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_locationr�r�rrBr��Callrarrrr)r7�src�news   r�test_copy_locationz"ASTHelpers_Test.test_copy_location�s���i��f�-�-�-���*�3�7�1�:�:�s�x�~�F�F���������#�$�?�?�?�
=�	
�	
�	
��h�!�A�!�A�N�N�N�����S�X��d�%K�%K�%K�L�L�����#�.�)�)�)����#�,�-�-�-������Q�'�'�'�������+�+�+�+�+r
c���tjd��}|j�tjtjtjdtj����tjd��gg������|�	|tj
|����d|_|�	tj|d���d��dS)Nz
write("spam")r��eggsTr�a�Module(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~r�rr r�r�r(r�rBr)�maxDiffr��r7r�s  r�test_fix_missing_locationsz*ASTHelpers_Test.test_fix_missing_locations�s����i��(�(����������#�(�6�3�8�:�:�*F�*F�+.�7�6�?�?�*;�R�"A�"A�B�B�	C�	C�	C�����c�7��<�<�=�=�=���������#�$�?�?�?�

�	
�	
�	
�	
�	
r
c���tjdd���}|�tj|d���|��|�tj|d���d��tjdd���}|�tj|jd���|j��|�tj|d���d��tjtjd	tj����ggd
���}|�tj|��j	d��|�
tj|��j��dS)
Nr�rfr�r�r�Tr�z�Expression(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�)�funcr��keywordsrrM)r2r~rB�increment_linenor�r�r�r�r(rrarr�s  r�test_increment_linenoz%ASTHelpers_Test.test_increment_linenosY���i��f�-�-�-������-�c�Q�7�7�7��=�=�=������#�$�?�?�?�
=�	
�	
�	
��i��f�-�-�-������-�c�h�!�<�<�<�c�h�G�G�G������#�$�?�?�?�
=�	
�	
�	
��h���&�#�(�*�*�-�-�B��A�
�
�
��	
����-�c�2�2�9�1�=�=�=����#�.�s�3�3�>�?�?�?�?�?r
c�\�tjtd��d���}tj|d���|�|jdjd��|�|jdjd	��|�|jdjd
��dS)Nzb        a = 1
        b = 2 # type: ignore
        c = 3
        d = 4 # type: ignore@tag
        T)�
type_commentsrr�rr�r�rZz@tag)r2r~rr�rBr�r�tagr�s  r�test_increment_lineno_on_modulez/ASTHelpers_Test.test_increment_lineno_on_modules����i�� �
�
�
!�"�"�"��	��S�A�&�&�&�&�����)�!�,�3�Q�7�7�7�����)�!�,�3�Q�7�7�7�����)�!�,�0�&�9�9�9�9�9r
c��tjdd���}ttj|j����}|�|�d��jd��|�|ggd���dS)N�foo()rfr�r�r�)r�r�)r2r~r�iter_fieldsr�rB�popr�)r7r9�ds   r�test_iter_fieldsz ASTHelpers_Test.test_iter_fields$sv���y��v�.�.�.�������+�+�,�,��������v���)�5�1�1�1������R�8�8�9�9�9�9�9r
c	�L�tjdd���}|�tt	tj|j������d��tj|j��}|�t|��jd��|�t|��j	d��|�t|��j	d��|�tj
t|����d��dS)	Nzspam(23, 42, eggs='leek')rfr�rr��rKz1keyword(arg='eggs', value=Constant(value='leek')))r2r~rBr�r�iter_child_nodesr�rmr�rGr�)r7r9�iterators   r�test_iter_child_nodesz%ASTHelpers_Test.test_iter_child_nodes*s����y�4�6�B�B�B������T�#�"6�t�y�"A�"A�B�B�C�C�Q�G�G�G��'��	�2�2������h���*�F�3�3�3�����h���-�r�2�2�2�����h���-�r�2�2�2������$�x�.�.�1�1�?�	
�	
�	
�	
�	
r
c�(�tjd��}|�tj|��d��tjd��}|�tj|jd��d��tjd��}|�tj|jd��d��tjd��}|�tj|jd��d��dS)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_docstringr�r�s  r�test_get_docstringz"ASTHelpers_Test.test_get_docstring5s����y�5�6�6������*�4�0�0�-�	/�	/�	/��y�C�D�D������*�4�9�Q�<�8�8�-�	/�	/�	/��y�C�D�D������*�4�9�Q�<�8�8�-�	/�	/�	/��y�@�A�A������*�4�9�Q�<�8�8�+�F�F�F�F�Fr
c�8�|�tjtjd������tjd��}|�tj|����tjd��}|�tj|����tjd��}|�tj|jd����tjd��}|�tj|jd����tjd��}|�tj|jd����tjd��}|�tj|jd����tjd��}|�tj|jd����tjd	��}|�tj|jd����tjd
��}|�tj|jd����dS)N�zx = "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")rar2r�r~r�r�s  r�test_get_docstring_nonez'ASTHelpers_Test.test_get_docstring_noneEs�����#�+�C�I�b�M�M�:�:�;�;�;��y�.�/�/�����#�+�D�1�1�2�2�2��y�-�.�.�����#�+�D�1�1�2�2�2��y�-�.�.�����#�+�D�I�a�L�9�9�:�:�:��y�<�=�=�����#�+�D�I�a�L�9�9�:�:�:��y�<�=�=�����#�+�D�I�a�L�9�9�:�:�:��y�-�.�.�����#�+�D�I�a�L�9�9�:�:�:��y�<�=�=�����#�+�D�I�a�L�9�9�:�:�:��y�3�4�4�����#�+�D�I�a�L�9�9�:�:�:��y�B�C�C�����#�+�D�I�a�L�9�9�:�:�:�:�:r
c���tjd��}|�|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"""

rr�rMrrrZ��
)r2r~rBr�rrr�s  r�:test_multi_line_docstring_col_offset_and_lineno_issue16806zJASTHelpers_Test.test_multi_line_docstring_col_offset_and_lineno_issue16806]s����y�
+�
�
��	
�����1��0�!�4�4�4������1��,�a�0�0�0������1��*�1�-�8�!�<�<�<������1��*�1�-�4�a�8�8�8������1��*�1�-�2�1�5�@�!�D�D�D������1��*�1�-�2�1�5�<�a�@�@�@������1��*�1�-�8�!�<�<�<������1��*�1�-�4�b�9�9�9������1��0�!�4�4�4������1��,�b�1�1�1�1�1r
c���tjd��}|jdjd}|�|jd��|�|jd��dS)Nz if a:
    pass
elif b:
    pass
rr��r2r~r��orelserBrr�r7r9�	elif_stmts   r�test_elif_stmt_start_positionz-ASTHelpers_Test.test_elif_stmt_start_positionps]���y�?�@�@���I�a�L�'��*�	�����)�1�-�-�-�����-�q�1�1�1�1�1r
c���tjd��}|jdjd}|�|jd��|�|jd��dS)Nz/if a:
    pass
elif b:
    pass
else:
    pass
rr�r�r�s   r�'test_elif_stmt_start_position_with_elsez7ASTHelpers_Test.test_elif_stmt_start_position_with_elsevs]���y�P�Q�Q���I�a�L�'��*�	�����)�1�-�-�-�����-�q�1�1�1�1�1r
c���tjd��}|jdjjd}|�|jd��|�|jd��dS)Nr*rr�rZ)r2r~r�rGr�rBrr)r7r9�starred_exprs   r�*test_starred_expr_end_position_within_callz:ASTHelpers_Test.test_starred_expr_end_position_within_call|s_���y��&�&���y��|�)�.�q�1������0�!�4�4�4�����4�a�8�8�8�8�8r
c��|�tjd��gd���|�tjd��ddi��|�tjd��d��|�tjd��hd	���|�tjd
��d��|�tjd��t����|�t
tjd
��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�t
tjd����d��|�t
tjd��|�t
tjd��|�t
tjd��dS)Nz	[1, 2, 3]�r�rMr�z{"foo": 42}r�rKz(True, False, None))TFNz	{1, 2, 3}>r�rMr�zb"hi"shizset()r��6�z+6z-6i����z3.25g
@z+3.25z-3.25g
�z-0.0z++6z+Truez2+3)rBr2r��setrOr��reprr�s r�test_literal_evalz!ASTHelpers_Test.test_literal_eval�s;������)�+�6�6�	�	�	�B�B�B�����)�-�8�8�5�"�+�F�F�F�����)�*?�@�@�BU�V�V�V�����)�+�6�6�	�	�	�B�B�B�����)�'�2�2�E�:�:�:�����)�'�2�2�C�E�E�:�:�:����*�c�&6��@�@�@�����)�#�.�.��2�2�2�����)�$�/�/��3�3�3�����)�$�/�/��4�4�4�����)�&�1�1�4�8�8�8�����)�'�2�2�D�9�9�9�����)�'�2�2�E�:�:�:�����c�.�v�6�6�7�7��@�@�@����*�c�&6��>�>�>����*�c�&6��@�@�@����*�c�&6��>�>�>�>�>r
c��tjd��5tjd��|�t
��5}tjd��ddd��n#1swxYwY|�dt|j����|�dt|j����ddd��dS#1swxYwYdS)Ni���3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333��33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zExceeds the limit z Consider hexadecimal )	r�adjust_int_max_str_digitsr2r�rOrVr!rr")r7�err_ctxs  r�test_literal_eval_str_int_limitz/ASTHelpers_Test.test_literal_eval_str_int_limit�sS��
�
.�t�
4�
4�	L�	L���X�&�&�&��"�"�;�/�/�
+�7�� ��*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��M�M�.��G�4E�0F�0F�G�G�G��M�M�2�C��8I�4J�4J�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
�
C�Cc��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd	��d
��|�tjd��d��|�tjd
��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d
��|�ttjd��|�ttjd��|�ttjd��|�ttjd��|�ttjd��dS)N�6jy@z-6jy��z6.75jy@z-6.75jy��z3+6jy@@z-3+6jy�@z3-6jy@�z-3-6jy��z
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))rBr2r�rOr�r�s r�test_literal_eval_complexz)ASTHelpers_Test.test_literal_eval_complex�s<������)�$�/�/��4�4�4�����)�%�0�0�#�6�6�6�����)�'�2�2�E�:�:�:�����)�(�3�3�V�<�<�<�����)�&�1�1�4�8�8�8�����)�'�2�2�E�:�:�:�����)�&�1�1�4�8�8�8�����)�'�2�2�E�:�:�:�����)�,�7�7��D�D�D�����)�-�8�8�+�F�F�F�����)�,�7�7��D�D�D�����)�-�8�8�+�F�F�F�����)�(�3�3�T�:�:�:����*�c�&6��@�@�@����*�c�&6��A�A�A����*�c�&6��@�@�@����*�c�&6�
�C�C�C����*�c�&6�	�B�B�B�B�Br
c���tjtjd��tjd��gtjd��g���}|�ttj|��tjtjd��gtjd��tjd��g���}|�ttj|��dS)Nr�rMr�)�keys�values)r2�Dictr�rOr�r�)r7�	malformeds  r�&test_literal_eval_malformed_dict_nodesz6ASTHelpers_Test.test_literal_eval_malformed_dict_nodes�s����H�3�<��?�?�C�L��O�O�"D�c�l�[\�o�o�M^�_�_�_�	����*�c�&6�	�B�B�B��H�3�<��?�?�"3�S�\�!�_�_�c�l�[\�o�o�<^�_�_�_�	����*�c�&6�	�B�B�B�B�Br
c�B�|�tjd��d��|�tjd��d��|�tjd��d��|�ttjd��dS)Nz    -1rz		-1z 	 -1z
 -1)rBr2r�rO�IndentationErrorr�s r�test_literal_eval_trailing_wsz-ASTHelpers_Test.test_literal_eval_trailing_ws�s�������)�(�3�3�R�8�8�8�����)�(�3�3�R�8�8�8�����)�(�3�3�R�8�8�8����*�C�,<�g�F�F�F�F�Fr
c	�,�d}|�t|��5tjd��ddd��n#1swxYwYtjtj��tjtj��tjd������}|�t|dd����d}|�t|��5tj|��ddd��dS#1swxYwYdS)Nz#malformed node or string on line 3:z{'a': 1,
'b':2,
'c':++3,
'd':4}r�rzmalformed node or string:)	r�r�r2r��UnaryOp�UAddr�rar)r7r�r9s   r�"test_literal_eval_malformed_linenoz2ASTHelpers_Test.test_literal_eval_malformed_lineno�s��4��
�
#�
#�J��
4�
4�	C�	C���A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C��{��H�J�J���C�H�J�J���Q���@�@�B�B�����'�$��$�7�7�8�8�8�*��
�
#�
#�J��
4�
4�	#�	#���T�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s!�?�A�A�'D	�	D
�D
c��|�td��5tjd��ddd��dS#1swxYwYdS)Nzunexpected indentz4
                \
                (\
            \ )r�rVr2r�r�s r�test_literal_eval_syntax_errorsz/ASTHelpers_Test.test_literal_eval_syntax_errors�s���
�
#�
#�K�1D�
E�
E�	�	����
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�>�A�Ac�b�tjdtjd���gddd���g}tj|g��}|�t
��5}t
|dd��ddd��n#1swxYwY|�dt|j	����dS)N�time�sleep�r8�r�r��levelrrr�rdzinvalid integer value: None)
r2r�r�r�rOr�rur!rr")r7r�r�r%s    r�test_bad_integerz ASTHelpers_Test.test_bad_integer�s�����f�&)�i�W�&=�&=�&=�%>�%)�&*�t�=�=�=�>���j��r�"�"��
�
�
�z�
*�
*�	)�b��C���(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��
�
�3�S���5F�5F�G�G�G�G�Gs�A<�<B�Bc��tjdtjddd���gddd���g}tj|g��}t	|dd��}i}t||��|�d|��dS)Nrrrr�rr�rd)r2r�r�r�rurdr!)r7r�r�rb�nss     r�test_level_as_nonez"ASTHelpers_Test.test_level_as_none�s�����f�&)�i�W�78�Q�'H�'H�'H�&I�%)�&'�A�	7�7�7�8��
�j��r�"�"���s�F�F�+�+��
���T�2�����
�
�g�r�"�"�"�"�"r
c�f�tjtj��dd���}||_|�t
��5t
j��5ttj	|��dd��ddd��n#1swxYwYddd��dS#1swxYwYdS�Nr)rrrr�rf�
r2r�Not�operandrOr�rr�rur.r�s  r�test_recursion_directz%ASTHelpers_Test.test_recursion_direct�s���K�3�7�9�9�Q�1�=�=�=����	�
�
�
�~�
.�
.�	=�	=��+�-�-�
=�
=����q�)�)�8�V�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=s6�
B&�$B�B&�B	�B&�B	�B&�&B*�-B*c���tjtj��dd���}tjtj��dd���}||_||_|�t
��5t
j��5ttj	|��dd��ddd��n#1swxYwYddd��dS#1swxYwYdSrr )r7r
r"s   r�test_recursion_indirectz'ASTHelpers_Test.test_recursion_indirect�s@���K�3�7�9�9�Q�1�=�=�=���K�3�7�9�9�Q�1�=�=�=����	���	�
�
�
�~�
.�
.�	=�	=��+�-�-�
=�
=����q�)�)�8�V�<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=s6�9C�
$B=�1C�=C	�C�C	�C�C�C) rr5rZr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
r
rrrrr#r%rr
rr�r�]s��������G�3�3�3�
:�:�:�
�
�
�*;�;�;�z
�
�
�:,�,�,� 
�
�
�(@�@�@�0
:�
:�
:�:�:�:�	
�	
�	
�G�G�G� ;�;�;�02�2�2�&2�2�2�2�2�2�9�9�9�?�?�?�&L�L�L�C�C�C�*C�C�C�G�G�G�
#�
#�
#����	H�	H�	H�
#�
#�
#�=�=�=�=�=�=�=�=r
r�c�R	�eZdZdFed�d�ZdGed�d�ZdGd�Zd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �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/d0�Z0d1�Z1d2�Z2e3j4d3��Z5e3j6e5��Z7e3j4d4��Z8e3j6e8��Z9e3j4d5��Z:e3j;d5��Z<e3j=d6e3j>����Z?e3j6e3j@e3j@e3j=d4e3jA����d7e3j>����d8e3j>������e3j6e3j@e3j@e3j=d4e3j>����d7e3jA����d8e3j>������e3j6e3j4d9����e3j6e3j4d5����e3j6e3j4d:����e3j;d;��e3jBe3j;d;��g��e3jBe3jBe3j;d;��g��g��e3jCe5e:ge9g��e3jCe:e5ge9e7gd<�=��e3jCe:e3jDe3j=d>e3j>����e3j>����ge9e7gd?�=��e3jEe3j@e3j@e8d7e3j>����d8e3j>����ggg�@��e3jEe?gd<ge7g�@��e3jEe?gge7g�@��e3jEe?e3j;d;��ggg�@��e3jEe?e3jF��ggg�@��e3jEe?gge3jF��g�@��e3jBe3jFd<��g��e3jGdA�B��e3jHg��e3jHe7g��e3jHe7e9e3j;dC��g��e3jGdD�B��e3jFd4�B��e3jBe3jFdD��g��e3jCggdD�=��gZIdE�ZJdS)H�ASTValidatorTestsNrd�r�c�@�dx|_|_tj|��|�t	|d|��dS|�|��5}t	|d|��ddd��n#1swxYwY|�|t|j����dS)Nrr�)	rrr2r)rurOr!rr")r7r�r�r�r�r%s      rr�zASTValidatorTests.mod�s���&'�'��
�S�^��!�#�&�&�&��;��C��4�(�(�(�(�(��"�"�3�'�'�
-�2���X�t�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��M�M�#�s�2�<�0�0�1�1�1�1�1s�
A+�+A/�2A/c��tjtj|��gg��}|�|||���dS)Nr()r2r�r r�)r7r9r�r�r�s     rr=zASTValidatorTests.exprs<���j�#�(�4�.�.�)�2�.�.������c�s��#�#�#�#�#r
c�^�tj|gg��}|�||��dSr�)r2r�r�)r7r>r�r�s    rr>zASTValidatorTests.stmt	s/���j�$���$�$������c�����r
c	�h�tjtjtjdtj������g��}|�|dd��tjtjdtj������}|�|dd��dS)NrT�must have Load contextrerf)r2�Interactiver r��Storer�r.)r7r$s  rr�zASTValidatorTests.test_module
s����O�S�X�c�h�s�C�I�K�K�&@�&@�A�A�B�C�C������,�h�7�7�7��N�3�8�C�����5�5�6�6������,�f�5�5�5�5�5r
c���			d�fd�	}tjdtjdtj������g}|||���d��|||���d��|||���d��||tjd��g���d	��||tjd
��g���d��tjdtjdtj������g}|||tjdtj����g�
��d��tjdtjdtj������tjdtjdtj������g}|||dtjdtj����g���d��dS)Nc	�v��|�g}|�g}|�g}|�g}|�g}tj|||||||��}�|��Sr�)r2r�)r�r�rQr�r�r�r��facs       �rr�z5ASTValidatorTests._check_arguments.<locals>.argumentssi����|����"� ���!��
������"� ���=��{�F�J�!,�e�X�?�?�D��3�t�9�9�r
rTr6r-)r�)r�r�)r�z"more positional defaults than argsr)r�z3length of kwonlyargs is not the same as kw_defaults)r�r�r]r�r�)r�r�)NNNNNNN)r2�argr�r/r�r()r7r2�checkr�r�s `   r�_check_argumentsz"ASTValidatorTests._check_argumentss���:>�-1�15�	�	�	�	�	�	� ���S�X�c�3�9�;�;�7�7�8�8�9��
��i�i�T�"�"�"�$<�=�=�=�
��i�i�D�)�)�)�+C�D�D�D�
��i�i�4�(�(�(�*B�C�C�C�
��i�i�#�'�!�*�*��.�.�.�;�	=�	=�	=�
��i�i�S�W�Q�Z�Z�L�1�1�1�L�	N�	N�	N����S�X�c�3�8�:�:�6�6�7�7�8��
��i�i�T�S�X�c�3�9�;�;�-G�-G�,H�I�I�I�/�	1�	1�	1����S�X�c�3�8�:�:�6�6�7�7����S�X�c�3�8�:�:�6�6�7�7�9��
��i�i�4�'+�S�X�c�3�9�;�;�-G�-G�&H�J�J�J�2�	4�	4�	4�	4�	4r
c�d�tjggdggdg��}tjd|ggd��}|�|d��tjd|tj��gtjdtj����gd��}|�|d��tjd|tj��ggtjdtj������}|�|d��d�}|�||j��dS)NrTzempty body on FunctionDefr-c�V�tjd|tj��ggd��S�NrT)r2�FunctionDef�Passr6s rr2z+ASTValidatorTests.test_funcdef.<locals>.fac?s"���?�3��s�x�z�z�l�B��E�E�Er
)r2r�r9r>r:r�r/r5)r7r]r"r2s    r�test_funcdefzASTValidatorTests.test_funcdef5s���M�"�b�$��B��b�9�9���O�C��B��D�1�1���	�	�!�0�1�1�1��O�C��S�X�Z�Z�L�3�8�C�����3M�3M�2N� �
"�
"���	�	�!�-�.�.�.��O�C��S�X�Z�Z�L�"��H�S�#�)�+�+�6�6�
8�
8���	�	�!�-�.�.�.�	F�	F�	F����c�4�9�-�-�-�-�-r
c�T�d
d�}|�|tjdtj����g���d��|�|tjdtjdtj������g���d��|�|g���d��|�|dg���d��|�|tjdtj����g�	��d��dS)Nc�v�|�g}|�g}|�tj��g}|�g}tjd||||��S)N�myclass)r2r:�ClassDef)�basesr�r�r<s    r�clsz,ASTValidatorTests.test_classdef.<locals>.clsDsS���}��������|���
�
�|���%�!#���<�	�5�(� $�n�6�6�
6r
rT)r@r-)r�r,zempty body on ClassDef�None disallowed)r<)NNNN)r>r2r�r/�keyword)r7rAs  r�
test_classdefzASTValidatorTests.test_classdefCs(��
	6�
	6�
	6�
	6�	
�	�	�#�#�S�X�c�3�9�;�;�7�7�8�9�9�9�*�	,�	,�	,��	�	�#�#���C���#�s�y�{�{�1K�1K� L� L�M�N�N�N�*�	,�	,�	,��	�	�#�#�2�,�,�,� 8�9�9�9��	�	�#�#�D�6�"�"�"�$5�6�6�6��	�	�#�#�c�h�s�C�I�K�K�&@�&@�%A�B�B�B�*�	,�	,�	,�	,�	,r
c	�B�|�tjg��d��|�tjdg��d��|�tjtjdtj����g��d��dS)Nzempty targets on DeleterBrTzmust have Del context)r>r2�Deleter�r(r�s r�test_deletezASTValidatorTests.test_deleteXs����	�	�#�*�R�.�.�";�<�<�<��	�	�#�*�d�V�$�$�&7�8�8�8��	�	�#�*�c�h�s�C�H�J�J�7�7�8�9�9�)�	+�	+�	+�	+�	+r
c
��|�tjgtjd����d��|�tjdgtjd����d��|�tjtjdtj����gtjd����d��|�tjtjdtj����gtjdtj������d��dS)Nr�zempty targets on AssignrBrT�must have Store contextr�r-)r>r2�Assignr�r�r(r/r�s r�test_assignzASTValidatorTests.test_assign^s����	�	�#�*�R������,�,�.G�H�H�H��	�	�#�*�d�V�S�W�Q�Z�Z�0�0�2C�D�D�D��	�	�#�*�c�h�s�C�H�J�J�7�7�8�#�'�!�*�*�E�E�+�	-�	-�	-��	�	�#�*�c�h�s�C�I�K�K�8�8�9� #���c�i�k�k� :� :�<�<�*�	,�	,�	,�	,�	,r
c	��tjtjdtj����tj��tjdtj������}|�|d��tjtjdtj����tj��tjdtj������}|�|d��dS)NrTr�rIr-)r2�	AugAssignr�r(rr>r/)r7�augs  r�test_augassignz ASTValidatorTests.test_augassigngs����m�C�H�S�#�(�*�*�5�5�s�w�y�y��H�S�#�(�*�*�5�5�7�7���	�	�#�0�1�1�1��m�C�H�S�#�)�+�+�6�6���	�	��H�S�#�)�+�+�6�6�8�8���	�	�#�/�0�0�0�0�0r
c
�|�tjdtj����}tjdtj����}tj��}|�tj||gg��d��|�tjtjdtj����||gg��d��|�tj|tjdtj����|gg��d��tjtjdtj������}|�tj|||gg��d��|�tj|||g|g��d��dS)NrTr�zempty body on ForrIr-)r2r�r/r(r:r>r�r )r7rTr��pr
s     r�test_forzASTValidatorTests.test_forosU���H�S�#�)�+�+�&�&���H�S�#�(�*�*�%�%���H�J�J���	�	�#�'�!�Q��B�'�'�)<�=�=�=��	�	�#�'�#�(�3���
�
�3�3�Q���R�@�@�+�	-�	-�	-��	�	�#�'�!�S�X�c�3�9�;�;�7�7�!��b�A�A�*�	,�	,�	,��H�S�X�c�3�9�;�;�/�/�0�0���	�	�#�'�!�Q���R�(�(�*B�C�C�C��	�	�#�'�!�Q���a�S�)�)�+C�D�D�D�D�Dr
c
�H�|�tjtjd��gg��d��|�tjtjdtj����tj��gg��d��|�tjtjd��tj��gtjtjdtj������g��d��dS)Nr�zempty body on WhilerTr-)r>r2�Whiler�r�r/r:r r�s r�
test_whilezASTValidatorTests.test_while|s����	�	�#�)�C�G�A�J�J��B�/�/�1F�G�G�G��	�	�#�)�C�H�S�#�)�+�+�6�6������b�I�I�*�	,�	,�	,��	�	�#�)�C�G�A�J�J������!�h�s�x��S�Y�[�[�'A�'A�B�B�C�E�E�5�	7�	7�	7�	7�	7r
c�:�|�tjtjd��gg��d��tjtjdtj����tj��gg��}|�|d��tjtjd��tjtjdtj������gg��}|�|d��tjtjd��tj��gtjtjdtj������g��}|�|d��dS)Nr�zempty body on IfrTr-)r>r2�Ifr�r�r/r:r )r7rxs  r�test_ifzASTValidatorTests.test_if�s ���	�	�#�&������R��,�,�.@�A�A�A��F�3�8�C�����-�-���
�
�|�R�@�@���	�	�!�-�.�.�.��F�3�7�1�:�:�����#�s�y�{�{�)C�)C� D� D�E�r�J�J���	�	�!�-�.�.�.��F�3�7�1�:�:���
�
�|��H�S�X�c�3�9�;�;�7�7�8�8�9�
;�
;���	�	�!�-�.�.�.�.�.r
c���tj��}|�tjg|g��d��tjtjd��d��}|�tj|gg��d��tjtjdtj����d��}|�tj|g|g��d��tjtjd��tjdtj������}|�tj|g|g��d��dS)Nzempty items on Withr�zempty body on WithrTr-rI)	r2r:r>�WithrIr�r�r/r()r7rQrxs   r�	test_withzASTValidatorTests.test_with�s
���H�J�J���	�	�#�(�2��s�#�#�%:�;�;�;��L������T�*�*���	�	�#�(�A�3��#�#�%9�:�:�:��L���#�s�y�{�{�3�3�T�:�:���	�	�#�(�A�3���$�$�&>�?�?�?��L������S�X�c�3�8�:�:�%>�%>�?�?���	�	�#�(�A�3���$�$�&?�@�@�@�@�@r
c���tjdtjd����}|�|d��tjtjdtj����d��}|�|d��tjtjd��tjdtj������}|�|d��dS)Nr�z!Raise with cause but no exceptionrTr-r)r2r�r�r>r�r/)r7�rs  r�
test_raisezASTValidatorTests.test_raise�s����I�d�C�G�A�J�J�'�'���	�	�!�8�9�9�9��I�c�h�s�C�I�K�K�0�0�$�7�7���	�	�!�-�.�.�.��I�c�g�a�j�j�#�(�3��	���"<�"<�=�=���	�	�!�-�.�.�.�.�.r
c�,�tj��}tjggg|g��}|�|d��tjtjtjdtj������ggg|g��}|�|d��tj|gggg��}|�|d��tj|gg|g|g��}|�|d��tj|gtjddg��ggg��}|�|d��tjtjdtj����d|g��g}|�tj|g|gg��d��tjdd|g��g}tj|g|tjtjdtj������g|g��}|�|d��tj|g||gtjtjdtj������g��}|�|d��dS)Nzempty body on TryrTr-z-Try has neither except handlers nor finalbodyz%Try has orelse but no except handlers�empty body on ExceptHandlerr�)r2r:�Tryr>r r�r/�
ExceptHandler�r7rQr r
s    r�test_tryzASTValidatorTests.test_try�s)���H�J�J���G�B��B���$�$���	�	�!�(�)�)�)��G�S�X�c�h�s�C�I�K�K�8�8�9�9�:�B��Q�C�H�H���	�	�!�-�.�.�.��G�Q�C��R��$�$���	�	�!�D�E�E�E��G�Q�C��a�S�1�#�&�&���	�	�!�<�=�=�=��G�Q�C�#�+�D�#�r�:�:�;�R��D�D���	�	�!�2�3�3�3�
�
�s�x��S�Y�[�[�9�9�3���
D�
D�E���	�	�#�'�1�#�q�"�b�)�)�+C�D�D�D�
�
�t�S�1�#�
.�
.�/���G�Q�C��S�X�c�h�s�C�I�K�K�&@�&@�A�A�B�Q�C�H�H���	�	�!�-�.�.�.��G�Q�C��Q�C�#�(�3�8�C�����+E�+E�"F�"F�!G�H�H���	�	�!�-�.�.�.�.�.r
c�,�tj��}tjggg|g��}|�|d��tjtjtjdtj������ggg|g��}|�|d��tj|gggg��}|�|d��tj|gg|g|g��}|�|d��tj|gtjddg��ggg��}|�|d��tjtjdtj����d|g��g}|�tj|g|gg��d��tjdd|g��g}tj|g|tjtjdtj������g|g��}|�|d��tj|g||gtjtjdtj������g��}|�|d��dS)Nzempty body on TryStarrTr-z1TryStar has neither except handlers nor finalbodyz)TryStar has orelse but no except handlersr`r�)r2r:�TryStarr>r r�r/rbrcs    r�
test_try_starzASTValidatorTests.test_try_star�s)���H�J�J���K��B��Q�C�(�(���	�	�!�,�-�-�-��K���#�(�3��	���"<�"<�=�=�>��B���L�L���	�	�!�-�.�.�.��K���R��R�(�(���	�	�!�H�I�I�I��K���R�!��q�c�*�*���	�	�!�@�A�A�A��K���c�/��c�2�>�>�?��R�H�H���	�	�!�2�3�3�3�
�
�s�x��S�Y�[�[�9�9�3���
D�
D�E���	�	�#�+�q�c�1�b�"�-�-�/G�H�H�H�
�
�t�S�1�#�
.�
.�/���K���Q���#�(�3��	���*D�*D�!E�!E� F���L�L���	�	�!�-�.�.�.��K���Q���c�h�s�x��S�Y�[�[�/I�/I�&J�&J�%K�L�L���	�	�!�-�.�.�.�.�.r
c	��|�tjtjdtj����d��d��tjtjdtj����tjdtj������}|�|d��dS)NrTr-r�)r>r2�Assertr�r/r()r7�assrts  r�test_assertzASTValidatorTests.test_assert�s����	�	�#�*�S�X�c�3�9�;�;�7�7��>�>�*�	,�	,�	,��
�3�8�C�����4�4��8�C�����5�5�7�7���	�	�%�1�2�2�2�2�2r
c�V�|�tjg��d��dS)Nzempty names on Import)r>r2r�r�s r�test_importzASTValidatorTests.test_import��%���	�	�#�*�R�.�.�"9�:�:�:�:�:r
c���tjdtjdd��gd��}|�|d��|�tjdgd��d��dS)NrTi���zNegative ImportFrom levelrzempty names on ImportFrom)r2r�r�r>)r7�imps  r�test_importfromz!ASTValidatorTests.test_importfrom�sb���n�T�C�I�c�4�$8�$8�#9�3�?�?���	�	�#�2�3�3�3��	�	�#�.��r�1�-�-�/J�K�K�K�K�Kr
c�V�|�tjg��d��dS)Nzempty names on Global)r>r2�Globalr�s r�test_globalzASTValidatorTests.test_global�rnr
c�V�|�tjg��d��dS)Nzempty names on Nonlocal)r>r2�Nonlocalr�s r�
test_nonlocalzASTValidatorTests.test_nonlocal�s'���	�	�#�,�r�"�"�$=�>�>�>�>�>r
c��tjtjdtj������}|�|d��dS�NrTr-)r2r r�r/r>r�s  r�	test_exprzASTValidatorTests.test_expr�s>���H�S�X�c�3�9�;�;�/�/�0�0���	�	�!�-�.�.�.�.�.r
c	��tjtj��g��}|�|d��tjtj��tjd��g��}|�|d��tjtj��tjd��dg��}|�|d��tjtj��tjd��tjdtj����g��}|�|d��dS)Nzless than 2 valuesr�rrBrTr-)r2�BoolOp�Andr=r�r�r/)r7r�s  r�test_boolopzASTValidatorTests.test_boolop�s����J�s�w�y�y�"�%�%���	�	�!�)�*�*�*��J�s�w�y�y�3�7�1�:�:�,�/�/���	�	�!�)�*�*�*��J�s�w�y�y�3�7�1�:�:�t�"4�5�5���	�	�!�&�'�'�'��J�s�w�y�y�3�7�1�:�:�s�x��S�Y�[�[�/I�/I�"J�K�K���	�	�!�-�.�.�.�.�.r
c���tjtj��tjdtj������}|�|d��dSry)r2rr!r�r/r=)r7�us  r�test_unaryopzASTValidatorTests.test_unaryop�sF���K���	�	�3�8�C�����#=�#=�>�>���	�	�!�-�.�.�.�.�.r
c
��tjggdggdg��}|�tj|tjdtj������d��d�}|�||j��dS)NrTr-c�t�tj|tjdtj������Sr8)r2�Lambdar�r(r6s rr2z*ASTValidatorTests.test_lambda.<locals>.fac�s&���:�d�C�H�S�#�(�*�*�$=�$=�>�>�>r
)r2r�r=r�r�r/r5)r7r]r2s   r�test_lambdazASTValidatorTests.test_lambda�s����M�"�b�$��B��b�9�9���	�	�#�*�Q����c�i�k�k� :� :�;�;�*�	,�	,�	,�	?�	?�	?����c�4�9�-�-�-�-�-r
c��tjdtj����}tjdtj����}|||f|||f|||ffD]$}|�tj|�d���%dS�NrTr�r-)r2r�r(r/r=�IfExp)r7�lr�r�s    r�
test_ifexpzASTValidatorTests.test_ifexp�s����H�S�#�(�*�*�%�%���H�S�#�)�+�+�&�&����1�I��1�a�y�1�a��)�3�	B�	B�D��I�I�c�i��&�(@�A�A�A�A�	B�	Br
c�H�tjgtjdtj����g��}|�|d��tjtjdtj����gdg��}|�|d��dS)NrTzsame number of keys as valuesrB)r2rr�r(r=)r7r�s  r�	test_dictzASTValidatorTests.test_dict�s����H�R�#�(�3���
�
�3�3�4�5�5���	�	�!�4�5�5�5��H�c�h�s�C�H�J�J�/�/�0�4�&�9�9���	�	�!�&�'�'�'�'�'r
c��|�tjdg��d��tjtjdtj����g��}|�|d��dS�NrBrTr-)r=r2�Setr�r/�r7r�s  r�test_setzASTValidatorTests.test_sets`���	�	�#�'�4�&�/�/�#4�5�5�5��G�S�X�c�3�9�;�;�/�/�0�1�1���	�	�!�-�.�.�.�.�.r
c	��|�|g��d��tjtjdtj����tjdtj����gd��}|�||g��d��tjtjdtj����tjdtj����gd��}|�||g��d��tjdtj����}tjdtj����}tj||dgd��}|�||g��d��tj||tjdtj����gd��}|�||g��d��dS)Nz comprehension with no generatorsrTrrIr-r�rB)r=r2r�r�r(r/)r7r2�grTr�s     r�_check_comprehensionz&ASTValidatorTests._check_comprehensions����	�	�#�#�b�'�'�=�>�>�>���c�h�s�C�H�J�J�7�7�!�h�s�C�H�J�J�7�7��Q�
@�
@���	�	�#�#�q�c�(�(�5�6�6�6���c�h�s�C�I�K�K�8�8�!�h�s�C�I�K�K�8�8�"�a�
A�
A���	�	�#�#�q�c�(�(�4�5�5�5��H�S�#�)�+�+�&�&���H�S�#�(�*�*�%�%����a��T�F�A�.�.���	�	�#�#�q�c�(�(�-�.�.�.���a��S�X�c�3�9�;�;�%?�%?�$@�!�D�D���	�	�#�#�q�c�(�(�4�5�5�5�5�5r
c	���tjtjdtj����tjdtj����gd��}|��tjdtj����|g��d���fd�}|�|��dS)NrTrr-c�d���tjdtj����|��Sr8)r2r�r/)�gensr2s �r�wrapz,ASTValidatorTests._simple_comp.<locals>.wraps'����3�s�x��S�Y�[�[�1�1�4�8�8�8r
)r2r�r�r/r(r=r�)r7r2r�r�s `  r�_simple_compzASTValidatorTests._simple_comps������c�h�s�C�I�K�K�8�8�!�h�s�C�H�J�J�7�7��Q�
@�
@���	�	�#�#�c�h�s�C�I�K�K�0�0�1�#�6�6�*�	,�	,�	,�	9�	9�	9�	9�	9��!�!�$�'�'�'�'�'r
c�D�|�tj��dSr�)r�r2�ListCompr�s r�
test_listcompzASTValidatorTests.test_listcomp s�����#�,�'�'�'�'�'r
c�D�|�tj��dSr�)r�r2�SetCompr�s r�test_setcompzASTValidatorTests.test_setcomp#s�����#�+�&�&�&�&�&r
c�D�|�tj��dSr�)r�r2�GeneratorExpr�s r�test_generatorexpz#ASTValidatorTests.test_generatorexp&s�����#�*�+�+�+�+�+r
c���tjtjdtj����tjdtj����gd��}tjtjdtj����tjdtj����|g��}|�|d��tjtjdtj����tjdtj����|g��}|�|d��d�}|�|��dS)Nr�rQrrTr-c���tjdtj����}tjdtj����}tj|||��S)NrTr�)r2r�r(�DictComp)�comps�kr-s   r�factoryz0ASTValidatorTests.test_dictcomp.<locals>.factory2sD�����c�h�j�j�)�)�A����c�h�j�j�)�)�A��<��1�e�,�,�,r
)r2r�r�r/r(r�r=r�)r7r��cr�s    r�
test_dictcompzASTValidatorTests.test_dictcomp)s����c�h�s�C�I�K�K�8�8�!�h�s�C�H�J�J�7�7��Q�
@�
@���L���#�s�y�{�{�3�3���#�s�x�z�z�2�2�Q�C�
9�
9���	�	�!�-�.�.�.��L���#�s�x�z�z�2�2���#�s�y�{�{�3�3�a�S�
:�
:���	�	�!�-�.�.�.�	-�	-�	-�	
�!�!�'�*�*�*�*�*r
c	�6�|�tjtjdtj������d��|�tjtjdtj������d��dS)NrTzmust have Load)r=r2�Yieldr�r/�	YieldFromr�s r�
test_yieldzASTValidatorTests.test_yield8sj���	�	�#�)�C�H�S�#�)�+�+�6�6�7�7�9I�J�J�J��	�	�#�-����c�i�k�k� :� :�;�;�=M�N�N�N�N�Nr
c���tjdtj����}tj|tj��gg��}|�|d��tj|tj��gtjd��tjd��g��}|�|d��tjtjd��tj��g|g��}|�|��tj|tj��gtjd��g��}|�|��dS)NrTzno comparatorsrrz,different number of comparators and operands�blah)r2r�r(�Compare�Inr=r�)r7r�comps   r�test_comparezASTValidatorTests.test_compare<s����x��S�X�Z�Z�(�(���{�4�#�&�(�(��R�0�0���	�	�$�(�)�)�)��{�4�#�&�(�(��c�g�a�j�j�#�'�!�*�*�-E�F�F���	�	�$�F�G�G�G��{�3�7�6�?�?�S�V�X�X�J���?�?���	�	�$�����{�4�#�&�(�(��c�g�f�o�o�->�?�?���	�	�$�����r
c���tjdtj����}tjdtj����g}tjdtjdtj������g}tjtjdtj����||��}|�|d��tj|dg|��}|�|d��tjdtjdtj������g}tj|||��}|�|d��dS)NrTr��wr�r-rB)r2r�r(rCr�r/r=)r7r�r�r��call�bad_keywordss      r�	test_callzASTValidatorTests.test_callGs���x��S�X�Z�Z�(�(�����c�h�j�j�)�)�*���K��S�X�c�3�8�:�:�%>�%>�?�?�@���x����c�i�k�k�2�2�D�(�C�C���	�	�$�0�1�1�1��x��t�f�h�/�/���	�	�$�)�*�*�*���C���#�s�y�{�{�)C�)C�D�D�E���x��d�L�1�1���	�	�$�0�1�1�1�1�1r
c�n�Gd�dt��}Gd�dt��}Gd�dt��}dD])}|�t	j|�����*|��|��|��fD]1}|�t	j|��dt�	���2dS)
Nc��eZdZdS)�*ASTValidatorTests.test_num.<locals>.subintNrYrr
r�subintr�Tr\r
r�c��eZdZdS)�,ASTValidatorTests.test_num.<locals>.subfloatNrYrr
r�subfloatr�Vr\r
r�c��eZdZdS)�.ASTValidatorTests.test_num.<locals>.subcomplexNrYrr
r�
subcomplexr�Xr\r
r�)�0�hellozinvalid typer()r�floatrr=r2r�rR)r7r�r�r��objs     r�test_numzASTValidatorTests.test_numSs��	�	�	�	�	�S�	�	�	�	�	�	�	�	�u�	�	�	�	�	�	�	�	��	�	�	��	$�	$�C��I�I�c�g�c�l�l�#�#�#�#��6�8�8�X�X�Z�Z�����5�	C�	C�C��I�I�c�g�c�l�l�N�	�I�B�B�B�B�	C�	Cr
c���tjtjdtj����dtj����}|�|d��dSr�)r2�	Attributer�r/r(r=)r7�attrs  r�test_attributez ASTValidatorTests.test_attribute_sH���}�S�X�c�3�9�;�;�7�7��c�h�j�j�I�I���	�	�$�0�1�1�1�1�1r
c	�~�tjtjdtj����tjd��tj����}|�|d��tjdtj����}tj|tjdtj����tj����}|�|d��tjdtj����}|ddfd|dfdd|ffD]K}tj|�}|�tj||tj����d���Ltjgtj����}|�tj||tj������tj|gtj����}|�tj||tj����d��dS)NrTr�r-r�)	r2�	Subscriptr�r/r�r(r=�Slice�Tuple)r7�subrTr�r��sls      r�test_subscriptz ASTValidatorTests.test_subscriptcs����m�C�H�S�#�)�+�+�6�6����
�
��H�J�J�(�(���	�	�#�/�0�0�0��H�S�#�(�*�*�%�%���m�A�s�x��S�Y�[�[�9�9��H�J�J�(�(���	�	�#�/�0�0�0��H�S�#�)�+�+�&�&����d�O�d�A�t�_�t�T�1�o�E�	0�	0�D���D�!�B��I�I�c�m�A�r�3�8�:�:�6�6�.�
0�
0�
0�
0�
�Y�r�3�8�:�:�
&�
&���	�	�#�-��2�s�x�z�z�2�2�3�3�3�
�Y��s�C�H�J�J�
'�
'���	�	�#�-��2�s�x�z�z�2�2�4L�M�M�M�M�Mr
c	�`�tjtjtjdtj����tj����gtj����}tj|gtjd����}|�|d��dS)NrTrrI)	r2�List�Starredr�r(r/rJr�r>)r7r�assigns   r�test_starredzASTValidatorTests.test_starredus{���x���S�X�c�3�8�:�:�%>�%>��	���L�L�M��	���%�%����T�F�C�G�A�J�J�/�/���	�	�&�3�4�4�4�4�4r
c	��|�|dgtj����d��|�|tjdtj����gtj����d��dSr�)r=r2r(r�r/)r7r2s  r�	_sequencezASTValidatorTests._sequence{sw���	�	�#�#�t�f�c�h�j�j�)�)�+<�=�=�=��	�	�#�#�s�x��S�Y�[�[�1�1�2�C�H�J�J�?�?�*�	,�	,�	,�	,�	,r
c�D�|�tj��dSr�)r�r2r�r�s r�	test_listzASTValidatorTests.test_list�s�����s�x� � � � � r
c�D�|�tj��dSr�)r�r2r�r�s r�
test_tuplezASTValidatorTests.test_tuple�s�����s�y�!�!�!�!�!r
c�T�|�tjd����dS)Nr)r=r2r�r�s r�test_nameconstantz#ASTValidatorTests.test_nameconstant�s%���	�	�#�"�1�%�%�&�&�&�&�&r
c�.�tj�tj��}d�tj|��D��}|�ddg��|D]�}|�|��5tj�||��}t|dd���5}|�
��}ddd��n#1swxYwYtj||��}t||d��ddd��n#1swxYwY��dS)Nc�<�g|]}|�d���|��S)z.py)�endswith)r	�fns  rrz;ASTValidatorTests.test_stdlib_validates.<locals>.<listcomp>�s)��G�G�G��B�K�K��4F�4F�G��G�G�Gr
ztest/test_grammar.pyztest/test_unpack_ex.pyr]zutf-8)�encodingrd)
�os�path�dirnamer2�__file__�listdir�extendrt�join�open�readr~ru)r7�stdlib�testsr�r��fp�sourcer�s        r�test_stdlib_validatesz'ASTValidatorTests.test_stdlib_validates�sz��������.�.��G�G�b�j��0�0�G�G�G��
���,�.F�G�H�H�H��	)�	)�F����f�%�%�
)�
)��W�\�\�&�&�1�1���"�c�G�4�4�4�'���W�W�Y�Y�F�'�'�'�'�'�'�'�'�'�'�'����'�'�'�'��i���+�+����R��(�(�(�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)��	)�	)s6�83D	�+C�D	�C�D	�C�)D	�	D
	�D
	r�rTT�carterr�r�.r��stringre)�rest�lol�legit)�patterns�	kwd_attrs�kwd_patternsrfr�xxx�_c
�<�tjdtj����}|jD]�}|�tj|d�����5tj|tj|tj��g���g���}tj	|��}tj
|gg��}|�t��5t|dd��ddd��n#1swxYwYddd��n#1swxYwY��dS)NrTrr�)�patternr�)�subject�casesr�rd)r2r�r(�_MATCH_PATTERNSrtr��Match�
match_caser:r)r�rOr�ru)r7�name_xr�r9r�s     r�test_match_validation_patternz/ASTValidatorTests.test_match_validation_patterns�����#�s�x�z�z�*�*���+�	6�	6�G����c�h�w�q�9�9�9�:�:�

6�

6��y�"���$+�$'�H�J�J�<����������0��6�6����T�F�B�/�/���&�&�z�2�2�6�6��F�H�f�5�5�5�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6�

6�

6�

6�

6�

6�

6�

6�

6�

6�

6�

6����

6�

6�

6�

6��	6�	6s7�BD�C9�-D�9C=�=D�C=�D�D	�D	)Nrdr�)Krr5rZr�r�r=r>r�r5r;rDrGrKrOrRrUrXr[r^rdrgrkrmrqrtrwrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r2r��
constant_1�
MatchValue�	pattern_1�
constant_x�	pattern_x�
constant_true�MatchSingleton�pattern_truer�r(�name_carterr�r/�
MatchSequence�MatchMappingr��
MatchClass�	MatchStar�MatchAs�MatchOrrrrr
rr'r'�s?������2�Z�2�2�2�2�2�$�*�$�$�$�$�$�����6�6�6� 4� 4� 4�D.�.�.�,�,�,�*+�+�+�,�,�,�1�1�1�E�E�E�7�7�7�/�/�/�A�A�A�/�/�/�/�/�/�(/�/�/�(3�3�3�;�;�;�L�L�L�
;�;�;�?�?�?�/�/�/�/�/�/�/�/�/�.�.�.�B�B�B�(�(�(�/�/�/�

6�
6�
6�(�(�(�(�(�(�'�'�'�,�,�,�
+�
+�
+�O�O�O�	�	�	�
2�
2�
2�
C�
C�
C�2�2�2�N�N�N�$5�5�5�,�,�,�
!�!�!�"�"�"�'�'�'�
)�
)�
)����a���J����z�*�*�I����c�"�"�J����z�*�*�I� �C�L��&�&�M�%�3�%�d�+�+�L��#�(�8�X�S�X�Z�Z�0�0�K�	����C�M���
��C�H�S�)�#�)�+�+�.�.����������X�S�X�Z�Z�
�
�	
�	
�	����C�M���
��C�H�S�(�#�(�*�*�-�-����������X�S�X�Z�Z�
�
�	
�	
�	����C�L����	
�	
�	����C�L����	
�	
�	����C�L��!�!�	
�	
�	���8�$�$����
�#�
�X�
&�
&�
�	�	�	���!��!�*��*�8�4�4����
�	
�	
�	���
��'�
�K�	
�	
�	���
�J�'�
�	�"��	
�	
�	
�
	���
�K�C�K��������
�
�(C�(C�X�S�X�Z�Z�P�P�Q�
�	�"��	
�	
�	
�
	����C�M���
��������%�%��X�S�X�Z�Z�	
!�
!�
�2�B�
	
�	
�	
�	������h�#��		
�	
�	
�	������#��		
�	
�	
�	����(�c�(��2�2�3���		
�	
�	
�	����#�c�m�o�o�&���		
�	
�	
�	������'�#�-�/�/�*�		
�	
�	
�	�����
�f�%�%�
�	
�	
�
	����	
�	
�	
�	����	
�	
�	���
�K�	
�	
�	���
�	�#5�3�#5�e�#<�#<�=�	
�	
�	���������
�3�������=�3�=��-�-�.�/�/�����R�c�*�*�*�cr�O�h6�6�6�6�6r
r'c�f�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jd���Zd	�Z
d
�ZdS)�
ConstantTestsc��tjd��}|jdj}tj|���}tj||��||jd_t
|dd��}i}t||��|dS)Nzx = 123rr�r}rdrT)r2r~r�rGr�r�rurd)r7rGr�r9�new_noderbrs       r�compile_constantzConstantTests.compile_constant*s~���y��#�#���y��|�!���<�e�,�,�,����(�D�)�)�)�%��	�!����t�Z��0�0��
���T�2�����#�w�r
c���|�t��5}|�gd���ddd��n#1swxYwY|�t	|j��d��dS)Nr�z%got an invalid type in Constant: list)rOrRrrBrr")r7r%s  r�test_validationzConstantTests.test_validation8s���
�
�
�y�
)�
)�	-�R��!�!�)�)�)�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�����R�\�*�*�@�	B�	B�	B�	B�	Bs�?�A�Ac���dddtdt��fD][}|�|���5|�|��}|�||��ddd��n#1swxYwY�\dS)NFTr
)�const)rr-rtrr�)r7rrGs   r�test_singletonszConstantTests.test_singletons>s����E�4��3�	���D�	,�	,�E����E��*�*�
,�
,��-�-�e�4�4���
�
�e�U�+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��	,�	,s�,A*�*A.	�1A.	c	�~�d}tdh��}td��D]}|df}t|dh��}�ddddd	td
��td��||f	}|D][}|�|���5|�|��}|�||��ddd��n#1swxYwY�\dS)
N)r�r�r�rM�{g�^@y�^@�unicode�bytesrr-r�)r-r�rrtrrB)r7�nested_tuple�nested_frozensetrrrGr!s       r�test_valueszConstantTests.test_valuesDs'����$�a�S�>�>���1�X�X�	@�	@�E�(�!�,�L�(�*:�A�)>�?�?����u�d��X���.�.�)�K�"8�"8�� 0�2���	0�	0�E����E��*�*�
0�
0��.�.�u�5�5��� � ���/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0s�9,B1�1B5	�8B5	c��tjd��}|jdjd}tjd���}tj||��||jdjd<|�t��5}t|dd��ddd��n#1swxYwY|�	t|j��d��dS)N�x = 1rr�r�r�rdz6expression which can't be assigned to in Store context)r2r~r��targetsr�r�rOr�rurBrr")r7r��target�
new_targetr%s     r�test_assign_to_constantz%ConstantTests.test_assign_to_constantSs���y��!�!����1��%�a�(���\��*�*�*�
���*�f�-�-�-�",��	�!���Q��
�
�
�z�
*�
*�	,�b��D�(�F�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�����R�\�*�*�/�	0�	0�	0�	0�	0s�B$�$B(�+B(c�~�tjd��}|�tj|��d��dS)Nz'docstring'
x = 1�	docstring)r2r~rBr�r�s  rr�z ConstantTests.test_get_docstringas9���y�-�.�.������*�4�0�0�+�>�>�>�>�>r
c��t|dd��}g}tj|��D]'}|jdkr|�|j���(|S)Nr}rd�
LOAD_CONST)ru�dis�get_instructions�opnamer�argval)r7r��co�consts�instrs     r�get_load_constzConstantTests.get_load_constes[���T�:�v�
.�
.�����)�"�-�-�	,�	,�E��|�|�+�+��
�
�e�l�+�+�+���
r
c��gd�}d�d�|D����}|dz
}|�tdf��tj|��}|�|�|��|��t|j|��D];\}}tj	|���}tj
||j��||_�<|�|�|��|��dS)N)	NTF�|g@y@r"r#r�rHc�8�g|]}d�|����S)zx={!r})r�)r	rs  rrz1ConstantTests.test_load_const.<locals>.<listcomp>zs$��E�E�E�U�(�/�/�%�0�0�E�E�Er
z
x = ...r�)r�r�rr2r~rBr8rsr�r�r�rG)r7r6rbr�r�rrs       r�test_load_constzConstantTests.test_load_constos�������y�y�E�E�f�E�E�E�F�F�������
�
�x��&�'�'�'��y���������,�,�T�2�2��	!�	!�	!�!���F�3�3�	$�	$�M�F�E��|�%�0�0�0�H���h���5�5�5�#�F�L�L�����,�,�T�2�2��	!�	!�	!�	!�	!r
c�z�tjd��}|jdj}tjd���}tj||j��||_tjd���}tj||j��||_|�tj	|��d��dS)Nz1 + 2rr�r�y4@y$@4@)
r2r~r�rGr�r�rrrBr�)r7r��binop�new_left�	new_rights     rr�zConstantTests.test_literal_eval�s����y��!�!���	�!��"���<�b�)�)�)����(�E�J�/�/�/���
��L�s�+�+�+�	���)�U�[�1�1�1��������)�%�0�0�&�9�9�9�9�9r
c��tjdd���j}|�|jd��|�|jd��tjdd���j}|�|jd��|�|jd��tjdd���j}|�|jd��|�|jd��tjdd���j}|�|jd	��|�|jd��dS)
Nz"x"rfr�rTzu"x"r�zr"x"zb"x"�x)r2r~r�rBrGrl)r7r�s  r�test_string_kindzConstantTests.test_string_kind�s$���I�e�&�)�)�)�.�������#�&�&�&�������&�&�&��I�f�6�*�*�*�/�������#�&�&�&�������%�%�%��I�f�6�*�*�*�/�������#�&�&�&�������&�&�&��I�f�6�*�*�*�/�������$�'�'�'�������&�&�&�&�&r
N)rr5rZrrrr&r,r�r8rr�r<r�rCrr
rrr's�������.����B�B�B�,�,�,�
0�
0�
0�0�0�0�?�?�?����
��!�!���!�8:�:�:�'�'�'�'�'r
rc���eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z dS) �EndPositionTestsc�r�|�|j|��|�|j|��dSr�)rBrr)r7rDrrs    r�_check_end_poszEndPositionTests._check_end_pos�s:������,�j�9�9�9�����0�.�A�A�A�A�Ar
c�X�|�tj||��|��dSr�)rBr2�get_source_segment)r7r�rD�contents    r�_check_contentzEndPositionTests._check_content�s+������/���A�A�7�K�K�K�K�Kr
c�J�tj|��jdjS)Nr)r2r~r�rGr�s  r�_parse_valuezEndPositionTests._parse_value�s���y��|�|� ��#�)�)r
c��d}|�|��}|�||jd��|�||jjdd��|�||jjd��dS)Nzlambda x, *y: Noner#rrTr�)rMrKr�r�rQ)r7r��lams   rr�zEndPositionTests.test_lambda�sw�� ������"�"�����A�s�x��0�0�0����A�s�x�}�Q�/��5�5�5����A�s�x���4�4�4�4�4r
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
            rr�zreturn Truezx: intrzkwargs: Any�Any)
rr�r2r~r�rGrKr��
annotationr��r7r��fdefs   r�
test_func_defzEndPositionTests.test_func_def�s�����
�
�����
	
��y��|�|� ��#�����D�!�R�(�(�(����A�t�y��|�]�;�;�;����A�t�y�~�a�0�(�;�;�;����A�t�y�~�a�0�;�U�C�C�C����A�t�y��
�>�>�>����A�t�y��9�5�A�A�A�A�Ar
c��d}|�|��}|�||jd��|�||jdjd��|�||jdjd��dS)Nzfunc(x, y=2, **kw)r�r�2r��kw)rMrKr�r�rG�r7r�r�s   rr�zEndPositionTests.test_call�s~�� ��� � ��#�#�����A�t�y�&�1�1�1����A�t�}�Q�/�5�s�;�;�;����A�t�}�Q�/�5�t�<�<�<�<�<r
c��d}|�|��}|�||jd��|�|dd��dS)Nzx[0]()zx[0]r�r�)rMrKr�rGrZs   r�test_call_noargsz!EndPositionTests.test_call_noargs�sR����� � ��#�#�����A�t�y�&�1�1�1����D�!�Q�'�'�'�'�'r
c�<�td�����}tj|��jd}|�|dd��|�||jdd��|�||jdd��dS)Nz?
            class C(A, B):
                x: int = 0
        rrM�r��Bz
x: int = 0)rr�r2r~r�rGrKr@�r7r��cdefs   r�test_class_defzEndPositionTests.test_class_def�s�����

�

��U�W�W�	
��y��|�|� ��#�����D�!�R�(�(�(����A�t�z�!�}�c�2�2�2����A�t�y��|�\�:�:�:�:�:r
c��d}tj|��jd}|�||jdjd��dS)Nz$class S(metaclass=abc.ABCMeta): passrzabc.ABCMeta)r2r~r�rKr�rGr`s   r�
test_class_kwzEndPositionTests.test_class_kw�sD��2���y��|�|� ��#�����A�t�}�Q�/�5�}�E�E�E�E�Er
c���td�����}tj|��jd}|�|dd��|�|jdd��dS)Nzh
            x = """Some multi-line text.

            It goes on starting from same indent."""
        rr��(�rr�r2r~r�rGrG�r7r�r�s   r�test_multi_line_strz$EndPositionTests.test_multi_line_str�ss����

�

��U�W�W�		
�
��1���"�1�%�����F�A�r�*�*�*����F�L�!�R�0�0�0�0�0r
c���td�����}tj|��jd}|�|dd��|�|jdd��dS)NzB
            x = "first part" \
            "second part"
        rrMr�rgrhs   r�test_continued_strz#EndPositionTests.test_continued_str�ss����

�

��U�W�W�	
���1���"�1�%�����F�A�r�*�*�*����F�L�!�R�0�0�0�0�0r
c�l�td�����}tj|��}|jd}|jd}|jd}|jd}|jd}|�|dd��|�|dd	��|�|d	d
��|�|dd��|�|dd��|�||jd
��|�||jdd��|�||jdjd��|�||j	d��|�||jdd��|�||j
djd��dS)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
        rr�rMr�rr�rZ�rQr��rezx = Nonezother()�x, yzraise RuntimeErrorrR)rr�r2r~r�rGrKr�r�r*�handlersr4)r7r�r��
while_loop�if_stmt�for_loop�try_stmt�	pass_stmts        r�test_suiteszEndPositionTests.test_suitess���
��

�

�(�U�W�W�)	
�*�i��l�l���X�a�[�
��(�1�+���8�A�;���8�A�;���H�Q�K�	����J��1�-�-�-����G�Q��+�+�+����H�b�"�-�-�-����H�b�!�,�,�,����I�r�1�-�-�-����A�z���7�7�7����A�w�|�A��
�;�;�;����A�w�~�a�0�5�y�A�A�A����A�x���7�7�7����A�x�}�Q�/�1E�F�F�F����A�x�0��3�8�+�F�F�F�F�Fr
c��d}|�|��}|jdj}|�||d��dS)Nzx = f"abc {x + y} abc"r�zx + y)rMrrGrK�r7r��fstrr>s    r�test_fstringzEndPositionTests.test_fstring0sF��$��� � ��#�#����A��$�����A�u�g�.�.�.�.�.r
c�4�td�����}|�|��}|jdj}|�|dd��|�||jd��|�||jd��dS)Nz�
            f"""Some multi-line text.
            {
            arg_one
            +
            arg_two
            }
            It goes on..."""
        r�rr��arg_one�arg_two)	rr�rMrrGrGrKrrrxs    r�test_fstring_multi_linez(EndPositionTests.test_fstring_multi_line6s�����

�

��U�W�W�	
�� � ��#�#����A��$�����E�1�a�(�(�(����A�u�z�9�5�5�5����A�u�{�I�6�6�6�6�6r
c��td�����}tj|��jd}|�|dd��|�|jddd��dS)NzT
            from x.y.z import (
                a, b, c as c
            )
        rr�r�rMr�)rr�r2r~r�rGr�)r7r�rps   r�test_import_from_multi_linez,EndPositionTests.test_import_from_multi_lineFsw����

�

��U�W�W�		
�
�i��l�l���"�����C��A�&�&�&����C�I�a�L�!�R�0�0�0�0�0r
c�d�d}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.dr�f ()r��g ()r�)rr��maprMrKrGr�r�r��eltsrG)r7�s1�s2�sm�i1�i2r�s       r�test_sliceszEndPositionTests.test_slicesPs"��
��
��
��
�
��U�W�W�		�
��*�R��R�L�9�9�
��B�����B���+�6�6�6����B�����7�7�7����B�����6�6�6����B�����6�6�6����B���
�a� 0� 6��?�?�?����B���
�a� 0� 6��?�?�?����B��1�%�%�%�%�%r
c�R�td�����}|�|��}|�|dd��|�||jd��|�||jd��|�||jjd��dS)NzF
            (1 * 2 + (3 ) +
                 4
            )
        rMr��4z1 * 2 + (3 )�3)rr�rMrGrKrr)r7r�r>s   r�
test_binopzEndPositionTests.test_binopas�����

�

��U�W�W�		
�
�!�!�!�$�$�����E�1�a�(�(�(����A�u�{�C�0�0�0����A�u�z�>�:�:�:����A�u�z�/��5�5�5�5�5r
c��td�����}tj|��jdj}|�|dd��|�||jdd��dS)Nz{
            if (one_condition and
                    (other_condition or yet_another_one)):
                pass
        rrM�,r�z"other_condition or yet_another_one)	rr�r2r~r�r�rGrKr)r7r��bops   rr~zEndPositionTests.test_boolopms�����

�

��U�W�W�		
�
�i��l�l���"�'�����C��B�'�'�'����A�s�z�!�}�@�	B�	B�	B�	B�	Br
c�H�d}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 )r�r�)rr�r�rMrKrG)	r7r�r��s3r��t1�t2�t3�tms	         r�test_tupleszEndPositionTests.test_tuplesxs���
��
��
��
��
�
��U�W�W�		�
�T�.��R��R�0@�A�A���B��B����B��D�)�)�)����B��E�*�*�*����B��J�/�/�/����B��1�%�%�%�%�%r
c��d}|�|��}|�|||��|�||jdd��dS)Nz
func(x. y .z)rzx. y .z)rMrKr�rZs   r�test_attribute_spacesz&EndPositionTests.test_attribute_spaces�sV����� � ��#�#�����A�t�Q�'�'�'����A�t�y��|�Y�7�7�7�7�7r
c��d}tj|��jdj}|�t|��jd��|�||d��d|z}tj|��jdjj}|�t|��jd��|�||d��dS)Nz( ( ( a + b ) ) )rrr(�await )r2r~r�rGrBr4rrK)r7r�r-r�s    r�test_redundant_parenthesisz+EndPositionTests.test_redundant_parenthesis�s������I�a�L�L��a� �&������a���)�7�3�3�3����A�q�'�*�*�*�
��\���I�b�M�M��q�!�'�-������a���)�7�3�3�3����B��7�+�+�+�+�+r
c��d}|D�]\}}|�|��5tj|��jdj}|�t
|��j|��|�|||��d|z}tj|��jdjj}|�t
|��j|��|�|||��ddd��n#1swxYwY��dS)N))z( ( ( a ) ) ) ( )r�)z( ( ( a ) ) ) ( b )r�)z( ( ( a ) ) ) [ b ]r�)z( ( ( a ) ) ) . br�rr�)	rtr2r~r�rGrBr4rrK)r7r�r�r r-r�s      r�(test_trailers_with_redundant_parenthesisz9EndPositionTests.test_trailers_with_redundant_parenthesis�s8��
���	.�	.�D�A�q����a���
.�
.��I�a�L�L�%�a�(�.��� � ��a���!1�1�5�5�5��#�#�A�q�!�,�,�,���\���I�b�M�M�&�q�)�/�5��� � ��a���!1�1�5�5�5��#�#�B��1�-�-�-�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.��	.�	.s�CC=�=D	�D	c��d}d}|�|��}|�|��}|�||jdd��|�||jdd��|�||jdd��|�||jdd	��|�||jdd
��dS)Nz[{}, {1, }, {1, 2,} ]z{a: b, f (): g () ,}rr)r�z{1, }rMz{1, 2,}r�r�)rMrKr�rr)r7r�r��c1�c2s     r�
test_displayszEndPositionTests.test_displays�s���
$��
#��
�
�
�r�
"�
"��
�
�
�r�
"�
"�����B����
�D�1�1�1����B����
�G�4�4�4����B����
�I�6�6�6����B����
�F�3�3�3����B��	�!��f�5�5�5�5�5r
c��td�����}|�|��}|�|dd��|�||jdjd��|�||jjdjd��|�||jjdjdd��|�||jjdj	d��dS)	Nza
            x = [{x for x, y in stuff
                  if cond.x} for stuff in things]
        rM�%r�things�stuffzcond.xro)
rr�rMrGrK�
generators�iter�elt�ifsr*)r7r��cmps   r�test_comprehensionsz$EndPositionTests.test_comprehensions�s�����

�

��U�W�W�	
�����"�"�����C��B�'�'�'����A�s�~�a�0�5�x�@�@�@����A�s�w�1�!�4�9�7�C�C�C����A�s�w�1�!�4�8��;�X�F�F�F����A�s�w�1�!�4�;�V�D�D�D�D�Dr
c�"�td�����}tj|��jd}|�||jdjd��|�||jdjd��dS)NzT
            async def f():
                yield x
                await y
        rzyield xr�zawait y)rr�r2r~r�rKrGrTs   r�test_yield_awaitz!EndPositionTests.test_yield_await�s�����

�

��U�W�W�		
�
�y��|�|� ��#�����A�t�y��|�1�9�=�=�=����A�t�y��|�1�9�=�=�=�=�=r
c��td�����}td�����}|�|��}|�t	j||j��|��dS)NzD
            x = (
                a, b,
            ) + ()
        z;
            (
                a, b,
            )
        )rr�rMrBr2rIr)r7�s_orig�s_tupler>s    r�test_source_segment_multiz*EndPositionTests.test_source_segment_multi�s�����
�
��U�W�W�		�
��
�
��U�W�W�		�
�!�!�&�)�)������/���
�C�C�W�M�M�M�M�Mr
c��td�����}d}tj|��jd}|�tj||jdd���|��dS)Nuf
            class C:
                def fun(self) -> None:
                    "ЖЖЖЖЖ"
        u/    def fun(self) -> None:
        "ЖЖЖЖЖ"rT��padded�rr�r2r~r�rBrI)r7r��s_methodras    r�test_source_segment_paddedz+EndPositionTests.test_source_segment_padded�s�����
�
��U�W�W�		�
*���y�� � �%�a�(������/���	�!��T�R�R�R�!�	#�	#�	#�	#�	#r
c�.�d}tj|��j\}}}}}|�||d��|�||d��|�||d��|�||d��|�||d��dS)Nz!v = 1
w = 1
x = 1

y = 1
z = 1
r$zw = 1r(zy = 1zz = 1)r2r~r�rK)r7r�r-r�rTr�r�s       r�test_source_segment_endingsz,EndPositionTests.test_source_segment_endings�s���7���	�!���)�
��1�a��A����A�q�'�*�*�*����A�q�'�*�*�*����A�q�'�*�*�*����A�q�'�*�*�*����A�q�'�*�*�*�*�*r
c��td�����}d}tj|��jd}|�tj||jdd���|��dS)Nzb
            class C:
              	  def fun(self) -> None:
              	      pass
        z+  	  def fun(self) -> None:
  	      passrTr�r�)r7r�r�ras    r�test_source_segment_tabsz)EndPositionTests.test_source_segment_tabs�sv����

�

��U�W�W�		
�
&���y��|�|� ��#������/��4�9�Q�<��M�M�M�x�X�X�X�X�Xr
c��d}tj|��j\}}}}|`|`|`|`|�tj||����|�tj||����|�tj||����|�tj||����dS)Nzv = 1
w = 1
x = 1

y = 1
)	r2r~r�rrrrrarI)r7r�r-r�rTr�s      r� test_source_segment_missing_infoz1EndPositionTests.test_source_segment_missing_info�s���0���Y�q�\�\�&�
��1�a��
�H�
�L�
�L�
�����#�0��A�6�6�7�7�7����#�0��A�6�6�7�7�7����#�0��A�6�6�7�7�7����#�0��A�6�6�7�7�7�7�7r
N)!rr5rZrGrKrMr�rVr�r\rbrdrirkrvrzr~r�r�r�r~r�r�r�r�r�r�r�r�r�r�r�r�rr
rrErE�s��������
B�B�B�L�L�L�*�*�*�
5�5�5�B�B�B� =�=�=�(�(�(�;�;�;�F�F�F�
1�1�1�1�1�1�*G�*G�*G�X/�/�/�7�7�7� 1�1�1�&�&�&�"
6�
6�
6�	B�	B�	B�
&�
&�
&�8�8�8�,�,�,�.�.�.�"	6�	6�	6�
E�
E�
E�>�>�>�N�N�N�
#�
#�
#�+�+�+�
Y�
Y�
Y�
8�
8�
8�
8�
8r
rEc��eZdZd�ZdS)�NodeVisitorTestsc����G�fd�dtj��}tjtd����}|��}g�t	jd���5}t	jddt��|�|��ddd��n#1swxYwY|�	�gd���|�	d	�|D��gd
���dS)Nc�B��eZdZ�fd�Z�fd�Z�fd�Z�fd�Z�fd�ZdS)�9NodeVisitorTests.test_old_constant_nodes.<locals>.Visitorc�L����|jd|jf��dS)Nr�)rrr��r7r9�logs  �r�	visit_NumzCNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Num	�&����
�
�D�K����7�8�8�8�8�8r
c�L����|jd|jf��dS)Nr��rrr�r�s  �r�	visit_StrzCNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Str		r�r
c�L����|jd|jf��dS)Nr�r�r�s  �r�visit_ByteszENodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Bytes	s&����
�
�D�K��$�&�9�:�:�:�:�:r
c�L����|jd|jf��dS)Nr�)rrrGr�s  �r�visit_NameConstantzLNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_NameConstant
	s&����
�
�D�K����D�E�E�E�E�Er
c�B����|jddf��dS)Nr.)rrr�s  �r�visit_EllipsiszHNodeVisitorTests.test_old_constant_nodes.<locals>.Visitor.visit_Ellipsis	s$����
�
�D�K��S�9�:�:�:�:�:r
N)rr5rZr�r�r�r�r�)r�s�r�Visitorr�	s��������
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
;�
;�
;�
;�
;�
F�
F�
F�
F�
F�
;�
;�
;�
;�
;�
;�
;r
r�z�            i = 42
            f = 4.25
            c = 4.25j
            s = 'string'
            b = b'bytes'
            t = True
            n = None
            e = ...
            T)�record�alwaysr�))r�r�rK)rMr�r�)r�r�r�)rr�r�)rr�r#)r�r�T)r�r�N)r�r.c�6�g|]}t|j����Sr)r�message)r	r�s  rrz<NodeVisitorTests.test_old_constant_nodes.<locals>.<listcomp>*	s ��7�7�7�Q�#�a�i�.�.�7�7�7r
)�+visit_Num is deprecated; add visit_Constantr�r�z+visit_Str is deprecated; add visit_Constantz-visit_Bytes is deprecated; add visit_Constant�4visit_NameConstant is deprecated; add visit_Constantr�z0visit_Ellipsis is deprecated; add visit_Constant)
r2�NodeVisitorr~r�warnings�catch_warnings�filterwarnings�DeprecationWarning�visitrB)r7r�r��visitor�wlogr�s     @r�test_old_constant_nodesz(NodeVisitorTests.test_old_constant_nodes	sl���
	;�
	;�
	;�
	;�
	;�
	;�
	;�c�o�
	;�
	;�
	;��i��	 �	�	�	�	���'�)�)����
�
$�D�
1�
1�
1�	�T��#�H�b�2D�E�E�E��M�M�#����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����	
�	
�	
�		�		�		�	
���7�7�$�7�7�7�	:
�	:
�	:
�		�		�		�		�		s�1B�B�"BN)rr5rZr�rr
rr�r�	s#������.�.�.�.�.r
r�c�&�eZdZd�Zd�Zd�Zd�ZdS)�ModuleStateTestsc��d}d}d}t|||tj���}t|||��}|�|tj��dS)Nzx + 1r}rf)�flags)rur2rvr��types�CodeType)r7rb�filenamer�rzs     r�check_ast_modulez!ModuleStateTests.check_ast_module:	s]���������4��4�s�7H�I�I�I���x��4�0�0�����d�E�N�3�3�3�3�3r
c�4�tjtjdd��5tjd=ddl}tjd=ddl}|���ddd��n#1swxYwY~~tj��|���dS)N�_astr)r�	swap_itemr��modulesr�r�r`)r7�ast1rs   r�test_reload_modulez#ModuleStateTests.test_reload_moduleG	s���
�
�s�{�F�D�
9�
9�	$�	$���F�#�������F�#������!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
��������������s�7A$�$A(�+A(c���t����fd�}tjtjdd��5tjd=tjtd|��5|���|�dtj��ddl	}|�
|���ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc�&���tj|<�Sr�)r�r�)r8r�rY�lazy_mods   �r�	my_importz4ModuleStateTests.test_sys_modules.<locals>.my_import^	s��� (�C�K����Or
r��
__import__r)�objectrr�r�r�r:r�r��assertNotInr�r�)r7r�r�r�s   @r�test_sys_modulesz!ModuleStateTests.test_sys_modulesY	sa����8�8��	�	�	�	�	��
�s�{�F�D�
9�
9�
	.�
	.���F�#��"�8�\�9�E�E�
.�
.��%�%�'�'�'�� � ����5�5�5������
�
�d�H�-�-�-�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.�
	.�
	.�
	.�
	.�
	.�
	.�
	.�
	.�
	.�
	.�
	.�
	.����
	.�
	.�
	.�
	.�
	.�
	.s6�)C�AB9�-C�9B=	�=C�B=	�C�C�Cc�x�td��}tj|��}|�|d��dS)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)rr�run_in_subinterprB)r7rb�ress   r�test_subinterpreterz$ModuleStateTests.test_subinterpretern	sF����
�
��&�&�t�,�,������a� � � � � r
N)rr5rZr�r�r�r�rr
rr�r�6	sP������4�4�4� � � �$.�.�.�*!�!�!�!�!r
r�c��tdkrdStjdd�dgkr�tdftdft
dffD]`\}}t
|dz��|D]7}tj|d|��}t
t|���d	����8t
d
���at
d��t�tj��dS)N�__main__r�z-grdrerfz_results = [rj�,�]zmain())
rr��argvrmrorq�printr2r~r�
SystemExit�unittest�main)�
statementsrl�	statementr�s    rrr�	s����:�����
�x����|��v���",�f�!5��h�7O�",�f�!5�!7�	�	��J���$�~�%�&�&�&�'�
1�
1�	��y��C��6�6���x��~�~�~�~�/�0�0�0�0��#�J�J�J�J�
�h�������M�O�O�O�O�Or
r�)r �r�rr�r�r�r	NN)r �r�rr��)r�rzmodule docstringNr9)r�rr�r�r"r�)r:)r�rZr�r�)r�rr��)r �r�rZr�r
)r�rzfunction docstringN)r�rr�r^�r3�r�r�r�r�r]NN)r:)r�r�r�r^)r�rr�r�)r��r�r�r�rZrN)r:)r�rmr�r�r)r3�r�r�r�r�r�NN)r:)r�r^r�r)r�rr�r�)r3)r�r�r�r�r�)r��r�r�r�r�)r�)r�r^r�r��Ts�r(rN)r:)r�rnr�r�)r�rr��$r3)r�r�r�r
r�r�)r�r�r�r
r�)r�r^r�r
)r�)r�r^r�rnrrr�)r��r��)r�)r�rr�r�rrr��r��r�rr)r:)r�� r�r)r�r)r�)r��r�rrrr)r�rr��)r3�r�r�r�r^r�NN)r:)r�r�r�r)r�rr��G)r)r3�r�rZr�r�r�NN)r3�r�r^r�rQr�NN)r3�r�r�r�r�r�NN)r3)r�rr�r
r
NN)r3�r��#r��'r�NN)r3)r��)r�rKr"NN)r�)r��+r��-rKN)r3)r��1r��7r�NN)r��r�r�r�rmr�N)r��r�r�r�rNNr�)r��r�rr)r��r�r)r �r��:r�r)r�r/zdoc for f()N)r�rr��)r:)r�r�r�r1)r�r�r�r)r��r�r�r�r�rr�r�r�r�r)r�r3)r�)r�rr�rrrr)r�rr�r)r:)r�rr�r)r�r�r�r)r�r�r�r)r�r3rr)r�)r�r�r�r)r�)r�r�r�rrrr)r�rr�r()r:)r�r&r�r()r�r�r�r%)r�r�r��&)r�r�r�r4)r�r�r�r4)r�)r�r�r�rrr)r�r
r�r�)r�)r�r
r�rrr)r��"r�r�r?)r�rr�rm�C)r:)r�r�r�rm)r �r�rZr�r)r�r7zdocstring for class CN)r�rr�r)�Return�r�r�r�r�)r��r�rQr�r�r�NrF�r�rr�r)r��r�rr�rr-)�DelrJ�r��r�rr�r�r-�r/)r�r<r�N�r�rr�r��r�rr�r�)r�r?r]r@)r��r�rMr�r�r�r@r@)r�rr�r)r�rr�rZ�r��r�r�r�rMr]r@)r��r�r�r�rr�r@)r�rr�r�	AnnAssign)r�r?rTr@)r�r�r�r�)r��r�r�r�r�rr�r�rZr�rm)r�rI)r��r�r�r�rmrrrr�)r�r�r�r)r�rZr�r�)r�rIrr)r�)r�r^r�r�)r�)r�rQr�r�rrr)r�rr��)r�r�r�rK)r�rZr�r.)r�r^r�r.)r�rQr�r.)r�)r�rQr�rrr)r�rr�r
)r�)r�rr�r-rr)r�rr�r
)rM�r�rr�r�r>�r)r��r�rr�r�r�Nr�)r�rr�rQ)r�r<r-r@)r�r r-r)r:)r�r�r�rQrT)r�rr-rrW)r�rFr-r)r:)r�rr�rZ)r�rrr�)r�rFr]r)r:)rMrMrMr�)r�rrr�)r�)r�rr�r�r�r)r:)rrMrr�)r�rr�r�)r�rr�r�)r:)r�rMr�r�rZ)r�rr�r�)rI)r�rNrTr)r��r�r�r�r�r�r@)r:)r�r�r�r�)r�rr�r)rI)r��r�r�r�r^r�r)r��r�rr�rn�qr@)r:)r�rr�rr�r�)r�r�r�r)r�)r�r�r�rQr�r)r�)r�r�r�r-r�Nrarb)r��r�r�r�r�r�rrf)r�)r�r�r�r�r�r)ri�r�rr�r�)r��r�r�r�r�r-rNr�)r�rr�r�)r��r�r�r�r�r�Nr�r�)r��r�r�r�r�r-NrsrTr-)r r?�r�r?r�N)r:r	)�Breakr2)r�rr�rn)�Continue)r�r�r�rn)r�rr�r�)r�r<r]r@)r�rr�r@)r�r+r�r)r�rr�r)r�rr�rZ)r�rNr]r@)r�rUr�r@)r�rPr�r)r:r,r )r�rr�rr�)rMrr�r)r�)r�rr�r��Aar)r�)rr�rrZ�Bbrr�)r�rr�r�)r�)r�rr�r�r[r@)r�)r�rr�r�r\r@)r�)r�r�r�rm�Ccr)r�rr�r5r��r�rEr]r)r�rNr�r)r�r+r�r@)r�rWrTr)r�r"r$r@)r�)r�r1r�rrQr)r�)r�rr��!r�r)r�r�r�r^)r�r+r-r@)r�rPr�r@)r�rQrTrr�)r�rEr]r)r�rUr�r@)r��r�rmr�r�rTr)r��r�r�r�rr�rrV)r�r r$r@)r�r!rTr�AsyncFunctionDef)r�rr�r)r �rMr�rMr�)r�rczasync functionN)r�r�r�r�Await)r�r�r�r)r�rS�	somethingr)r�rr�r��AsyncFor)rMr�r�r�)r�)rMr�rMrmr
r@)r�)rMr�rMr�rxr)r �rMrnrMr)r�rgr�N)r �r�r�r�r�)r�rhrMN)r�rrMr�	AsyncWith)rMr�rMr)rI)r�)rMrmrMr�r]r)r�)rMr�rMrr�r@)r �rMrrMr)r�rjr�N)r�rOrMNrH)r�rrMN)r�r`r�Nr�)r�r�r�r�)r�rMr�r�)r�rFr�N)r�rOr�Nr�)r�)rMrMrMr�rxr)r�)rMr^rMrQr�r@)r�rgr�r)rrrr�)r:)rrZrr�)r��r�r�r�r��deco1r)rMr�rMr�)r�)rMr�rMr��deco2r)r�r�r�rZ)r�)r�r�r�r��deco3r)r�rhr�N)rrrrn)r:)rrQrrn)rMrrMr�)r:)rMrZrMr�)r�r�r�rn)r��r�r�r�r�decor)r�rr�rn)r�rr]r)r�r`r]r@)r�rar�r)r�rk)r�)r�r�r�rr^r�rr�r)r rT)�	NamedExpr)r�r�r�r�rD)r�rr�N)r�rr�r)�r3r`r�NN)r3r:r�NN)r3rQr
NN)r:)r�r�r�rrr)r3rQr�NN)r3�r�rr�r�r
NN)r:)r�rr�r
)r�rr�r%)r3)r�rr�rr�NN)r:r#�r�rr�N)r3r!r�NN)r3)r�rnr�rr�NN)rt�r�rWrMN)r�rsrN)r3r"r�NN)r�)r�r-r�rrNru)r�rr�r.)r:)r�rr�r.)r�rr�rK)r3)r�r
r�r$r�NN)r:)r�r4r�rK)r�rr�rf)r3)r�r1r�r_r�NN)r:)r�rr�rfr.)r rB)rrBrXrM�r�rCrMN)r.r
r.r|)r}�r�r?r]r)r�rr�r)r.)rr;rwrM�r�r<r�r)r.)rr;)r!)r�r<r-rr�)r�rr�r�)r�rNN�r�rCr�N�r�r<rMN�r�rr�rM)r�roNN)r�rrr�)r�)rMr�rMr�r�N)r�)rr�rr�rMN)r�r`r�r)r�rar�rrk)r�rCr]rrx)r�r+r]r@)r�rPr�r@)r�rQr�r)r�rr�r�r2)r�r!r�r@)r�)r�rr�rr�rr�rX)�Lt�r�rr�N)r�r?r"r)ryrz)r�rJ)r�r+r�rr)rC)r�r�r�rZr�r})rCrN)r�r:r
r)r�rMr�rZ)r�r�r�rZ)r�r<rN)r�rUr�N)r�r�r�rQ)r�rr]r@)r�rPr�r)r.)r�r{r�N)r.)r�rTr�N)r.�r�rBrwr�r)r.)r�rLrw)r�)r�rMr�r)r�rCr�r)r�r<r�rNr)r.)r�r?r-r))r�rEr�N)r�rFrMN)r�rNr�N)rXrv)r�r<r�N)r�rA)r�r;r~r�rr�r)r�r9)r�)r�r�r�r�)r�rr]rr�r)r�)r�rmr�rQ)r�r`r�N)r�r!rMNNr) r2r�r1rnr�r�r�rr�r^�textwraprr�rrrmrorq�TestCaser0r�r'rrEr�r�r�rrrnrprrrr
r�<module>r�s /��
�
�
�
�����
�
�
�
�����	�	�	�	�
�
�
�
��������������������������������&S�S�S�
�r
���F�F�F�
�VO	�O	�O	�O	�O	��!�O	�O	�O	�dY=�Y=�Y=�Y=�Y=�h�'�Y=�Y=�Y=�xk6�k6�k6�k6�k6��)�k6�k6�k6�\B'�B'�B'�B'�B'�H�%�B'�B'�B'�JV8�V8�V8�V8�V8�x�(�V8�V8�V8�p
/�/�/�/�/�x�(�/�/�/�d	��N!�N!�N!�N!�N!�x�(�N!�N!���N!�b
�
�
� N�	�J�K�R�P�N�	�Z�[�]_�`�N�
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`w�_x�z|�C�EI�
J�K�MO�P�N�
�]�M�3��b�"�d�B�PR�TX�Z\�0]�aq�`r�tv�x|�~B�
C�D�FH�I�	N�

�]�M�3��b�Ci�Bj�lp�rt�vx�z~�AC�1D�G_�F`�bd�fj�lp�
q�r�tv�w�N�
�]�M�3��b�Ci�Bj�lp�rt�vx�z~�Be�Af�1g�jB�iC�EG�IM�OS�
T�U�WY�Z�
N�
�]�M�3��b�"�Fp�rt�vx�z~�AC�1D�G_�F`�bd�fj�lp�
q�r�tv�w�N�
�]�M�3��b�"�G~�@B�DF�HL�NP�1Q�Tl�Sm�oq�sw�y}�
~��AC�D�N�
�]�M�3��b�"�u�m�]c�fo�q�CN�P^�`L�OV�Xf�iS�V`�bp�rz�|@�UA�hB�DM�NN�PY�BZ�\e�ff�hl�Gm�oq�su�w{�}�1@�C[�B\�^`�bf�hl�
m�n�pr�s�N�
�]�M�3��b�"�u�m�]c�fo�q�CN�P^�`L�OV�Xf�iS�Uf�hg�ir�Ns�u~�B�AJ�fK�MQ�GR�TV�XZ�\`�bd�1e�h@�gA�CE�GK�MQ�
R�S�UW�X�N�
�]�M�3��b�"�d�B�PR�UA�CE�1F�Ia�Hb�df�hl�nr�
s�t�vx�y�N�
�]�M�3��b�CR�CR�CR�T�Bj�Ak�nT�mU�WD�Gl�nV�Y_�ao�qs�u~�X�B	H	�J	X	�Z	\	�^	`	�A	a	�Fb	�1c	�f	q
�e	r
�t
v
�x
|
�~
B�
C�D�FH�I�N�
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`x�_y�{}�AL�N\�^J�MT�Vd�gx�fy�{D�LE�GP�@Q�SW�
X�Y�[]�^�N�
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`x�_y�{}�AL�N\�^J�MT�Vd�gQ�Sd�fe�gp�Lq�s|�@}�C�
D�E�GI�J�N�
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`x�_y�{}�AL�N\�^J�MT�Vd�gQ�T]�_m�p{�}K�My�|C�ES�V@�CM�O]�_g�im�Bn�Uo�qz�{{�}F�oG�IR�SS�fT�V_�L`�bk�@l�nr�
s�t�vx�y�N� 
�Z���R��6M�5N�PR�S�T�VX�Y�!N�"
�Z���R��7J�6K�MO�
P�Q�SU�V�#N�$
�Z���.Z�-[�]_�bz�a{�}�
A�B�DF�G�%N�&
�]�M�3��b�"�d�B�PR�TX�Z\�0]�aa�`b�df�hl�nr�
s�t�vx�y�'N�(
�X�|�&K�%L�M�N�PR�S�)N�*
�X�|�&M�%N�Ps�uy�z�{�}�A�+N�,
�X�|�w��?f�iP�?Q�S]�'^�&_�aG�IM�
N�O�QS�T�-N�.
�X�|�w��?f�iP�?Q�S]�'^�&_�aG�IM�
N�O�QS�T�/N�0
�X�|�v�|�>e�hO�>P�R\�']�&^�`F�HL�
M�N�PR�S�1N�2
�[�-�)P�S^�`m�pZ�]d�fs�vF�uG�IR�\S�U^�S_�ae�gh�
i�j�ln�o�3N�4
�[�-�)P�S^�`m�pZ�]d�fs�v_�ar�us�u~�\�AJ�SK�MQ�ST�
U�V�XZ�[�5N�6
�[�-�)P�S^�`m�pZ�]d�fs�v_�bk�m{�~I�KY�[G�JQ�Sa�dN�Q[�]k�mu�w{�P|�c}�H�II�KT�}U�W`�aa�ub�dm�\n�py�Sz�|@�BC�
D�E�GI�J�7N�8
��A�CE�F�9N�:
�U�M�#J�Ls�wO�vP�RT�VZ�
[�\�^`�a�;N�<
�W�m�%K�Ne�Mf�hj�k�l�np�q�=N�>
�T�<�!G�J`�Ia�ce�f�g�ik�l�?N�@
�T�<�!G�J`�Ia�ei�kw�z`�cy�bz�|~�e�d@�
A�B�DF�G�AN�B
�T�<�!G�J`�Ia�ei�kw�z`�cy�bz�}S�|T�eU�dV�
W�X�Z\�]�CN�D
�V�]�&E�%F�Ia�Hb�dh�
i�j�ln�o�EN�F
�V�]�&E�Gh�%i�lD�kE�GK�
L�M�OQ�R�GN�H
�W�m�f�m�=l�p\�o]�_a�&b�dh�
i�j�ln�o�IN�J
�U�L�#9�":�o�|�^M�OS�Vl�Um�>n�=o�qs�uw�
x�y�{}�~�KN�L
�U�L�#9�":�B��E[�D\�]�^�`b�c�MN�N
�Y��'=�&>�/�S_�bQ�SW�Zp�Yq�Br�As�uw�y{�
|�}�A�B�ON�P
�R�S�UW�X�QN�R
�X�}�'L�&M�N�O�QS�T�SN�T
�\�=�%�2V�1W�YZ�[�\�^`�a�UN�V
�X�|�c�U�+�,�b�1�WN�X
�G�H�"�M�YN�Z
�"�#�R�(�[N�\
�U�M�#J�Ls�wP�vQ�SU�W[�
\�]�_a�b�]N�^
�U�M�#J�Ls�wS�vT�VX�Z^�
_�`�bd�e�_N�`
�U�M�G�\�<c�fM�<N�PZ�$[�]E�H`�Ga�ce�gk�
l�m�oq�r�aN�b
�U�M�G�\�<c�fM�<N�PZ�$[�]E�H`�Ga�ce�gk�
l�m�oq�r�cN�d
�U�M�F�L�;b�eL�;M�OY�$Z�\D�G_�F`�bd�fj�
k�l�np�q�eN�f
�V�]�^�]�W�l�^E�Gn�]o�qz�E{�N�QX�Zg�jR�T~�i�AK�PL�Ny�{}�@�~A�}B�%C�
D�E�GI�J�gN�h
�V�]�Z��@f�iO�Sb�dM�Ow�y{�}~�R�BQ�S|�~f�iQ�hR�TU�AV�QW�%X�
Y�Z�\^�_�iN�j
�V�]�Z��@f�iO�Sb�el�n|�h�jS�~T�V`�da�cK�MO�QR�RS�QT�%U�
V�W�Y[�\�kN�l
�V�]�Y�
�?e�ix�{b�dL�Ow�Nx�z{�i|�h}�%~�
�@�BD�E�mN�n
�V�]�Y�
�?e�ix�|C�ER�U|�~f�Tg�is�{t�v^�`b�de�if�hg�%h�
i�j�ln�o�oN�p
�
���k�2�r�4�QS�UW�Y]�_a�5b�fr�u{�}J�MT�Vc�fl�n{�}l�np�rt�eu�Lv�tw�ex�z|�~B�DH�
I�J�LN�O�qN�r
�
��s�[�"�b�$�PR�TV�X\�^`�4a�eo�q}�@i�kS�VU�UV�YT�XU�W[�e\�d]�_a�cg�im�
n�o�qs�t�sN�t
�
���k�2�r�4�QS�UW�Y]�_a�5b�fq�tA�De�Cf�ih�hi�ko�fp�eq�su�w{�}A�
B�C�EG�H�uN�v
�V�]�V�]�T�Ch�<i�ms�vB�Eh�Di�lO�kP�mQ�Sx�ly�%z�
{�|�~@�A�wN�x
�V�]�U�M�Y��W\�^j�nQ�Sv�mw�Wx�zC�=D�Fk�<l�%m�
n�o�qs�t�yN�z
�
���k�2�r�4�QS�UW�Y]�_a�5b�fl�n{�I�KX�Z@�DS�U~�@h�jl�no�Cp�Bq�~r�fs�et�vx�z~�@D�
E�F�HJ�K�{N�|
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`w�_x�|f�io�q}�i�km�oq�hr�u{�}I�Ku�x[�w\�^`�ta�{b�dh�jn�
o�p�rt�u�}N�~
�
���k�2�r�4�QS�UW�Y]�_a�5b�e}�d~�Bl�ou�wC�Eo�qs�uw�nx�{A�CO�Q{�~a�}b�df�zg�Ah�jn�pt�
u�v�xz�{�N�@
�Z���R��6M�5N�Q{�E�GS�U�AC�EG�~H�KQ�S_�aK�Nq�Mr�tv�Jw�Qx�
y�z�|~��AN�B
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`w�_x�}C�ER�T}�AO�Q^�`F�JY�[D�Fn�pr�tu�Iv�Hw�@x�y�{}�|~�{�AE�GK�
L�M�OQ�R�CN�D
�]�M�3��b�"�d�B�PR�TX�Z\�0]�`w�_x�||�{}�C�EI�
J�K�MO�P�EN�F
�
N�O�QS�T�GN�H
�]�M�3��?e�>f�hj�lp�rt�vx�z~�AC�1D�G_�F`�bd�fj�lp�
q�r�tv�w�IN�J
�]�M�3��?e�>f�ig�ig�ig�im�oq�su�w{�}�1@�C[�B\�^`�bf�hl�
m�n�pr�s�KN�L
�]�M�3��?e�>f�jR�iS�UY�\D�Fn�[o�rv�x|�q}�C�EG�1H�Kc�Jd�fh�jn�pt�
u�v�xz�{�MN�N
�]�M�3��?e�>f�jR�iS�UY�\D�Fn�[o�rv�x|�q}�l�np�1q�tL�sM�OQ�SW�Y]�
^�_�ac�d�ON�P
�]�M�3��?e�>f�hj�lp�rt�vx�z~�Be�Af�1g�jB�iC�EG�IM�OS�
T�U�WY�Z�QN�R
�]�M�3��?e�>f�jR�T|�i}�C�EG�IK�MQ�SF�SF�SF�1G�Jb�Ic�eg�im�os�
t�u�wy�z�SN�T
�]�M�3��?e�>f�jR�iS�UY�\D�[E�Hm�Gn�pt�wZ�\A�vB�1C�F^�E_�ac�ei�ko�
p�q�su�v�UN�V
�]�M�3��?e�>f�jR�iS�UY�\D�[E�HL�GM�OS�Vy�{`�Ua�1b�e}�d~�@B�DH�JN�
O�P�RT�U�WN�X
�]�M�3��?e�>f�jR�iS�UY�\D�[E�Hm�Gn�p]�`C�Ej�_k�1l�oG�nH�JL�NR�TX�
Y�Z�\^�_�YN�Z
�]�M�3��?e�>f�jR�iS�UY�\D�[E�HL�GM�O|�b�dI�~J�1K�Nf�Mg�ik�mq�sw�
x�y�{}�~�[N��`�U�V�W���$�6�$�
��,��3Y�\B�3C�D�E�$�B�$�\�	$�
��-�+�r�2�t�R��T�SU�)V�X�A�B�$����'J�&K�Nq�Mr�s�t�
$����b�"�-�.�$���|�&L�%M�N�O�$����'J�&K�Ns�Mt�u�v�$��
�M�+Q�Ud�gN�Px�{c�zd�fg�Uh�Ti�j�k�$���
�/U�Yh�kR�T|�g�~h�jk�Yl�Xm�n�o�$��
�M�G�\�Dj�mS�DT�V_�,`�ds�v}�M�Py�{d�Oe�gq�ur�t\�^`�bc�cd�be�f�g�$��
�M�G�\�Dj�mS�DT�V_�,`�ds�v}�M�Py�{d�Oe�gq�ur�t\�^`�bc�cd�be�f�g�$��
�M�G�\�Dj�mS�DT�V_�,`�ds�v|�~L�Ox�zc�Nd�fp�uq�s[�]_�ab�cc�bd�e�f�$��	�=�7�L�Ci�lR�CS�U^�+_�cr�u|�~L�Ox�zc�Nd�fp�tq�s[�]_�ab�bc�ad�e�f�$� �	�=�7�L�Ci�lR�CS�U^�+_�cr�u|�~L�Ox�zc�Nd�fp�tq�s[�]_�ab�bc�ad�e�f�!$�"�	�=�7�L�Ci�lR�CS�U^�+_�cr�u{�}K�Nw�yb�Mc�eo�tp�rZ�\^�`a�bb�ac�d�e�#$�$��
���Hn�qW�HX�Zc�0d�hw�zA�CQ�T}�h�Si�ku�yv�x`�bd�fg�gh�fi�j�k�%$�&��
���Hn�qW�HX�Zc�0d�hw�zA�CQ�T}�h�Si�ku�yv�x`�bd�fg�gh�fi�j�k�'$�(��
���Hn�qW�HX�Zc�0d�hw�z@�BP�S|�~g�Rh�jt�yu�w_�ac�ef�gg�fh�i�j�)$�*�	�<�)L�w�X_�N`�dG�Il�cm�n�o�+$�,��
�'M�Pl�Pl�Pl�or�t�n@�A�B�-$�.��
�'M�QZ�\h�kq�s�Cf�hK�BL�NW�kX�Zc�Qd�Pe�gi�j�k�/$�0��
�'M�Q_�an�qW�[j�lS�U}�A�CD�ZE�YF�QG�PH�JL�M�N�1$�25�3$�4;�5$�6d�7$�8N�9$�:7�;$�<���'V�'V�'V�Xa�b�c�=$�>���b�)�4�5�?$�@���(W�(W�(W�Yb�c�d�A$�B���(W�(W�(W�Yb�c�d�C$�D���r�9�5�6�E$�F��
�(U�XD�WE�GI�J�K�G$��J������r