Current File : //usr/local/apps/python3/lib/python3.11/lib2to3/tests/__pycache__/test_parser.cpython-311.opt-1.pyc
�

�KeW\��`�dZddlmZddlmZmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZddlmZdd	lmZdd
lmZGd�dej��ZGd
�dej��ZGd�dej��ZGd�de��ZGd�de��ZGd�de��ZGd�de��Z Gd�de��Z!Gd�de��Z"Gd�de��Z#Gd�d e��Z$Gd!�d"e��Z%Gd#�d$e��Z&Gd%�d&e��Z'Gd'�d(e��Z(Gd)�d*e��Z)Gd+�d,ej��Z*Gd-�d.e��Z+Gd/�d0e��Z,Gd1�d2e��Z-Gd3�d4ej��Z.d5�Z/e0d6krej1��dSdS)7aFTest suite for 2to3's parser and grammar files.

This is the place to add tests for changes to 2to3's grammar, such as those
merging the grammars for Python 2 and 3. In addition to specific tests for
parts of the grammar we've changed, we also make sure we can parse the
test_grammar.py files from both Python 2 and Python 3.
�)�support)�driver�driver_no_print_statement�N)r)�tokenize�)�
ParseError)�python_symbolsc��eZdZd�ZdS)�
TestDriverc��d}tj|��}|�|jdjdjt
j��|�|jdjdjt
j��dS)Nzprint 1
print 2
rr)r�parse_string�assertEqual�children�type�syms�
print_stmt)�self�s�ts   �C/usr/local/apps/python3/lib/python3.11/lib2to3/tests/test_parser.py�
test_formfeedzTestDriver.test_formfeed#so��(�����"�"�������A��/��2�7���I�I�I������A��/��2�7���I�I�I�I�I�N)�__name__�
__module__�__qualname__r�rrrr!s(������J�J�J�J�Jrrc��eZdZd�Zd�Zejejdud��ejej	dvd��d�����Z
d�ZdS)	�TestPgen2Cachingc�H�tjtjdd���dS)NFT��save�force)�pgen2_driver�load_grammarr�grammar_path�rs r�test_load_grammar_from_txt_filez0TestPgen2Caching.test_load_grammar_from_txt_file+s#���!�'�"6�U�$�O�O�O�O�O�Orc�d�tj��}	tj�|tj�tj����}tj	tj|��tj|��}tj|dd���|�
tj�|����tj|��tj|dd���tj|��dS#tj|��wxYw)NTr!F)�tempfile�mkdtemp�os�path�join�basenamerr&�shutil�copyr$�_generate_pickle_namer%�
assertTrue�exists�unlink�rmtree)r�tmpdir�grammar_copy�pickle_names    r�test_load_grammar_from_picklez.TestPgen2Caching.test_load_grammar_from_pickle.s����!�#�#��	"��7�<�<��B�G�,�,�W�-A�B�B�D�D�L��K��,�l�;�;�;�&�<�\�J�J�K��%�l��T�J�J�J�J��O�O�B�G�N�N�;�7�7�8�8�8��I�l�#�#�#��%�l��e�L�L�L�L��M�&�!�!�!�!�!��F�M�&�!�!�!�!���s�C.D�D/Nzsys.executable required>�wasi�
emscriptenzrequires working subprocessc�\�tj��}tj�|d��}	tj|��tj�tj��}tj�||��}tj�||��}tj
tj|��tj
tj|��tj|��}tj|��}|�
||��tj|dd���|�tj�|����t#tj��}d|d<d|�d�}	t&jdd	|	g}
t+j|
|�
��|�tj�|����t/|d��5}t/|d��5}|�|���|���d�
��ddd��n#1swxYwYddd��n#1swxYwYtj|��dS#tj|��wxYw)N�subdirTr!�random�PYTHONHASHSEEDzL
from lib2to3.pgen2 import driver as pgen2_driver
pgen2_driver.load_grammar(z%, save=True, force=True)
            z#-Wignore:lib2to3:DeprecationWarningz-c)�env�rbzGGrammar caches generated using different hash seeds were not identical.)�msg)r*r+r,r-r.�mkdirr/rr&r0r1r$r2�assertNotEqualr%r3r4�dict�environ�sys�
executable�
subprocess�
check_call�openr�readr6)
rr7�	tmpsubdir�grammar_baser8�grammar_sub_copyr9�pickle_sub_name�sub_env�code�cmd�
pickle_f_1�
pickle_f_2s
             r�!test_load_grammar_from_subprocessz2TestPgen2Caching.test_load_grammar_from_subprocess@s���
�!�#�#���G�L�L���2�2�	�%	"��H�Y�����7�+�+�G�,@�A�A�L��7�<�<���=�=�L�!�w�|�|�I�|�D�D���K��,�l�;�;�;��K��,�.>�?�?�?�&�<�\�J�J�K�*�@�%�'�'�O�����_�=�=�=�
�%�l��T�J�J�J�J��O�O�B�G�N�N�;�7�7�8�8�8��2�:�&�&�G�(0�G�$�%�%�$�#�#�&�D��>�8����C�
�!�3�G�4�4�4�4��O�O�B�G�N�N�?�;�;�<�<�<��k�4�(�(�
,�J���$�/�/�
,�3=�� � ��O�O�%�%�z���'8�'8�+�!�,�,�,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�
�M�&�!�!�!�!�!��F�M�&�!�!�!�!���sT�GJ�I4�=I�I4�I!	�!I4�$I!	�%I4�(J�4I8�8J�;I8�<J�J+c�<���tdz�Gd�d���G��fd�d��}|��tj�<|�tjtj���t
j�d��}|�|j	d��dS)Nz
.load_testc��eZdZd�ZdS)�=TestPgen2Caching.test_load_packaged_grammar.<locals>.MyLoaderc�.�tjddi��S)N�elephant�)�pickle�dumps)r�wheres  r�get_datazFTestPgen2Caching.test_load_packaged_grammar.<locals>.MyLoader.get_dataqs���|�Z��$4�5�5�5rN)rrrrarrr�MyLoaderrZps#������
6�
6�
6�
6�
6rrbc�Z��eZdZdZej�������ZdS)�=TestPgen2Caching.test_load_packaged_grammar.<locals>.MyModule�parsertestmoduleN)rrr�__file__�	importlib�util�spec_from_loader�__spec__)rb�modnames��r�MyModulerdss1�������)�H� �~�6�6�w���
�
�K�K�H�H�HrrlzGrammar.txtr])
rrH�modules�
addCleanup�operator�delitemr$�load_packaged_grammarrr\)rrl�grbrks   @@r�test_load_packaged_grammarz+TestPgen2Caching.test_load_packaged_grammarns������\�)��	6�	6�	6�	6�	6�	6�	6�	6�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L� (�x�z�z���G������(�#�+�w�?�?�?��.�w�
�F�F�������R�(�(�(�(�(r)rrrr(r:�unittest�skipIfrHrI�platformrWrsrrrrr*s�������P�P�P�"�"�"�$�X�_�S�^�t�+�-F�G�G��X�_���.�.�0M���("�("���H�G�("�T)�)�)�)�)rrc��eZdZd�Zd�ZdS)�GrammarTestc�.�tj|��dS)N)rr�rrSs  r�validatezGrammarTest.validate}s����T�"�"�"�"�"rc�n�	|�|��td���#t$rYdSwxYw)Nz Syntax shouldn't have been valid)r{�AssertionErrorr	rzs  r�invalid_syntaxzGrammarTest.invalid_syntax�sO��	E��M�M�$����!�!C�D�D�D���	�	�	��D�D�	���s�&�
4�4N)rrrr{r~rrrrxrx|s7������#�#�#�E�E�E�E�Errxc��eZdZd�ZdS)�TestMatrixMultiplicationc�Z�|�d��|�d��dS)Nza @ bza @= b�r{r's r�#test_matrix_multiplication_operatorz<TestMatrixMultiplication.test_matrix_multiplication_operator�s,���
�
�g�����
�
�h�����rN)rrrr�rrrr�r��s#������ � � � � rr�c��eZdZd�ZdS)�
TestYieldFromc��|�d��|�d��|�d��dS)Nzyield from xz(yield from x) + yz
yield from�r{r~r's r�test_yield_fromzTestYieldFrom.test_yield_from�sA���
�
�n�%�%�%��
�
�*�+�+�+����L�)�)�)�)�)rN)rrrr�rrrr�r��s#������*�*�*�*�*rr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestAsyncAwaitc���|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d��dS)NzLasync def foo():
                             await x
                      zYasync def foo():
                             [i async for i in b]
                      z�async def foo():
                             {i for i in b
                                async for i in a if await i
                                  for b in i}
                      zdasync def foo():
                             [await i for i in b if await c]
                      zYasync def foo():
                             [ i for i in b if c]
                      zhasync def foo():

            def foo(): pass

            def foo(): pass

            await x
        zasync def foo(): return await azTdef foo():
            def foo(): pass
            async def foo(): await x
        zawait xz5def foo():
                                   await xzedef foo():
            def foo(): pass
            async def foo(): pass
            await x
        r�r's r�test_await_exprzTestAsyncAwait.test_await_expr�s:���
�
��	�	�	�	
�
�
��	�	�	�	
�
�
��	�	�	�	
�
�
��	�	�	�	
�
�
��	�	�	�	
�
�
��	
�	
�	
�	
�
�
�;�<�<�<��
�
��	
�	
�	
�
	
���I�&�&�&����.�	/�	/�	/�	
����	
�	
�	
�	
�	
rc��|�d��|�d��|�d��dS)Nz	async = 1z	await = 1zdef async(): passr�r's r�test_async_varzTestAsyncAwait.test_async_var�s?���
�
�o�&�&�&��
�
�o�&�&�&��
�
�-�.�.�.�.�.rc�0�|�d��dS)NzDasync def foo():
                             async for a in b: passr�r's r�test_async_forzTestAsyncAwait.test_async_for�s'���
�
�7�	8�	8�	8�	8�	8rc�Z�|�d��|�d��dS)Nz@async def foo():
                             async with a: passz@def foo():
                                   async with a: passr�r's r�test_async_withzTestAsyncAwait.test_async_with�sF���
�
�3�	4�	4�	4�	
���9�	:�	:�	:�	:�	:rc�Z�|�d��|�d��dS)NzLasync def foo():
                   return (i * 2 async for i in arange(42))zFdef foo():
                   return (i * 2 async for i in arange(42))r�r's r�test_async_generatorz#TestAsyncAwait.test_async_generator�sD���
�
�
?�	
�	
�	
�	
�
�
�
?�	
�	
�	
�	
�	
rN)rrrr�r�r�r�r�rrrr�r��s`������/
�/
�/
�b/�/�/�
8�8�8�:�:�:�
�
�
�
�
rr�c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�TestRaiseChangesc�0�|�d��dS)N�raiser�r's r�test_2x_style_1z TestRaiseChanges.test_2x_style_1�s���
�
�g�����rc�0�|�d��dS)Nz
raise E, Vr�r's r�test_2x_style_2z TestRaiseChanges.test_2x_style_2�����
�
�l�#�#�#�#�#rc�0�|�d��dS)Nz
raise E, V, Tr�r's r�test_2x_style_3z TestRaiseChanges.test_2x_style_3�����
�
�o�&�&�&�&�&rc�0�|�d��dS)Nzraise E, V, T, Z�r~r's r�test_2x_style_invalid_1z(TestRaiseChanges.test_2x_style_invalid_1�s�����.�/�/�/�/�/rc�0�|�d��dS)Nzraise E1 from E2r�r's r�
test_3x_stylezTestRaiseChanges.test_3x_style�����
�
�(�)�)�)�)�)rc�0�|�d��dS)Nzraise E, V from E1r�r's r�test_3x_style_invalid_1z(TestRaiseChanges.test_3x_style_invalid_1�s�����0�1�1�1�1�1rc�0�|�d��dS)Nzraise E from E1, E2r�r's r�test_3x_style_invalid_2z(TestRaiseChanges.test_3x_style_invalid_2�s�����1�2�2�2�2�2rc�0�|�d��dS)Nzraise from E1, E2r�r's r�test_3x_style_invalid_3z(TestRaiseChanges.test_3x_style_invalid_3�s�����/�0�0�0�0�0rc�0�|�d��dS)Nzraise E fromr�r's r�test_3x_style_invalid_4z(TestRaiseChanges.test_3x_style_invalid_4�s�����N�+�+�+�+�+rN)rrrr�r�r�r�r�r�r�r�r�rrrr�r��s����������$�$�$�'�'�'�0�0�0�*�*�*�2�2�2�3�3�3�1�1�1�,�,�,�,�,rr�c���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�Zd�Zd�Z d�Z!d �Z"d!S)"�TestUnpackingGeneralizationsc�0�|�d��dS)Nzfunc(1, *(2, 3), 4)r�r's r�test_mid_positional_starz5TestUnpackingGeneralizations.test_mid_positional_star����
�
�/�0�0�0�0�0rc�0�|�d��dS)Nz,func(**{'eggs':'scrambled', 'spam':'fried'})r�r's r�test_double_star_dict_literalz:TestUnpackingGeneralizations.test_double_star_dict_literals���
�
�H�I�I�I�I�Irc�0�|�d��dS)Nz*func(spam='fried', **{'eggs':'scrambled'})r�r's r�,test_double_star_dict_literal_after_keywordszITestUnpackingGeneralizations.test_double_star_dict_literal_after_keywords
s���
�
�F�G�G�G�G�Grc�Z�|�d��|�d��dS)Nzfunc(**{'a':2} or {})zfunc(**() or {})r�r's r�test_double_star_expressionz8TestUnpackingGeneralizations.test_double_star_expression
s.���
�
�1�2�2�2��
�
�,�-�-�-�-�-rc�0�|�d��dS)Nzfunc(*[] or [2])r�r's r�test_star_expressionz1TestUnpackingGeneralizations.test_star_expressions���
�
�,�-�-�-�-�-rc�0�|�d��dS)Nz[*{2}, 3, *[4]]r�r's r�test_list_displayz.TestUnpackingGeneralizations.test_list_display����
�
�+�,�,�,�,�,rc�0�|�d��dS)Nz{*{2}, 3, *[4]}r�r's r�test_set_displayz-TestUnpackingGeneralizations.test_set_displayr�rc�0�|�d��dS)Nz{**{}}r�r's r�test_dict_display_1z0TestUnpackingGeneralizations.test_dict_display_1r�rc�0�|�d��dS)Nz{**{}, 3:4, **{5:6, 7:8}}r�r's r�test_dict_display_2z0TestUnpackingGeneralizations.test_dict_display_2s���
�
�5�6�6�6�6�6rc�0�|�d��dS)Nzfunc(* [] or [1])r�r's r�test_complex_star_expressionz9TestUnpackingGeneralizations.test_complex_star_expression s���
�
�)�*�*�*�*�*rc�0�|�d��dS)Nz5func(**{1: 3} if False else {x: x for x in range(3)})r�r's r�#test_complex_double_star_expressionz@TestUnpackingGeneralizations.test_complex_double_star_expression#s���
�
�M�N�N�N�N�Nrc�0�|�d��dS)Nzf(a, *b, *c, d)r�r's r�test_argument_unpacking_1z6TestUnpackingGeneralizations.test_argument_unpacking_1&r�rc�0�|�d��dS)Nzf(**a, **b)r�r's r�test_argument_unpacking_2z6TestUnpackingGeneralizations.test_argument_unpacking_2)����
�
�'�(�(�(�(�(rc�0�|�d��dS)Nzf(2, *a, *b, **b, **c, **d)r�r's r�test_argument_unpacking_3z6TestUnpackingGeneralizations.test_argument_unpacking_3,����
�
�7�8�8�8�8�8rc�Z�|�d��|�d��dS)Nzdef f(a, b): call(a, b)zdef f(a, b,): call(a, b,)r�r's r�test_trailing_commas_1z3TestUnpackingGeneralizations.test_trailing_commas_1/�.���
�
�/�0�0�0��
�
�1�2�2�2�2�2rc�Z�|�d��|�d��dS)Nzdef f(a, *b): call(a, *b)zdef f(a, *b,): call(a, *b,)r�r's r�test_trailing_commas_2z3TestUnpackingGeneralizations.test_trailing_commas_23s.���
�
�1�2�2�2��
�
�3�4�4�4�4�4rc�Z�|�d��|�d��dS)Nzdef f(a, b=1): call(a, b=1)zdef f(a, b=1,): call(a, b=1,)r�r's r�test_trailing_commas_3z3TestUnpackingGeneralizations.test_trailing_commas_37�.���
�
�3�4�4�4��
�
�5�6�6�6�6�6rc�Z�|�d��|�d��dS)Nzdef f(a, **b): call(a, **b)zdef f(a, **b,): call(a, **b,)r�r's r�test_trailing_commas_4z3TestUnpackingGeneralizations.test_trailing_commas_4;r�rc�Z�|�d��|�d��dS)Nzdef f(*a, b=1): call(*a, b=1)zdef f(*a, b=1,): call(*a, b=1,)r�r's r�test_trailing_commas_5z3TestUnpackingGeneralizations.test_trailing_commas_5?�.���
�
�5�6�6�6��
�
�7�8�8�8�8�8rc�Z�|�d��|�d��dS)Nzdef f(*a, **b): call(*a, **b)zdef f(*a, **b,): call(*a, **b,)r�r's r�test_trailing_commas_6z3TestUnpackingGeneralizations.test_trailing_commas_6Cr�rc�Z�|�d��|�d��dS)Nzdef f(*, b=1): call(*b)zdef f(*, b=1,): call(*b,)r�r's r�test_trailing_commas_7z3TestUnpackingGeneralizations.test_trailing_commas_7Gr�rc�Z�|�d��|�d��dS)Nzdef f(a=1, b=2): call(a=1, b=2)z!def f(a=1, b=2,): call(a=1, b=2,)r�r's r�test_trailing_commas_8z3TestUnpackingGeneralizations.test_trailing_commas_8K�.���
�
�7�8�8�8��
�
�9�:�:�:�:�:rc�Z�|�d��|�d��dS)Nzdef f(a=1, **b): call(a=1, **b)z!def f(a=1, **b,): call(a=1, **b,)r�r's r�test_trailing_commas_9z3TestUnpackingGeneralizations.test_trailing_commas_9Or�rc�Z�|�d��|�d��dS)Nzf = lambda a, b: call(a, b)zf = lambda a, b,: call(a, b,)r�r's r�test_trailing_commas_lambda_1z:TestUnpackingGeneralizations.test_trailing_commas_lambda_1Sr�rc�Z�|�d��|�d��dS)Nzf = lambda a, *b: call(a, *b)zf = lambda a, *b,: call(a, *b,)r�r's r�test_trailing_commas_lambda_2z:TestUnpackingGeneralizations.test_trailing_commas_lambda_2Wr�rc�Z�|�d��|�d��dS)Nzf = lambda a, b=1: call(a, b=1)z!f = lambda a, b=1,: call(a, b=1,)r�r's r�test_trailing_commas_lambda_3z:TestUnpackingGeneralizations.test_trailing_commas_lambda_3[r�rc�Z�|�d��|�d��dS)Nzf = lambda a, **b: call(a, **b)z!f = lambda a, **b,: call(a, **b,)r�r's r�test_trailing_commas_lambda_4z:TestUnpackingGeneralizations.test_trailing_commas_lambda_4_r�rc�Z�|�d��|�d��dS)Nz!f = lambda *a, b=1: call(*a, b=1)z#f = lambda *a, b=1,: call(*a, b=1,)r�r's r�test_trailing_commas_lambda_5z:TestUnpackingGeneralizations.test_trailing_commas_lambda_5c�.���
�
�9�:�:�:��
�
�;�<�<�<�<�<rc�Z�|�d��|�d��dS)Nz!f = lambda *a, **b: call(*a, **b)z#f = lambda *a, **b,: call(*a, **b,)r�r's r�test_trailing_commas_lambda_6z:TestUnpackingGeneralizations.test_trailing_commas_lambda_6gr�rc�Z�|�d��|�d��dS)Nzf = lambda *, b=1: call(*b)zf = lambda *, b=1,: call(*b,)r�r's r�test_trailing_commas_lambda_7z:TestUnpackingGeneralizations.test_trailing_commas_lambda_7kr�rc�Z�|�d��|�d��dS)Nz#f = lambda a=1, b=2: call(a=1, b=2)z%f = lambda a=1, b=2,: call(a=1, b=2,)r�r's r�test_trailing_commas_lambda_8z:TestUnpackingGeneralizations.test_trailing_commas_lambda_8o�.���
�
�;�<�<�<��
�
�=�>�>�>�>�>rc�Z�|�d��|�d��dS)Nz#f = lambda a=1, **b: call(a=1, **b)z%f = lambda a=1, **b,: call(a=1, **b,)r�r's r�test_trailing_commas_lambda_9z:TestUnpackingGeneralizations.test_trailing_commas_lambda_9sr�rN)#rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r�s�������1�1�1�J�J�J�H�H�H�.�.�.�.�.�.�-�-�-�-�-�-�$�$�$�7�7�7�+�+�+�O�O�O�-�-�-�)�)�)�9�9�9�3�3�3�5�5�5�7�7�7�7�7�7�9�9�9�9�9�9�3�3�3�;�;�;�;�;�;�7�7�7�9�9�9�;�;�;�;�;�;�=�=�=�=�=�=�7�7�7�?�?�?�?�?�?�?�?rr�c��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�ZdS)�TestFunctionAnnotationsc�0�|�d��dS)Nzdef f(x) -> list: passr�r's r�test_1zTestFunctionAnnotations.test_1z����
�
�2�3�3�3�3�3rc�0�|�d��dS)Nzdef f(x:int): passr�r's r�test_2zTestFunctionAnnotations.test_2}s���
�
�.�/�/�/�/�/rc�0�|�d��dS)Nzdef f(*x:str): passr�r's r�test_3zTestFunctionAnnotations.test_3�r�rc�0�|�d��dS)Nzdef f(**x:float): passr�r's r�test_4zTestFunctionAnnotations.test_4�r�rc�0�|�d��dS)Nzdef f(x, y:1+2): passr�r's r�test_5zTestFunctionAnnotations.test_5�s���
�
�1�2�2�2�2�2rc�0�|�d��dS)Nzdef f(a, (b:1, c:2, d)): passr�r's r�test_6zTestFunctionAnnotations.test_6�s���
�
�9�:�:�:�:�:rc�0�|�d��dS)Nz/def f(a, (b:1, c:2, d), e:3=4, f=5, *g:6): passr�r's r�test_7zTestFunctionAnnotations.test_7�s���
�
�K�L�L�L�L�Lrc�4�d}|�|��dS)Nzgdef f(a, (b:1, c:2, d), e:3=4, f=5,
                        *g:6, h:7, i=8, j:9=10, **k:11) -> 12: passr��rrs  r�test_8zTestFunctionAnnotations.test_8�s"��
G���
�
�a�����rc�4�d}|�|��dS)Nz�def f(
          a: str,
          b: int,
          *,
          c: bool = False,
          **kwargs,
        ) -> None:
            call(c=c, **kwargs,)r�rs  r�test_9zTestFunctionAnnotations.test_9�s#��
$��	
�
�
�a�����rc�4�d}|�|��dS)Nz@def f(
          a: str,
        ) -> None:
            call(a,)r�rs  r�test_10zTestFunctionAnnotations.test_10�s#��
��	
�
�
�a�����rc�4�d}|�|��dS)NzGdef f(
          a: str = '',
        ) -> None:
            call(a=a,)r�rs  r�test_11zTestFunctionAnnotations.test_11�s#��
��	
�
�
�a�����rc�4�d}|�|��dS)NzHdef f(
          *args: str,
        ) -> None:
            call(*args,)r�rs  r�test_12zTestFunctionAnnotations.test_12�s#��
��	
�
�
�a�����rc�Z�|�d��|�d��dS)Nz)def f(a: str, b: int) -> None: call(a, b)z+def f(a: str, b: int,) -> None: call(a, b,)r�r's r�test_13zTestFunctionAnnotations.test_13�s.���
�
�A�B�B�B��
�
�C�D�D�D�D�Drc�Z�|�d��|�d��dS)Nz+def f(a: str, *b: int) -> None: call(a, *b)z-def f(a: str, *b: int,) -> None: call(a, *b,)r�r's r�test_14zTestFunctionAnnotations.test_14�s.���
�
�C�D�D�D��
�
�E�F�F�F�F�Frc�Z�|�d��|�d��dS)Nz-def f(a: str, b: int=1) -> None: call(a, b=1)z/def f(a: str, b: int=1,) -> None: call(a, b=1,)r�r's r�test_15zTestFunctionAnnotations.test_15��.���
�
�E�F�F�F��
�
�G�H�H�H�H�Hrc�Z�|�d��|�d��dS)Nz-def f(a: str, **b: int) -> None: call(a, **b)z/def f(a: str, **b: int,) -> None: call(a, **b,)r�r's r�test_16zTestFunctionAnnotations.test_16�rrc�Z�|�d��|�d��dS)Nz/def f(*a: str, b: int=1) -> None: call(*a, b=1)z1def f(*a: str, b: int=1,) -> None: call(*a, b=1,)r�r's r�test_17zTestFunctionAnnotations.test_17��.���
�
�G�H�H�H��
�
�I�J�J�J�J�Jrc�Z�|�d��|�d��dS)Nz/def f(*a: str, **b: int) -> None: call(*a, **b)z1def f(*a: str, **b: int,) -> None: call(*a, **b,)r�r's r�test_18zTestFunctionAnnotations.test_18�r!rc�Z�|�d��|�d��dS)Nz$def f(*, b: int=1) -> None: call(*b)z&def f(*, b: int=1,) -> None: call(*b,)r�r's r�test_19zTestFunctionAnnotations.test_19�s.���
�
�<�=�=�=��
�
�>�?�?�?�?�?rc�Z�|�d��|�d��dS)Nz2def f(a: str='', b: int=2) -> None: call(a=a, b=2)z4def f(a: str='', b: int=2,) -> None: call(a=a, b=2,)r�r's r�test_20zTestFunctionAnnotations.test_20��.���
�
�J�K�K�K��
�
�L�M�M�M�M�Mrc�Z�|�d��|�d��dS)Nz2def f(a: str='', **b: int) -> None: call(a=a, **b)z4def f(a: str='', **b: int,) -> None: call(a=a, **b,)r�r's r�test_21zTestFunctionAnnotations.test_21�r(rN)rrrr�rrrrrr
r
rrrrrrrrr r#r%r'r*rrrr�r�yso������4�4�4�0�0�0�1�1�1�4�4�4�3�3�3�;�;�;�M�M�M����
	�	�	����������E�E�E�G�G�G�I�I�I�I�I�I�K�K�K�K�K�K�@�@�@�N�N�N�N�N�N�N�Nrr�c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestVarAnnotationsc�0�|�d��dS)Nz
var1: int = 5r�r's rr�zTestVarAnnotations.test_1�r�rc�0�|�d��dS)Nzvar2: [int, str]r�r's rrzTestVarAnnotations.test_2�r�rc�0�|�d��dS)NzCdef f():
    st: str = 'Hello'
    a.b: int = (1, 2)
    return st
r�r's rrzTestVarAnnotations.test_3�s'���
�
�(�	)�	)�	)�	)�	)rc�0�|�d��dS)Nz$def fbad():
    x: int
    print(x)
r�r's rrzTestVarAnnotations.test_4�s'���
�
�'�	(�	(�	(�	(�	(rc�0�|�d��dS)Nzeclass C:
    x: int
    s: str = 'attr'
    z = 2
    def __init__(self, x):
        self.x: int = x
r�r's rrzTestVarAnnotations.test_5�s'���
�
�2�	3�	3�	3�	3�	3rc�0�|�d��dS)Nzlst: List[int] = []r�r's rrzTestVarAnnotations.test_6�r�rN)	rrrr�rrrrrrrrr,r,�sn������'�'�'�*�*�*�)�)�)�(�(�(�
3�3�3�-�-�-�-�-rr,c��eZdZd�Zd�ZdS)�
TestExceptc�4�d}|�|��dS)NzP
            try:
                x
            except E as N:
                yr�rs  r�test_newzTestExcept.test_new��#��
��
	
�
�
�a�����rc�4�d}|�|��dS)NzN
            try:
                x
            except E, N:
                yr�rs  r�test_oldzTestExcept.test_oldr7rN)rrrr6r9rrrr4r4�s2�������������rr4c��eZdZdZd�ZdS)�TestStringLiterals)*�'�"zr'zr"zR'zR"zu'zu"zU'zU"zb'zb"zB'zB"zf'zf"zF'zF"zur'zur"zUr'zUr"zuR'zuR"zUR'zUR"zbr'zbr"zBr'zBr"zbR'zbR"zBR'zBR"zrb'zrb"zRb'zRb"zrB'zrB"zRB'zRB"c���|jD]f}d�||d���}|�|��d�||d���}|�|���gdS)Nz{p}spamspamspam{s}���)�prz{p}{s}{s}eggs{s}{s}{s})�prefixes�formatr{)r�pre�single�triples    r�test_litzTestStringLiterals.test_lits|���=�	"�	"�C�)�0�0�3�#�b�'�0�B�B�F��M�M�&�!�!�!�-�4�4�s�c�"�g�4�F�F�F��M�M�&�!�!�!�!�		"�	"rN)rrrrArFrrrr;r;
s*������
%�H�"�"�"�"�"rr;c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestSetLiteralc�0�|�d��dS)Nzx = {'one'}r�r's rr�zTestSetLiteral.test_1!r�rc�0�|�d��dS)Nzx = {'one', 1,}r�r's rrzTestSetLiteral.test_2$r�rc�0�|�d��dS)Nzx = {'one', 'two', 'three'}r�r's rrzTestSetLiteral.test_3'r�rc�0�|�d��dS)Nzx = {2, 3, 4,}r�r's rrzTestSetLiteral.test_4*s���
�
�*�+�+�+�+�+rN)rrrr�rrrrrrrHrH sP������)�)�)�-�-�-�9�9�9�,�,�,�,�,rrHc��eZdZd�ZdS)�TestIdentifierc��|�d��|�d��|�d��|�d��dS)Nu!Örter = 'places'
grün = 'green'u蟒 = a蟒 = 锦蛇 = 1uµ = aµ = µµ = 1uA𝔘𝔫𝔦𝔠𝔬𝔡𝔢 = a_𝔘𝔫𝔦𝔠𝔬𝔡𝔢 = 1r�r's r�test_non_ascii_identifiersz)TestIdentifier.test_non_ascii_identifiers1sT���
�
�:�;�;�;��
�
�/�0�0�0��
�
�+�,�,�,��
�
�Y�Z�Z�Z�Z�ZrN)rrrrPrrrrNrN0s(������[�[�[�[�[rrNc��eZdZd�Zd�ZdS)�TestNumericLiteralsc�Z�|�d��|�d��dS)N�0o7777777777777�0o7324528887r�r's r�test_new_octal_notationz+TestNumericLiterals.test_new_octal_notation9s0���
�
�+�,�,�,����.�/�/�/�/�/rc�Z�|�d��|�d��dS)N�0b101010�	0b0101021r�r's r�test_new_binary_notationz,TestNumericLiterals.test_new_binary_notation=s.���
�
�n�%�%�%����O�,�,�,�,�,rN)rrrrVrZrrrrRrR8s2������0�0�0�-�-�-�-�-rrRc��eZdZd�ZdS)�TestClassDefc���|�d��|�d��|�d��|�d��|�d��dS)Nzclass B(t=7): passzclass B(t, *args): passzclass B(t, **kwargs): passz!class B(t, *args, **kwargs): passz'class B(t, y=9, *args, **kwargs,): passr�r's r�test_new_syntaxzTestClassDef.test_new_syntaxCsg���
�
�*�+�+�+��
�
�/�0�0�0��
�
�2�3�3�3��
�
�9�:�:�:��
�
�?�@�@�@�@�@rN)rrrr^rrrr\r\Bs(������A�A�A�A�Arr\c�$�eZdZdZd�Zd�Zd�ZdS)�TestParserIdempotencyz,A cut-down version of pytree_idempotency.py.c	��tjjrtd|����t	|d��5}tj|j��d}ddd��n#1swxYwY|�|d|z��t	|d|���5}|�	��}ddd��n#1swxYwY	tj|��}nY#t$rL	tj|��}n3#t$r&}|�d|�d|�d	���Yd}~nd}~wwxYwYnwxYwt|��}||kr8tt!|||����|�d
|z��dSdS)NzParse file: rBrzcan't detect encoding for %s�r)�encodingzParseError on file z (�)zIdempotency failed: %s)�testr�verbose�printrLr�detect_encoding�readline�assertIsNotNonerMrrr	r�fail�str�
diff_texts)r�filepath�fprc�source�tree�err�news        r�
parse_filez TestParserIdempotency.parse_fileOsA���<��	-��+��+�+�,�,�,�
�(�D�
!�
!�	@�R��/���<�<�Q�?�H�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@����X�;�h�F�	H�	H�	H�
�(�C�(�
3�
3�
3�	�r��W�W�Y�Y�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	J��&�v�.�.�D�D���	J�	J�	J�
J�0�=�f�E�E�����
J�
J�
J��	�	�	�(�(�(�C�C�C�H�I�I�I�I�I�I�I�I�����
J������	J����
�$�i�i���&�=�=��*�V�S�(�3�3�4�4�4��I�I�.��9�:�:�:�:�:��=s_� A � A$�'A$�B7�7B;�>B;�C�
D.�#C8�7D.�8
D(�D#�D.�#D(�(D.�-D.c��tj��D]E}|�|���5|�|��ddd��n#1swxYwY�FdS)N)rn)r�all_project_files�subTestrt)rrns  r�test_all_project_filesz,TestParserIdempotency.test_all_project_filesds����1�3�3�	*�	*�H����x��0�0�
*�
*�����)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��	*�	*s�A�A	�A	c��tjd��tjd��tjd��tjd��dS)Nz
a, *b, c = x
z[*a, b] = x
z(z, *y, w) = m
zfor *z, m in d: pass
�rrr's r�test_extended_unpackingz-TestParserIdempotency.test_extended_unpackingisO����,�-�-�-���O�,�,�,���.�/�/�/���4�5�5�5�5�5rN)rrr�__doc__rtrxr{rrrr`r`KsG������6�6�;�;�;�**�*�*�
6�6�6�6�6rr`c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestLiteralsc�X�tjtj|��dz��dS)Nz

)rrr�dedentrs  rr{zTestLiterals.validaters(����G�N�1�-�-��6�7�7�7�7�7rc�4�d}|�|��dS)Nu�
            md5test(b"ª" * 80,
                    (b"Test Using Larger Than Block-Size Key "
                     b"and Larger Than One Block-Size Data"),
                    "6f630fad67cda0ee1fb1f562db3aa53e")
            r�rs  r�test_multiline_bytes_literalsz*TestLiterals.test_multiline_bytes_literalsu�#��
��	
�
�
�a�����rc�4�d}|�|��dS)Nz�
            b"""
            <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN">
            """
            r�rs  r�'test_multiline_bytes_tripquote_literalsz4TestLiterals.test_multiline_bytes_tripquote_literals~r�rc�4�d}|�|��dS)Nu�
            md5test("ª" * 80,
                    ("Test Using Larger Than Block-Size Key "
                     "and Larger Than One Block-Size Data"),
                    "6f630fad67cda0ee1fb1f562db3aa53e")
            r�rs  r�test_multiline_str_literalsz(TestLiterals.test_multiline_str_literals�r�rN)rrrr{r�r�r�rrrr~r~psP������8�8�8�����������rr~c�*�eZdZdZd�Zd�Zd�Zd�ZdS)�TestNamedAssignmentsz"Also known as the walrus operator.c�.�tjd��dS)Nzif f := x(): pass
rzr's r�test_named_assignment_ifz-TestNamedAssignments.test_named_assignment_if�s����1�2�2�2�2�2rc�.�tjd��dS)Nzwhile f := x(): pass
rzr's r�test_named_assignment_whilez0TestNamedAssignments.test_named_assignment_while�s����4�5�5�5�5�5rc�.�tjd��dS)Nz0any((lastNum := num) == 1 for num in [1, 2, 3])
rzr's r�test_named_assignment_generatorz4TestNamedAssignments.test_named_assignment_generator�s����O�P�P�P�P�Prc�.�tjd��dS)Nz-[(lastNum := num) == 1 for num in [1, 2, 3]]
rzr's r�test_named_assignment_listcompz3TestNamedAssignments.test_named_assignment_listcomp�s����L�M�M�M�M�MrN)rrrr|r�r�r�r�rrrr�r��s^������,�,�3�3�3�6�6�6�Q�Q�Q�N�N�N�N�Nrr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestPositionalOnlyArgsc�.�tjd��dS)Nz!def one_pos_only_arg(a, /): pass
rzr's r�test_one_pos_only_argz,TestPositionalOnlyArgs.test_one_pos_only_arg�s����@�A�A�A�A�Arc�.�tjd��dS)Nz4def all_markers(a, b=2, /, c, d=4, *, e=5, f): pass
rzr's r�test_all_markersz'TestPositionalOnlyArgs.test_all_markers�s)����G�	I�	I�	I�	I�	Irc�.�tjd��dS)Nz�def all_markers_with_args_and_kwargs(
                           aa, b, /, _cc, d, *args, e, f_f, **kwargs,
                   ):
                       pass
rzr's r�test_all_with_args_and_kwargsz4TestPositionalOnlyArgs.test_all_with_args_and_kwargs�s&����!�	"�	"�	"�	"�	"rc�.�tjd��dS)Nz,lambda a, b, /, c, d, *args, e, f, **kw: kw
rzr's r�test_lambda_soupz'TestPositionalOnlyArgs.test_lambda_soup�s)����?�	A�	A�	A�	A�	Arc�.�tjd��dS)Nzdef func(a,b,/,*,g,e=3): pass
rzr's r�test_only_positional_or_keywordz6TestPositionalOnlyArgs.test_only_positional_or_keyword�s����=�>�>�>�>�>rN)rrrr�r�r�r�r�rrrr�r��sh������B�B�B�I�I�I�"�"�"�A�A�A�?�?�?�?�?rr�c��eZdZd�ZdS)�TestPickleableExceptionc��tdddd��}ttjdz��D]�}tjtj||�����}|�|j|j��|�|j|j��|�|j	|j	��|�|j
|j
��|�|j|j����dS)NrCr)r�contextr)�protocol)r	�ranger^�HIGHEST_PROTOCOL�loadsr_r�argsrCr�valuer�)rrr�proto�err2s    r�test_ParseErrorz'TestPickleableException.test_ParseError�s������4��8�8���6�2�Q�6�7�7�	8�	8�E��<���S�5� A� A� A�B�B�D����S�X�t�y�1�1�1����S�W�d�h�/�/�/����S�X�t�y�1�1�1����S�Y��
�3�3�3����S�[�$�,�7�7�7�7�
	8�	8rN)rrrr�rrrr�r��s#������8�8�8�8�8rr�c	��|���}|���}tj||||ddd���S)Nz
(original)z(reserialized)�)�lineterm)�
splitlines�difflib�unified_diff)�a�b�filenames   rrmrm�sG��	�����A�	�����A����1�h�� ,�.>�)+�-�-�-�-r�__main__)2r|r�rrrr�rgror,r^r0rJrHr*�test.supportrert�
lib2to3.pgen2r$r�pgen2.parser	�lib2to3.pygramr
r�TestCaserrrxr�r�r�r�r�r�r,r4r;rHrNrRr\r`r~r�r�r�rmr�mainrrr�<module>r�s����������6�6�6�6�6�6�6�6�������������	�	�	�	�
�
�
�
�
�
�
�
�����
�
�
�
�������������1�0�0�0�0�0�"�"�"�"�"�"�$�$�$�$�$�$�1�1�1�1�1�1�J�J�J�J�J��!�J�J�J�O)�O)�O)�O)�O)�w�'�O)�O)�O)�d
E�
E�
E�
E�
E�'�"�
E�
E�
E� � � � � �{� � � �*�*�*�*�*�K�*�*�*�J
�J
�J
�J
�J
�[�J
�J
�J
�Z,�,�,�,�,�{�,�,�,�@r?�r?�r?�r?�r?�;�r?�r?�r?�l]N�]N�]N�]N�]N�k�]N�]N�]N�B-�-�-�-�-��-�-�-�<���������$"�"�"�"�"��"�"�"�,,�,�,�,�,�[�,�,�,� [�[�[�[�[�[�[�[�[�-�-�-�-�-�+�-�-�-�A�A�A�A�A�;�A�A�A�"6�"6�"6�"6�"6�G�,�"6�"6�"6�J�����;����B
N�
N�
N�
N�
N�;�
N�
N�
N� ?�?�?�?�?�[�?�?�?�0	8�	8�	8�	8�	8�h�/�	8�	8�	8�-�-�-��z����H�M�O�O�O�O�O��r