403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_compile.cpython-313.pyc
�

��i���SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKJr SSKJrJrJrJrJr SSKJr SSKJr "SS\R85r\"5"SS	\R855r"S
S\R85r"SS
\R85r "SS\R85r!"SS\R85r"\#S:Xa\RH"5 gg)�N)�support)�
script_helper�requires_debug_ranges�run_code�requires_specialization�get_c_recursion_limit)�instructions_with_positions)�FakePathc��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Sr\R "\R$S
5S5rSrSrSrSrSrSrSr\R8S:XaSrSrSrSr Sr!Sr"Sr#Sr$Sr%S r&S!r'S"r(S#r)S$r*S%r+S&r,S'r-S(r.S)r/S*r0S+r1S,r2\RfS-5r4S.r5S/r6S0r7S1r8\Rf\R "\R$S
5S255r9S3r:S4r;\RfS55r<\RfS65r=\RfS75r>\RfS85r?\RfS95r@\RfS:5rA\RfS;5rB\RfS<5rC\RfS=5rDS>rES?rF\R�"S@5SA5rH\RfSB5rISCrJSDrKSErLSFrMSGrNSHrOSIrPSJrQSKrRSLrSSgSNjrTSOrUSPrVSQrWSRrXSSrYSTrZSUr[\RfSV5r\SWr]SXr^SYr_SZr`S[raS\rbS]rcS^rdS_reS`rfSargSbrhScriSdrjSerkSfrlgM)h�
TestSpecifics�c��[USS5 g)N�<single>�single��compile��self�sources  �&C:\Python313\\Lib\test\test_compile.py�compile_single�TestSpecifics.compile_singles����
�H�-�c�F�UR[URU5 g�N)�assertRaises�SyntaxErrorrrs  r�assertInvalidSingle�!TestSpecifics.assertInvalidSingles�����+�t�':�':�F�Crc�8�[SSS5 [SSS5 g)N�hi�<test>�execzhi
r�rs r�test_no_ending_newline�$TestSpecifics.test_no_ending_newline s����h��'����&�)rc��[SSS5 g)N�r"r#rr$s r�
test_empty�TestSpecifics.test_empty$s����H�f�%rc�l�[SSS5 [SSS5 [SSS5 [SSS5 g)Nz
r"r#�
zhi
stuff
def f():
    pass
z(this_is
really_old_mac
def f():
    passrr$s r�test_other_newlines�!TestSpecifics.test_other_newlines's4�����&�)���h��'��5�x��H��=�x��Prc��UR[[SSS5 SSKnURn[USS5 UR
SU5 [USU5 g)Nz
__debug__ = 1�?rr�	__debug__�sureT)rrr�builtinsr1�setattr�assertEqual)rr3�prevs   r�test_debug_assignment�#TestSpecifics.test_debug_assignment-sN�����+�w���h�O���!�!����+�v�.�����D�)���+�t�,rc�H�UR[[S5 UR[[S5 UR[[S5 UR[[S5 UR[[S5 UR[[S5 g)Nzlambda a,a:0zlambda a,a=1:0zlambda a=1,a=1:0zdef f(a, a): passzdef f(a = 0, a = 1): pass�def f(a): global a; a = 1)rr�evalr#r$s r�test_argument_handling�$TestSpecifics.test_argument_handling6ss�����+�t�^�<����+�t�-=�>����+�t�-?�@����+�t�-@�A����+�t�-H�I����+�t�-H�Irc�>�UR[[SSS5 g)Nz1+*3�filenamer#�rrrr$s r�test_syntax_error�TestSpecifics.test_syntax_error?s�����+�w��
�F�Krc�>�UR[[SSS5 g)Nz	f(None=1)�<string>r#r@r$s r�test_none_keyword_arg�#TestSpecifics.test_none_keyword_argBs�����+�w��Z��Prc�:�UR[[S5 g)Nr:�rrr#r$s r�test_duplicate_global_local�)TestSpecifics.test_duplicate_global_localEs�����+�t�-H�Irc��"SS5nU"5n[5n[SX25 URURS5 [SX25 UR	S5 [SX25 URURS[
S	545 [S
X25 URURSU45 [SX25 URURSU45 UR[[SU5 "SS
5nU"5nUR[[SX25 "SS[5nU"5n[SX65 URUSS5 g![
a GNf=f)Nc�*�\rSrSrSrSrSrSrSrg)�BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M�Jz9Test mapping interface versus possible calls from eval().c��US:Xag[e�N�a�)�KeyError�r�keys  r�__getitem__�NTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__getitem__Ls���#�:���rc��X4Ulgr��results�rrU�values   r�__setitem__�NTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__setitem__Ps�� #�|��rc��[S5$)N�xyz)�listr$s r�keys�GTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.keysRs���E�{�"rrYN)	�__name__�
__module__�__qualname__�__firstlineno__�__doc__rVr]rb�__static_attributes__�rr�MrMJs��G�
�
,�
#rrkzz = a)�zrRzz = bzDid not detect a KeyErrorz	z = dir()rlr`z
z = globals()zz = locals()c��\rSrSrSrSrg)�BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.A�gzNon-mappingrjN)rdrerfrgrhrirjrr�Arngs���rrpc��\rSrSrSrSrg)�BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D�nc�:�US:Xag[RX5$rP)�dictrVrTs  rrV�NTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D.__getitem__os���#�:���'�'��2�2rrjN)rdrerfrgrVrirjrr�Drrns��
3rrwrR)
�globalsr#r5rZ�fail�	NameErrorrar�	TypeErrorru)rrk�m�grprw�ds       r�)test_exec_with_general_mapping_for_locals�7TestSpecifics.test_exec_with_general_mapping_for_localsHsE��		#�		#�
�C���I���W�a��������I�.�	3���!��
�I�I�1�2��[�!��������S�$�u�+�$6�7��_�a�#�������S�!�H�-��^�Q�"�������S�!�H�-����)�T�7�A�6�	�	�
�C�����)�T�7�A�9�	3��	3�

�C���W�a������3���$��5�	��	�s�E*�*
E8�7E8zexhausts limited stack on WASIc���[[5S-5nSSU--n0n[R"SU4S--5n[	XC5 URUS"S5S5 g)	Ng�������?z	x = x or z-xa�
            def f(x):
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                # the expressions above have no effect, x == argument
                while x:
                    x -= 1
                    # EXTENDED_ARG/JUMP_ABSOLUTE here
                return x
            �
�f�r)�intr�textwrap�dedentr#r5)r�repeat�longexprr}�codes     r�test_extended_arg�TestSpecifics.test_extended_argwsl���*�,�s�2�3������.������� �"�;�r�>�# #�$��$	
�T�
�����3����A�&rc�:�UR[[S5 g)Nzdef f(a=1, b): passrHr$s r�test_argument_order�!TestSpecifics.test_argument_order�s�����+�t�-B�Crc���UR[[S5 UR[[S5 UR[[S5 UR[[S5 g)N�2ez2.0e+z1e-z3-4e/21)rrr;r$s r�test_float_literals�!TestSpecifics.test_float_literals�sJ�����+�t�T�2����+�t�W�5����+�t�U�3����+�t�Y�7rc�J�[R"S5n[USS5 g)NzN
            if 1:
                if 2:
                    pass
            rDr#�r�r�r�r�ss  r�test_indentation�TestSpecifics.test_indentation�s#���O�O��
��
	��:�v�&rc��SRS/S-S/-5n[USS5nURURS5 UR	5VVs/sHu p4UPM
 nnnURUSS	/5 gs snnf)
Nr(�
��spam�fnr#�ri)�joinrr5�co_firstlineno�co_lines)r�s256�co�_�line�liness      r�test_leading_newlines�#TestSpecifics.test_leading_newlines�sx���w�w��v��|�v�h�.�/��
�T�4��
(������*�*�A�.�(*���
�6�
�*�!�Q��
��6������C��)��7s�A=c�\�SHnUR[[U5 M  UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S	5 UR[S
5S5 UR[S5S5 UR[S
5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S5 UR[S5S 5 UR[S!5S"5 UR[S#5S$5 UR[S%5S&5 UR[S'5S(5 g))N)�077787�0xjz0x.�0e�090000000000000�080000000000000�000000000000009�000000000000008�0b42�0BADCAFE�0o123456789z0b1.1z0o4.2�0b101j�0o153j�0b100e1�0o777e1�0777�000777�000000000000007�0xff�z0777.i	z0777.0�8000000000000000000000000000000000000000000000000000777e0�0777e1iZ�0e0rz	0000e-012z09.5g#@�0777jyH�@�000�00j�z00.0�0e3z090000000000000.g聰v�Bz&090000000000000.0000000000000000000000�090000000000000e0z090000000000000e-0�090000000000000jy聰v�Bz000000000000008.g @z000000000000009.g"@�0b101010�*z-0b000000000010����0o777i�z
-0o0000010i����)rrr;r5)r�args  r�!test_literals_with_leading_zeroes�/TestSpecifics.test_literals_with_leading_zeroes�s��1�C�

���k�4��5�1�	
����f��s�+�����g���,�����h���-�����X�Y�[^�_�����h���.�����e��a�(�����k�*�A�.�����f��s�+�����g���-�����e��a�(�����e��b�)�����f��q�)�����e��a�(�����0�1�?�C�����F�G��Y�����1�2�O�D�����2�3�_�E�����0�1�?�C�����0�1�2�6�����0�1�2�6�����j�)�2�.�����/�0�"�5�����g���,�����l�+�R�0rc�.�SnSSU-S3n[R"U5 [USS5 SSS5 [R"US-
5 UR[5n[USS5 SSS5 WR
nUR
URS	5 URS
[U55 URS[U55 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   g=f)Ni�za = 1
b = 2
c = �3z
d = 4z<long_int_pass>r#r�z<long_int_fail>�zExceeds the limit z Consider hexadecimal )
r�adjust_int_max_str_digitsrrr�	exceptionr5�lineno�assertIn�str)r�nr�err_ctx�excs     r�test_int_literals_too_long�(TestSpecifics.test_int_literals_too_long�s�����%�c�!�e�W�G�4��
�
.�
.�q�
1��F�-�v�6�2�
�
.�
.�q��s�
3��"�"�;�/�7��� 1�6�:�0��#�#�C����S�Z�Z��+��M�M�.��C��9��M�M�2�C��H�=�
4�
3�2�
1��0�/��4�
3�s0�C$�D�'C5�5A&D�$
C2�5
D	�?D�
Dc�6�[RS:Xa<SnUR[U5S5 UR[SU-5S5 Oa[RS:Xa<SnUR[U5S5 UR[SU-5S	5 OUR	S
5 UR[S[R*S-
-5[5 UR[S[R*S
-
-5[5 g)Ni����
0xffffffffl���-l������������0xffffffffffffffffl����l��������z)How many bits *does* this machine have???z%sr��)�sys�maxsizer5r;ry�assertIsInstancer�)r�all_one_bitss  r�test_unary_minus�TestSpecifics.test_unary_minus�s����;�;�*�$�'�L����T�,�/��<����T�#��"4�5�{�C�
�[�[�/�
/�/�L����T�,�/�1E�F����T�#��"4�5�7L�M��I�I�A�B�	
���d�4�C�K�K�<�!�+;�#<�=�s�C����d�4�C�K�K�<�!�+;�#<�=�s�Crr�c��SnSnSnSnSnSnSnSnURRRHn	U	cMURU	[5 M  g)	Nll����ll����ll����r�l��������)�test_32_63_bit_values�__code__�	co_constsr�r�)
rrQ�b�cr~�er�r}�h�variables
          rr��#TestSpecifics.test_32_63_bit_values�s]���A��A� �A� �A�$�A�$�A�$�A�$�A� �6�6�?�?�I�I���'��)�)�(�C�8�Jrc�T�SupURUS5 URUS5 g)N)r����r�r��r5)r�i�js   r�test_sequence_unpacking_error�+TestSpecifics.test_sequence_unpacking_error�s)���������A������B�rc��/SQnUHBnUS-
nUR[[USS5 UR[[USS5 MD g)N)zNone = 0z	None += 0z__builtins__.None = 0zdef None(): passzclass None: passz(a, None) = 0, 0zfor None in range(10): passzdef f(None): passzimport Nonezimport x as Nonezfrom x import Nonezfrom x import y as Noner��tmprr#r@)r�stmts�stmts   r�test_none_assignment�"TestSpecifics.test_none_assignmentsJ��

���D��D�L�D����k�7�D�%��J����k�7�D�%��H�rc��/SQn/SQnUHn[USS5 M UH nUR[[USS5 M" g)N)z
import syszimport os, syszimport os as barzimport os.path as barz0from __future__ import nested_scopes, generatorsz2from __future__ import (nested_scopes,
generators)z3from __future__ import (nested_scopes,
generators,)z%from sys import stdin, stderr, stdoutz'from sys import (stdin, stderr,
stdout)z(from sys import (stdin, stderr,
stdout,)z(from sys import (stdin
, stderr, stdout)z)from sys import (stdin
, stderr, stdout,)z7from sys import stdin as si, stdout as so, stderr as sez9from sys import (stdin as si, stdout as so, stderr as se)z:from sys import (stdin as si, stdout as so, stderr as se,))zimport (os, sys)zimport (os), (sys)zimport ((os), (sys))zimport (syszimport sys)zimport (os,)zimport os As barzimport os.path a barzfrom sys import stdin As stdoutzfrom sys import stdin a stdoutzfrom (sys) import stdinz%from __future__ import (nested_scopesz%from __future__ import nested_scopes)z0from __future__ import nested_scopes,
generatorszfrom sys import (stdinzfrom sys import stdin)z%from sys import stdin, stdout,
stderrzfrom sys import stdin sizfrom sys import stdin,zfrom sys import (*)z(from sys import (stdin,, stdout, stderr)z from sys import (stdin, stdout),r�r#)rrr)r�succeedryr�s    r�test_import�TestSpecifics.test_importsH����"��0�D��D�%��(���D����k�7�D�%��H�rc��SnU"5up#UR[UR5[UR55 g)Nc��SSjnSSjnX4$)Nc��U$rrj��xs r�<lambda>�ITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>K���Qrc��U$rrjrs rrr	Lr
r�r�)r�rj)�f1�f2s  rr��7TestSpecifics.test_for_distinct_code_objects.<locals>.fJs���B��B��6�Mr)�assertNotEqual�idr�)rr�r
rs    r�test_for_distinct_code_objects�,TestSpecifics.test_for_distinct_code_objectsHs2��	��������B�r�{�{�O�R����_�=rc�@�SnURUR5 g)Nc��g)N�foorjrjrrr�/TestSpecifics.test_lambda_doc.<locals>.<lambda>Rs��Er)�assertIsNonerh)r�ls  r�test_lambda_doc�TestSpecifics.test_lambda_docQs�������!�)�)�$rc�,�SnUR[[USS5 Sn[USS5 UR[	U5S5 SnUR[	U5S5 SnUR[	U5S5 S	nUR[	U5S5 S
nUR[	U5S5 SnUR[	U5S5 S
nUR[	U5S5 SnUR[	U5S5 g)Ns## -*- coding: badencoding -*-
pass
r�r#u%# -*- coding: badencoding -*-
"¤"
u¤u"¤"
s"¤"
�¤s# -*- coding: latin1 -*-
"¤"
s# -*- coding: utf-8 -*-
"¤"
s"# -*- coding: iso8859-15 -*-
"¤"
u€u*"""\
# -*- coding: iso8859-15 -*-
¤"""
u!# -*- coding: iso8859-15 -*-
¤s("""\
# -*- coding: iso8859-15 -*-
¤"""
u# -*- coding: iso8859-15 -*-
¤)rrrr5r;�rr�s  r�
test_encoding�TestSpecifics.test_encodingUs���7�����+�w��e�V�D�<����e�V�$�����d��Z�0�������d��Z�0�������d��V�,�8������d��Z�0�7������d��V�,�<������d��\�2�C������d��%M�N�D������d��%I�Jrc��"SS[5nU"5nSUS'URUSS5 US==S-
ss'URUSS5 US	URSU5 SUS'URUSS5 US==S-
ss'URUSS5 US	URSU5 SUSS&URUSSS5 USS===S-
sss&URUSSS5 USS2	UR[SS5U5 SUSS2SS24'URUSS2SS24S5 USS2SS24==S-
ss'URUSS2SS24S5 USS2SS24	UR[SS5[SS54U5 SUSSS2'URUSSS2S5 USSS2==S-
ss'URUSSS2S5 USSS2	UR[SSS5U5 SUSSS2SSS24'URUSSS2SSS24S5 USSS2SSS24==S-
ss'URUSSS2SSS24S5 USSS2SSS24	UR[SSS5[SSS54U5 SUS'URUSS5 US==S-
ss'URUSS5 US	UR[U5 SUS'URUSS5 US==S-
ss'URUSS5 US	UR[[4U5 g)	Nc�2�\rSrSrSrSrSrSrSrSr	g)	�.TestSpecifics.test_subscripts.<locals>.str_mapimc��0Ulgr��datar$s r�__init__�7TestSpecifics.test_subscripts.<locals>.str_map.__init__ns	����	rc�2�UR[U5$r�r&r�rTs  rrV�:TestSpecifics.test_subscripts.<locals>.str_map.__getitem__ps���y�y��S��*�*rc�2�X R[U5'grr*r[s   rr]�:TestSpecifics.test_subscripts.<locals>.str_map.__setitem__rs��&+�	�	�#�c�(�#rc�0�UR[U5	grr*rTs  r�__delitem__�:TestSpecifics.test_subscripts.<locals>.str_map.__delitem__ts���I�I�c�#�h�'rc�2�[U5UR;$r)r�r&rTs  r�__contains__�;TestSpecifics.test_subscripts.<locals>.str_map.__contains__vs���3�x�4�9�9�,�,rr%N)
rdrerfrgr'rVr]r/r2rirjrr�str_mapr#ms��
�
+�
,�
(�
-rr4r�r�)r�r�r�.)..)�objectr5�assertNotIn�slice�Ellipsis)rr4r~s   r�test_subscripts�TestSpecifics.test_subscriptsjs���
	-�f�
	-�
�I����!������1��q�!�	�!���	������1��q�!�
�a�D�����A����$������4��!�$�	�$��1�������4��!�$�
�d�G������#���!�A������1�Q���#�	�!�A��!�������1�Q���#�
�a��c�F�����q�!��a�(���!�A�#�q��s�(������1�Q�3��!��8��a�(�	�!�A�#�q��s�(��q�������1�Q�3��!��8��a�(�
�a��c�1�Q�3�h�K����%��1�+�u�Q��{�3�Q�7���!�A�a�%������1�Q�q�5��1�%�	�!�A�a�%��A�
������1�Q�q�5��1�%�
�a��!�e�H�����q�!�Q���+���!�A�a�%��1�Q��,������1�Q�q�5�!�A�a�%�<��!�,�	�!�A�a�%��1�Q��,��1�������1�Q�q�5�!�A�a�%�<��!�,�
�a��!�e�Q�q��U�l�O����%��1�a�.�%��1�a�.�9�1�=���#������3���#�	�#��!�������3���#�
�c�F�����1�%���(������8��a�(�	�(��q�������8��a�(�
�h�K����(�H�-�q�1rc�j�SnUSRS[S555-n[USS5 g)Nzdef f(%s): pass�, c3�.# �UHnSX4-v� M
 g7f)za%d:%dNrj��.0r�s  r�	<genexpr>�6TestSpecifics.test_annotation_limit.<locals>.<genexpr>�s���<��A�x�1�%�'����i,r0r#�r��rangerr�s  r�test_annotation_limit�#TestSpecifics.test_annotation_limit�s0����	�T�Y�Y�<��s��<�
<�<����3��rc��"SS5nURSURRR5 URSURRR5 URSURRR5 URSURRR5 g)Nc��\rSrSrSrSrg)�&TestSpecifics.test_mangling.<locals>.Ai�c��SnSnSSKnSSKng)Nr�r�r)�_A__mangled_mod�__package__.module)�_A__mangled�__not_mangled__rK�__package__s    rr��(TestSpecifics.test_mangling.<locals>.A.f�s���	�"#��$�)rrjN�rdrerfrgr�rirjrrrprI�s��
*rrprMrNrKrO)r�r�r��co_varnames)rrps  r�
test_mangling�TestSpecifics.test_mangling�s���	*�	*�	
�
�
�m�Q�S�S�\�\�%=�%=�>��
�
�'������)A�)A�B��
�
�'������)A�)A�B��
�
�m�Q�S�S�\�\�%=�%=�>rc��[SSS5 g)Nzif (5 if 5 else T): 0�<eval>r#rr$s r�3test_condition_expression_with_dead_blocks_compiles�ATestSpecifics.test_condition_expression_with_dead_blocks_compiles�s���'��6�:rc���/SQnUHFnURUS9 UR[5 [USS5 SSS5 SSS5 MH g!,(df   N=f!,(df   Mk=f)N)zif 9<9<9and 9or 9:9zif 9<9<9and 9or 9or 9:9zif 9<9<9and 9or 9or 9or 9:9zif 9<9<9and 9or 9or 9or 9or 9:9��exprrVr#)�subTest�assertWarns�
SyntaxWarningr�r�exprsr[s   r�=test_condition_expression_with_redundant_comparisons_compiles�KTestSpecifics.test_condition_expression_with_redundant_comparisons_compiles�sZ��
���D����4��(��%�%�m�4��D�(�F�3�5�)�(��4�4��)�(�s!�A#�A�A#�
A �A#�#
A2	c�F�[[R"S5SS5 g)Nz�
                if None:
                    with CM:
                        x = 1
                else:
                    x = 2
               rVr#�rr�r�r$s r�+test_dead_code_with_except_handler_compiles�9TestSpecifics.test_dead_code_with_except_handler_compiles�s!������!���v�
	'rc�F�[[R"S5SS5 g)Nz�
            name_1, name_2, name_3 = 1, 2, 3
            while name_3 <= name_2 > name_1:
                try:
                    raise
                except:
                    pass
                finally:
                    pass
            rVr#rdr$s r�8test_try_except_in_while_with_chained_condition_compiles�FTestSpecifics.test_try_except_in_while_with_chained_condition_compiles�s!������	!�	��F�		$rc�N�[R"[R"[R"[R"[R
"SS9[R
"SS9S9[R"[R"S[R"5S9[R"S[R"5S9/SS	9/S
9S9//S9nUR[S5 [[R"U5S
S5 SSS5 g!,(df   g=f)Nr��r\r�)�targetr\r�r�ctx�yr)rl�iter�ifs�is_async)�elt�
generators��body�type_ignoreszNamedExpr target must be a Name�<file>r#)�ast�Module�Expr�ListComp�	NamedExpr�Constant�
comprehension�Name�Store�Load�assertRaisesRegexr{r�fix_missing_locations�rr|s  r�test_compile_invalid_namedexpr�,TestSpecifics.test_compile_invalid_namedexpr�s����J�J�����,�,��M�M�#&�<�<�a�#8�"%�,�,�Q�"7��
 �-�-�'*�x�x�3�C�I�I�K�'H�%(�X�X��#�(�(�*�%E�$&�)*�	�$�
���$�'
��,�
#�
#�I�/P�
Q��C�-�-�a�0�(�F�C�R�
Q�
Q�s�+"D�
D$c��[R"S5n[R"U5n[R"U5Hn[US5(dMU?U?U?U?	M  [[R"U5SS5 g)Nz�
            try:
                pass
            except:
                pass
            else:
                match name_2:
                    case b'':
                        pass
            finally:
                something
            r�rxr#�r�r�ry�parse�walk�hasattrr��
end_lineno�
col_offset�end_col_offsetrr��rr��tree�nodes    r�>test_compile_redundant_jumps_and_nops_after_moving_cold_blocks�LTestSpecifics.test_compile_redundant_jumps_and_nops_after_moving_cold_blocksss��
�_�_�����y�y�����H�H�T�N�D��t�H�%�%��[��_��_��(�#�	��)�)�$�/��6�Brc��[R"S5n[R"U5n[R"U5Hn[US5(dMU?U?U?U?	M  [[R"U5SS5 g)Nz�
            if name_2:
                pass
            else:
                try:
                    pass
                except:
                    pass
            ~name_5
            r�rxr#r�r�s    r�4test_compile_redundant_jump_after_convert_pseudo_ops�BTestSpecifics.test_compile_redundant_jump_after_convert_pseudo_ops"ss��
�_�_�	�	���y�y�����H�H�T�N�D��t�H�%�%��[��_��_��(�#�	��)�)�$�/��6�Brc��[nUR5RS5(aUSSn[USS9nUR	5nSSS5 SS/SS/S	S
/SS/UW//nUH�up[US
U-S5n[USU-S[R5nUR[U5[R:H5 [USU-S5nURXh5 URURSU-5 M� [SSS[R5nUR[[
USS5 UR[[
[R"[R "S[R""5S9S9SS5 [R"5n[R$"[R&"5S9/UlUR[[
USS5 g!,(df   GN�=f)N�pycr�zutf-8)�encodingz<assign>zx = 5z	<ifblock>zif True:
    pass
z
<forblock>z!for n in [1, 2, 3]:
    print(n)
z	<deffunc>zdef foo():
    pass
foo()
z%s1r#z%s2z%s3zprint(1)rDz<ast>r;rrm)�test)�op)�__file__�lower�endswith�open�readr�_ast�
PyCF_ONLY_AST�
assertTrue�typerzr5�co_filenamerr{�Ifr�r��BoolOp�Orrv)	r�fnamer��	fcontents�sample_coder��co1ry�co2s	         r�test_compile_ast�TestSpecifics.test_compile_ast;s������;�;�=�!�!�%�(�(��#�2�J�E�
�%�'�
*�a�����I�+���!�
�4�5�
�D�E�
�=�>�
�I��
��'�K�E��$���
�v�6�C��$���
�v�t�7I�7I�J�C��O�O�D��I����4�5��#�u�u�}�f�5�C����S�&����S�_�_�e�e�m�<�'��j�*�f�d�6H�6H�I�����)�W�c�7�F�C�	
���)�W�d�g�g�4�9�9��QU�QZ�QZ�Q\�;]�.^�`g�io�p��k�k�m���K�K�4�7�7�9�-�.������)�W�c�7�F�C�;+�
*�s�G7�7
Hc��[R"[R"[R"[R"S[R
"5S9[R"SS9[R"5S9/[R"S[R
"5S9S9//S9nUR[S	5 [[R"U5S
S5 SSS5 g!,(df   g=f)Nrrmrrk)r\r7rn�Callable)�name�type_paramsr\ruzTypeAlias with non-Name namerxr#)ryrz�	TypeAlias�	Subscriptr�r�r~r�r�r{rr�r�s  r�test_compile_invalid_typealias�,TestSpecifics.test_compile_invalid_typealias^s����J�J��
�
����!�h�h�%�S�X�X�Z�@�!�l�l��5��I�I�K��
!#��(�(�j�c�h�h�j�A��
��

���
#�
#�I�/M�
N��C�-�-�a�0�(�F�C�O�
N�
N�s�"C1�1
C?c�t^�SmU4SjnU"5U"5U"5U"50nURUSSS.5 g)Nrc�>�TS-
mT$�Nr�rj�r�s�rr��3TestSpecifics.test_dict_evaluation_order.<locals>.fus���
��F�A��Hrr��)r�r�r�)rr�r~r�s   @r�test_dict_evaluation_order�(TestSpecifics.test_dict_evaluation_orderrs9���
��	�
�S�!�#�q�s�A�C� �������a�L�)rc�h�SH,n[SUS5nURURS5 M. [S5[	S54H.nUR[5 [SUS5 SSS5 M0 UR[[S[S5S5 g!,(df   Mh=f)N)�file.py�file.py�passr#r�r�)rr5r��	bytearray�
memoryviewrr{ra)rr?r�s   r�test_compile_filename�#TestSpecifics.test_compile_filename}s���-�H��6�8�V�4�D����T�-�-�y�9�.�"�*�-�z�*�/E�E�H��"�"�9�-����&�1�.�-�F�	
���)�W�f�d�:�6F��O�.�-�s�!B"�"
B1	c	���SnUR[[SUSS9 UR[[SUSSS-S9 "S	S
5nUR[[SUSU"5S9 g)Nzthis is a mortal stringri�)�moder#r�����optimizec��\rSrSrSrSrg)�=TestSpecifics.test_compile_filename_refleak.<locals>.EvilBooli�c��[er)�
ValueErrorr$s r�__bool__�FTestSpecifics.test_compile_filename_refleak.<locals>.EvilBool.__bool__�s��j� 0rrjN)rdrerfrgr�rirjrr�EvilBoolr��s��0rr�)�dont_inherit)rr{r�
OverflowErrorr�)r�
mortal_strr�s   r�test_compile_filename_refleak�+TestSpecifics.test_compile_filename_refleak�sr��/�
����)�W�c�:�D��I����-��#�z� �1��9�	�	6�	1�	1����*�g�s�J� �x�z�	�	;rc���Sn[USS5nURHJn[U[R5(dM$URURUR5 ML g)Nzdef f(): pass
def g(): pass�myfiler#)rr��
isinstance�types�CodeType�assertIsr�)rr�r��objs    r�test_same_filename_used�%TestSpecifics.test_same_filename_used�sJ��.���A�x��(���;�;�C��#�u�~�~�.�.��
�
�c�o�o�q�}�}�=�rc��URS5 URS5 URS5 URS5 URS5 URS5 URS5 URS5 URS	5 URS
5 URS5 URS5 URS
5 URS5 URS5 g)Nz1 + 2z
1 + 2z1 + 2
z1 + 2

z1 + 2		
z1 + 2		
        z1 + 2 # one plus twoz1; 2zimport sys; syszdef f():
   passzwhile False:
   passz
if x:
   f(x)zif x:
   f(x)
else:
   g(x)zclass T:
   passzc = '''
a=1
b=2
c=3
''')rr$s r�test_single_statement�#TestSpecifics.test_single_statement�s������G�$����I�&����I�&����K�(����M�*����1�2����2�3����F�#����-�.����/�0����3�4����,�-����<�=����/�0����9�:rc�6�URS5 URS5 URS5 URS5 URS5 URS5 URS5 URS5 URS	5 g)
Nz1
2z
def f(): passza = 13
b = 187zdel x
del yzf()
g()zf()
# blah
blah()zf()
xy # blah
blah()zx = 5 # comment
x = 6
zc = '''
d=1
'''
a = 1

b = 2
)rr$s r�test_bad_single_statement�'TestSpecifics.test_bad_single_statement�s���� � ��(�� � ��1�� � �!2�3�� � ��0�� � ��,�� � �!6�7�� � �!9�:�� � �!;�<�� � �!F�Grc�~�Sn[R"5n[RR	US5n[US5nUR
U5 SSS5 [R"U5SnSSS5 URSWR5 g!,(df   NL=f!,(df   N<=f)Ns0000
00000000000

�
�bad.py�wbr�%source code cannot contain null bytes��tempfile�TemporaryDirectory�os�pathr�r��writer�run_python_until_endr��err�r�src�tmpdr��fp�ress      r�"test_particularly_evil_undecodable�0TestSpecifics.test_particularly_evil_undecodable�s���4��
�
(�
(�
*�d������d�H�-�B��b�$��2�����
� ��4�4�R�8��;�C�	+�
	
�
�
�>����H� ���+�
*��#�-B.�B�!B.�
B+	�'B.�.
B<c�~�Sn[R"5n[RR	US5n[US5nUR
U5 SSS5 [R"U5SnSSS5 URSWR5 g!,(df   NL=f!,(df   N<=f)Ns#
#�
r�r�rr�r�r�s      r�$test_yet_more_evil_still_undecodable�2TestSpecifics.test_yet_more_evil_still_undecodable�s�����
�
(�
(�
*�d������d�H�-�B��b�$��2�����
� ��4�4�R�8��;�C�	+�
	
�
�
�>����H� ���+�
*�r�c�^^^^�[5nUS-mUS-m[US-5mS
UUUU4SjjnU"SS5 U"SS5 U"SS5 U"SS	5 g)Nr��dg�������?c��>�XT
--n[USU5 TT4HFnXU--nSRXU5nT	R[US9 [USU5 SSS5 MH g!,(df   MZ=f)Nr"zCompiling ({!r} + {!r} * {}))�msg)r�formatr�RecursionError)�prefix�repeatedr��	expect_ok�depth�broken�details�crash_depth�
fail_depthr�
success_depths       ����r�check_limit�@TestSpecifics.test_compiler_recursion_limit.<locals>.check_limit�s����M�!9�9�I��I�x��.�$�k�2���U�"2�2��8�?�?�"�e�5���&�&�~�7�&�C��F�H�d�3�D�C�	3�D�C�s�
A%�%
A4	rQz()z.bz[0]z*a)r)rr�)r�limitrrr
rs`  @@@r�test_compiler_recursion_limit�+TestSpecifics.test_compiler_recursion_limit�sa���&�'���Q�Y�
��c�k���E�C�K�(�
�	4�	4�	�C����C����C����C��rc��UR[S5 [SSS5 SSS5 UR[S5 [[S5SS5 SSS5 [[S5SSSS5nUR	[U5S5 [[S	5SSSS5nUR	[U5S5 [[S
5SSSS5nUR	[U5S5 UR	[[S	5SS5S5 [
5n[[S5SSU5 UR	USS
5 g!,(df   GN?=f!,(df   GN=f)Nzcannot contain nullz123�<dummy>r;s123r�r��s1234s$23$sax = 123rrR)r�rrr�r5r;rur#)rr��	namespaces   r�test_null_terminated�"TestSpecifics.test_null_terminated�s>���
#�
#�K�1F�
G��I�y�&�1�H�
�
#�
#�K�1F�
G��J�z�*�I�v�>�H��z�*�-�a��3�Y��G������d��R�(��z�'�*�1�R�0�)�V�D������d��R�(��z�'�*�1�R�0�)�V�D������d��R�(�	
����j��1�!�B�7�8�"�=��F�	��Z��
$�Q�r�
*�I�6�����3���,�H�
G��
G�
G�s�E�E/�
E,�/
E>c���URRHn[U5[U5:XdM g URSU<SURR<35 g)Nzunable to find constant z in )r�r��reprry)r�func�expected�consts    r�check_constant�TestSpecifics.check_constant�sK���]�]�,�,�E��E�{�d�8�n�,��-�
�I�I�!�4�=�=�#:�#:�<�
=rc�^�U4SjnU"S5 U"S5 U"S5 U"S5 U"S5 SSp2TRURRURR5 TRU[5 TR[
U"55[
[55 SS	p2S
nTRURRSURRSS5 TR[[URRS55URRS5 SS
p2TRURRURR5 TRU[S155 TRU"S55 g)Nc�0>�0nSU<SU<3n[X!5 USnUSnTRURRURR5 TR	X05 TR[
U"55[
U55 g�Nzf1, f2 = lambda: z
, lambda: r
r)r#r�r�r�rr5r)r�nsr�r
rrs     �r�check_same_constant�?TestSpecifics.test_merge_constants.<locals>.check_same_constantsu����B�8=�u�E�D���N��D��B��D��B��M�M�"�+�+�/�/����1F�1F�G�����*����T�"�$�Z��e��5rr�sabc�abcc��g�N.rjrjrrr�4TestSpecifics.test_merge_constants.<locals>.<lambda>s��rc��gr*rjrjrrrr+s��crc��g)N�
not a namerjrjrrrr+#s��rc��g)N�r.rjrjrrrr+#s��rc��US;$)N>r0rjrs rrr+$s
��q�-�-rr�c��US;$�N>rrjrs rrr+,���1��8rc��US;$r3rjrs rrr+,s��q�C�xr)r�r�r�rr8r5r�nextrp�	frozensetr�)rr%r
r�f3s`    r�test_merge_constants�"TestSpecifics.test_merge_constantssU���
	6�	�D�!��A���C� ��F�#��E�"��k�B��
�
�b�k�k�+�+�R�[�[�-B�-B�C����B��)�����b�d��T�(�^�4�&�'>�B�
-���
�
�b�k�k�+�+�A�.��k�k�+�+�A�.�q�1�	3��
�
�d�4���� 5� 5�a� 8�9�:��k�k�+�+�A�.�	0�
$�%7�B��
�
�b�k�k�+�+�R�[�[�-B�-B�C����B�	�1�#��/�����1��rc��SnSnURURRURR5 g)Nc�.�URR$r�rorlrs rr�5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>6���q�s�s�u�urc�.�URR$r)r�r��rQs rrr>7r?r)r�r��co_linetable)rr
rs   r�test_merge_code_attrs�#TestSpecifics.test_merge_code_attrs3s0����
���
�
�b�k�k�.�.����0H�0H�Irc�n�SnURURRURS45 g)Nc��g)�	docstring�usedrjrjrrr��2TestSpecifics.test_remove_unused_consts.<locals>.f=s���rrH�r5r�r�rh�rr�s  r�test_remove_unused_consts�'TestSpecifics.test_remove_unused_consts;s/��	 �	
������-�-��)�)�V�,�	.rc�V�SnURURRS5 g)Nc��g�NrHrjrjrrr��?TestSpecifics.test_remove_unused_consts_no_docstring.<locals>.fKs���rrP)r5r�r�rKs  r�&test_remove_unused_consts_no_docstring�4TestSpecifics.test_remove_unused_consts_no_docstringGs&��	 �	
������-�-�'�	)rc�d�SnS/nURS5 URS5 [U5H-nURSUS35 URSUS35 M/ URS5 S	RU5n0n[[	US
S5U5 [X$5 USn[
/S
Q[U5Vs/sHnSU3PM
 sn-5nURURRU5 S	RUSS5nURXe"55 gs snf)Nr�z	def f():
z	s = ''
z	for i in range(1):
z		if True: s += 'tz'
z		if False: s += 'fz
	return s
r(r�r#r�)Nr(r��tr�)
�appendrDr�r;rr#�tupler5r�r�)r�Nr�r�r}r�rs       r�'test_remove_unused_consts_extended_args�5TestSpecifics.test_remove_unused_consts_extended_argsTs�����~�����L�!����,�-��q��A��K�K�.�q�c��5�6��K�K�/��s�#�6�7��	
���N�#��w�w�t�}�����W�T�9�f�
-�q�1��T�
�
�c�F����5��8�)D�8�a�A�a�S�'�8�)D�D�E��������-�-�x�8��7�7�8�A�B�<�(������1�3�'��*Es�D-
c�n�SnURURRURS45 g)Nc��g)rGr�rjrjrrr
�0TestSpecifics.test_strip_unused_None.<locals>.f1os��rr�rJ)rr
s  r�test_strip_unused_None�$TestSpecifics.test_strip_unused_Noneks,��	�	
������.�.����R�0@�Arc��SnURS[[R"U55SR5 g)z9Regression test for issue35193 when run under clang msan.c��g)Nr�)�RuntimeErrorrjrr�unused_code_at_end�cTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds.<locals>.unused_code_at_end{s��r�RETURN_CONSTr�N)r5ra�dis�get_instructions�opname)rrcs  r�9test_peephole_opt_unreachable_code_array_access_in_bounds�GTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_boundsxs:��	.�	
������%�%�&8�9�:�2�>�E�E�	Grc	���[R"S5nSH�nURUS9 [USSUS9n0n[	X45 US:a URUSRS	5 OURUSR5 URUS
R5 URUSR5 SSS5 M� g!,(df   M�=f)Nz�
            def with_docstring():
                "docstring"

            def with_fstring():
                f"not docstring"

            def with_const_expression():
                "also" + " not docstring"
            )rr�r���optr"r#r�r��with_docstringrG�with_fstring�with_const_expression)r�r�r\rr#r5rhr)rr�rmr�r$s     r�test_docstring�TestSpecifics.test_docstring�s����o�o�	�	���C����#��&��s�H�f�s�C�����T����7��$�$�R�(8�%9�%A�%A�;�O��%�%�b�)9�&:�&B�&B�C��!�!�"�^�"4�"<�"<�=��!�!�"�%<�"=�"E�"E�F�'�&��&�&�s�BC�
C!	c	��[R"S5nSH�nURUS9 [USSUS9n[R
"5n[R"U5 [R"U5 SSS5 URSUR55 SSS5 M� g!,(df   N;=f!,(df   M�=f)Na
            def f():
                "docstring1"
                def h():
                    "docstring2"
                    return 42

                class C:
                    "docstring3"
                    pass

                return h
        )r�rr�r�rlr"r#r��NOP)r�r�r\r�io�StringIO�
contextlib�redirect_stdoutrfr6�getvalue)rr�rmr��outputs     r�test_docstring_omitted�$TestSpecifics.test_docstring_omitted�s����o�o��
��!�C����#��&��s�H�f�s�C��������/�/��7��G�G�D�M�8�� � �����):�;�'�&�!�8�7��'�&�s#�8C�#B/�:(C�/
B=�9C�
C	c��^�U4SjnU"SS5 U"SS5 U"SS5 U"SS5 U"S	S
5 SSp2TRURUR5 TRUS
5 TRUS5 TR[	U"55[	S
55 TR[	U"55[	S55 SSp2TRURUR5 TRU[S155 TRU[S155 TR
U"S55 TR
U"S55 g)Nc��>�0n[SU<SU<3U5 USnUSnTRURUR5 TRURUR5 TR	X05 TR	XA5 TR[
U"55[
U55 TR[
U"55[
U55 gr#)r#�assertIsNotr�rrr5r)�const1�const2r$r
rrs     �r�check_different_constants�JTestSpecifics.test_dont_merge_constants.<locals>.check_different_constants�s�����B��f�f�E�r�J��D��B��D��B����R�[�[�"�+�+�6�������R�[�[�9�����+�����+����T�"�$�Z��f��6����T�"�$�Z��f��6rrr'g�)r)r'rQ�arA)r�c��g)Nr�rjrjrrr�9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>�s��rc��g)N���rjrjrrrr��s��rr�r�c��US;$r3rjrs rrr��r4rc��US;$)N>r'rjrs rrr��s��q�E�zr)rr�rr5rr7r�)rr�r
rs`   r�test_dont_merge_constants�'TestSpecifics.test_dont_merge_constants�s ���
	7�	"�!�S�)�!�$��-�!�$��/�!�#�t�,�!�&�'�2��
�B�������b�k�k�2����B��&����B��&�����b�d��T�%�[�1�����b�d��T�%�[�1�$�%9�B�������b�k�k�2����B�	�1�#��/����B�	�3�%� 0�1�����1�������3�� rc�0�[S[S5S5 g)N�42�test_compile_pathliker)rr
r$s r�test_path_like_objects�$TestSpecifics.test_path_like_objects�s����h�6�7��Br�cpuc�T�[RS:XaSOSn[SU-SS5 g)N�androidi��i@
zif a: b
rr#)r��platformr)r�sizes  r�test_stack_overflow�!TestSpecifics.test_stack_overflow�s'���,�,�)�3�w�����d�"�I�v�6rc�&�SnSnSnSnXX4/nUH{n[[R"U55nUR[	U5S5 URSUSR5 URSUSR5 M} g)Nc��grrjrjrr�unused_block_if�PTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if�s��rc��grrjrjrr�unused_block_while�STestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while�s��rc��grrjrjrr�unused_block_if_else�UTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if_else�s���rc��grrjrjrr�unused_block_while_else�XTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while_else�s���rr�rer�)rarfrg�assertLessEqual�lenr5rh�argval)rr�r�r�r��funcsr�opcodess        r�)test_dead_blocks_do_not_generate_bytecode�7TestSpecifics.test_dead_blocks_do_not_generate_bytecode�s���	�	�	�	�!�%�@���D��3�/�/��5�6�G�� � ��W��q�1����^�W�R�[�-?�-?�@����T�7�2�;�#5�#5�6�	rc��SnSnX/nUH{n[[R"U55nURS[	U55 URSUSR
5 URSUSR5 M} g)Nc��grrjrjrr�break_in_while�;TestSpecifics.test_false_while_loop.<locals>.break_in_while���rc��grrjrjrr�continue_in_while�>TestSpecifics.test_false_while_loop.<locals>.continue_in_whiler�rr�rer�)rarfrgr5r�rhr�)rr�r�r�rr�s      r�test_false_while_loop�#TestSpecifics.test_false_while_loop
s��	�	� �3���D��3�/�/��5�6�G����Q��G��-����^�W�Q�Z�->�->�?����T�7�1�:�#4�#4�5�	rc�z�SnSnSnSnXX4/nUH�nURUS9 [[R"U55nUR	[U5S5 UR
SUSR5 URS	US
R5 SSS5 M� g!,(df   M�=f)Nc��U$rrjrs r�and_true�;TestSpecifics.test_consts_in_conditionals.<locals>.and_true ����rc��S$)NFrjrs r�	and_false�<TestSpecifics.test_consts_in_conditionals.<locals>.and_false#s���rc��S$)NTrjrs r�or_true�:TestSpecifics.test_consts_in_conditionals.<locals>.or_true&s���rc��U$rrjrs r�or_false�;TestSpecifics.test_consts_in_conditionals.<locals>.or_false)r�r�rr��LOAD_r��RETURN_VALUEr�)	r\rarfrgr�r�r�rhr5)rr�r�r�r�r�rr�s        r�test_consts_in_conditionals�)TestSpecifics.test_consts_in_conditionalss���	�	�	�	��g�8���D����4��(��s�3�3�D�9�:���$�$�S��\�1�5��
�
�g�w�r�{�'9�'9�:�� � �����1C�1C�D�	)�(��(�(�s�A9B+�+
B:	c��/SQnUH�n0n[[R"U5U5 USnURURS9 [[R"U55nUVs/sHofRPM nnURSU5 URSU5 URSU5 SSS5 M� gs snf!,(df   M�=f)N)z[            import os
            def foo():
                return os.uname()
            z}            import os as operating_system
            def foo():
                return operating_system.uname()
            zh            from os import path
            def foo(x):
                return path.join(x)
            zv            from os import path as os_path
            def foo(x):
                return os_path.join(x)
            rr��LOAD_METHOD�	LOAD_ATTR�CALL)r#r�r�r\rdrarfrgrhr6r�)r�sourcesrrrr��opcode�instructionss        r�test_imported_load_method�'TestSpecifics.test_imported_load_method6s���
��,�F��I������(�)�4��U�#�D����4�=�=��1��s�3�3�D�9�:��<C�D�G�&�
�
�G��D�� � ���=��
�
�k�<�8��
�
�f�l�3�2�1�	�� E�2�1�s�
$C
�.C�8C
�C
�
C	c��SnURRS-nX!RR5VVs/sHu p4UPM
 snn;degs snnf)Nc��[5 gr)�printrjrr�call�6TestSpecifics.test_lineno_procedure_call.<locals>.callYs���rr�)r�r�r�)rr��line1r�r�s     r�test_lineno_procedure_call�(TestSpecifics.test_lineno_procedure_callXsN��	��
�
�,�,�q�0���m�m�6L�6L�6N�O�6N�l�q�!�T�6N�O�O�O�O��Os�Ac�L^
^�Sm
U
4SjnU
4SjnU
4SjnU
4SjnXX4/n/SQnSmU4Sjn[XVSS9HXup�URUS	9 U"U5 URTRTRR
-
U	5 SSS5 MZ g!,(df   Ml=f)
NTc�$>�U"5 T(aggrrj�r�TRUEs �r�if1�<TestSpecifics.test_lineno_after_implicit_return.<locals>.if1cs���
�C���rc�$>�U"5 T(aggrrjr�s �r�if2�<TestSpecifics.test_lineno_after_implicit_return.<locals>.if2gs���
�C���rc�$>�U"5 T(aggrrjr�s �r�if3�<TestSpecifics.test_lineno_after_implicit_return.<locals>.if3ms���
�C���rc�$>�U"5 T(dggrrjr�s �r�if4�<TestSpecifics.test_lineno_after_implicit_return.<locals>.if4ss���
�C���r)r�r�r�r�c�2>�[R"S5mgr�)r��	_getframe)�frames�r�save_caller_frame�JTestSpecifics.test_lineno_after_implicit_return.<locals>.save_caller_framezs����M�M�!�$�Er��strictr�)�zipr\r5�f_lineno�f_coder�)rr�r�r�r�r��	lastlinesr�r�lastliner�r�s          @@r�!test_lineno_after_implicit_return�/TestSpecifics.test_lineno_after_implicit_return`s������	�	�	�	��C�%��!�	���	%�"�%�4�@�N�D����4��(��&�'�� � �������0K�0K�!K�X�V�)�(�A�(�(�s�<B�
B#	c��SnSnX4H�nURUS9 X1LaURcSSS5 M/URnUR5uupVnUR	US5 UR	U[UR55 UR	XtR5 SSS5 M� g!,(df   M�=f)Nc��g)z
doc stringNrjrjrr�no_code1�9TestSpecifics.test_lineno_after_no_code.<locals>.no_code1���rc��grrjrjrr�no_code2�9TestSpecifics.test_lineno_after_no_code.<locals>.no_code2�r�rr�r)r\rhr�r�r5r��co_coder�)rr�r�rr��start�endr�s        r�test_lineno_after_no_code�'TestSpecifics.test_lineno_after_no_code�s���	�	��(�D����4��(��#��(8�(8�(@��)�(��}�}��'+�}�}��$�#�%�d�� � ���*�� � ��c�$�,�,�&7�8�� � ��':�':�;�)�(�)�(�(�s�B9�A3B9�9
C	c��Sn/nUR5H1u pEUcMXR:wdMURXQR-
5 UnM3 U$)Nr�)r�rVr�)rr��	last_liner�r�r�s      r�get_code_lines�TestSpecifics.get_code_lines�sL���	����-�-�/�J�A�q���D�$5��
�
�4�"5�"5�5�6� �	�*��
rc��Sn/SQnSn/SQnSn/SQnSn/SQnXXW/n	X$Xh/n
[X�S	S
9HIup�URUS9 URUR5n
UR	X�5 SSS5 MK g!,(df   M]=f)Nc�"�[R$r)�orQrjrr�	load_attr�6TestSpecifics.test_lineno_attribute.<locals>.load_attr�s�����
r)rr�r�r�c�,�[RS5$�Nr)rr|rjrr�load_method�8TestSpecifics.test_lineno_attribute.<locals>.load_method�s�������
r)rr�r�r�r�r�c�"�[[lgr)�vrrQrjrr�
store_attr�7TestSpecifics.test_lineno_attribute.<locals>.store_attr�s��
��r)rr�r�r�c�>�[=R[-
slgr)rrQrrjrr�aug_store_attr�;TestSpecifics.test_lineno_attribute.<locals>.aug_store_attr�s�������	
�r)rr�r�r�r�r�Tr�r�)r�r\rr�r5)rr�load_attr_linesr�load_method_linesr�store_attr_linesr�aug_store_attr_linesr��
func_linesrr��
code_liness              r�test_lineno_attribute�#TestSpecifics.test_lineno_attribute�s���	�
)��	�1��	�*��	� 4���*�E��&�!�9�
��u��>�K�D����4��(�!�0�0����?�
�� � ��3�)�(�?�(�(�s�-A=�=
B	c��Sn/SQnURRSnURU5nURX$5 g)Nc��S[5$)Nc3�&# �UHnSv� M	 g7f)r�Nrj�r?rs  rr@�OTestSpecifics.test_line_number_genexp.<locals>.return_genexp.<locals>.<genexpr>�s��������s�)rorjrr�
return_genexp�<TestSpecifics.test_line_number_genexp.<locals>.return_genexp�s����	�
r)rr�r�rr�r�)r�r�rr5)rr&�genexp_lines�genexp_coders     r�test_line_number_genexp�%TestSpecifics.test_line_number_genexp�sB��	�'��#�,�,�6�6�q�9���(�(��5�
�����2rc�j�Sn/SQnURUR5nURX#5 g)Nc��8# �UShv�Nn[ MN
g7fr)rv)�aseqr�s  rr��LTestSpecifics.test_line_number_implicit_return_after_async_for.<locals>.test�s����
�a��
�4�s�����	��)rr�r�r�)rr�r5)rr��expected_linesrs    r�0test_line_number_implicit_return_after_async_for�>TestSpecifics.test_line_number_implicit_return_after_async_for�s0��	�&���(�(����7�
�����4rNc���[U[5(aU4n[R"U5HCnU(dMURU;dMURURR5 ME gr)r�r�rf�Bytecoderh�assertIsNotNone�	positionsr�)rr��opnames�insts    r�check_line_numbers� TestSpecifics.check_line_numbers�sS��
�g�s�#�#��k�G��L�L��&�D��w�4�;�;�'�1��$�$�T�^�^�%:�%:�;�'rc�B�SnURURS5 g)Nc3�l# �[Hn[(aSv� MM g![a M'f=f7f)Nr�)�it�C1�OSErrorrs rr��NTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors.<locals>.f�s6�������r����������s�
4�#�4�
1�4�1�4�
JUMP_BACKWARD�r9r�rKs  r�5test_line_number_synthetic_jump_multiple_predecessors�CTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors�s��	�	
����
�
�O�<rc�B�SnURURS5 g)Nc��[HnSnM g![a' [(aSnM&M)![a M7f=ff=f)Nr�r�r�)r=r?�C3�r�Xs  rr��UTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_nested.<locals>.f�sR������A����
����2� !�A���"�����	�s��
A�
0�
?�A�?�ArArBrKs  r�<test_line_number_synthetic_jump_multiple_predecessors_nested�JTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_nested�s��
	�	
����
�
�O�<rc�B�SnURURS5 g)Nc��[HnSnM g![ai [(a[(aSnM1M4M7![a9 [(a[(aSnM^MbMf![a Muf=ff=ff=f)Nr�r�r�r�)r=r?rG�C4rHs  rr��ZTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_more_nested.<locals>.fs�����
!��A�����!�
!��2�!�r�$%�� "���#�!�!�!�r�#%�2�()�A�$&� "�� '�!� �!��!��!�sN��
B�>�
B�	A-�!B�%B�)B�-
A=	�7B�8B�<A=	�=B�BrArBrKs  r�Atest_line_number_synthetic_jump_multiple_predecessors_more_nested�OTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_more_nesteds��	�$	
����
�
�O�<rc�B�SnURURS5 g)Nc�8�[Hn[(dMM gr�rror�s rr��ITestSpecifics.test_lineno_of_backward_jump_conditional_in_loop.<locals>.fs�����1��rrArBrKs  r�0test_lineno_of_backward_jump_conditional_in_loop�>TestSpecifics.test_lineno_of_backward_jump_conditional_in_loops��	�
	
����
�
�O�<rc��SnSSRS[U555-S-nUR[[	U55U5 g)Ni�{�,c3�.# �UHoSU3v� M
 g7f)�:Nrjr$s  rr@�6TestSpecifics.test_big_dict_literal.<locals>.<genexpr>*s���!G�6F��C�q���*�6F�rB�})r�rDr5r�r;)r�	dict_size�the_dicts   r�test_big_dict_literal�#TestSpecifics.test_big_dict_literal#sE���	�����!G�e�I�6F�!G�G�G�#�M������T�(�^�,�i�8rc�$�SnSnSn[[R"USS95HgupEURS:XaUR	UR
S5 M3URU;dMEUR	UR
US-U-5 Mi g)	Nc�*�SnUS:�aUS-nOgSnM)Nr�rr�rj)�vals r�
if_else_break�ITestSpecifics.test_redundant_jump_in_if_else_break.<locals>.if_else_break1s'���C����7��1�H�C����rr�)�POP_JUMP_IF_FALSE�POP_JUMP_IF_TRUE�
JUMP_ABSOLUTE�JUMP_FORWARDT)�show_cachesrlrr�)�	enumeraterfr4rhrr�)rrg�
INSTR_SIZE�
HANDLED_JUMPSr��instrs      r�$test_redundant_jump_in_if_else_break�2TestSpecifics.test_redundant_jump_in_if_else_break-s���	��
�
�
�%��L�L��D�9�
�K�D��|�|�~�-��#�#�E�I�I�q�1�����.��#�#�E�I�I��q��*�/D�E�

rc�|�Sn[R"U5HnURURS5 M! g)Nc�D�Xs=:aU:dO Xs=:aU:dMg Ngrrj�rQr�r�s   r�while_not_chained�@TestSpecifics.test_no_wraparound_jump.<locals>.while_not_chainedMs���y�q�y���y�q�y�yr�EXTENDED_ARG)rfr4rrh)rrwrqs   r�test_no_wraparound_jump�%TestSpecifics.test_no_wraparound_jumpJs1��	��\�\�"3�4�E�������n�=�5rc��^�U4SjnSnSnSnSnU"USS5 U"USS	5 U"US
S5 U"USS	5 U"USS5 U"USS	5 U"USS5 U"US
S5 U"USS	5 g)Nc�>�Sn[R"U5HnURU:XdMUS-
nM TRX25 g�Nrr�)rfr4rhr5)rr�r�actualrqrs     �r�check_op_count�BTestSpecifics.test_uses_slice_instructions.<locals>.check_op_countWs@����F����d�+���<�<�2�%��a�K�F�,�
���V�.rc�p�[[[[[S-[S[-[SS-$r)rrQr�rjrr�load�8TestSpecifics.test_uses_slice_instructions.<locals>.load^s,���Q�q�6�A�q�r�F�?�Q�r��U�*�Q�q�T�1�1rc��[[[[&[[[S&[[S[&[[SS&gr)rorrQr�rjrr�store�9TestSpecifics.test_uses_slice_instructions.<locals>.storeas,���A�a��F��A�q�r�F��A�b�q�E��A�a�Drc�2�[[[[2$r)rrQr�r�rjrr�
long_slice�>TestSpecifics.test_uses_slice_instructions.<locals>.long_slicegs���Q�q��U�8�Orc�@�[[[===[-
sss&gr)rrQr�rorjrr�aug�7TestSpecifics.test_uses_slice_instructions.<locals>.augjs��
�a��F�a�K�Fr�BINARY_SLICEr��BUILD_SLICEr�STORE_SLICEr�rj)rr�r�r�r�r�s`     r�test_uses_slice_instructions�*TestSpecifics.test_uses_slice_instructionsTs����	/�	2�	�	�	�	�t�^�Q�/��t�]�A�.��u�m�Q�/��u�m�Q�/��z�=�!�4��z�>�1�5��s�N�A�.��s�M�1�-��s�M�1�-rc���SH�upSUSUS3nSSSS[U54/-nSU3SUS	3S
US34H�n[USS
5n[R"U5Vs/sH1nURRU5(dM%URPM3 nnURU5 URX�5 SSS5 M� M� gs snf!,(df   M�=f)N))�COMPARE_�<)r�z<=)r��>)r�z>=)�CONTAINS_OP�in)r�znot in)�IS_OP�is)r�zis notza z b z cr�rz\
zif \
z: xzx if \
z else yr"r#)	r�rrfrgrh�
startswithr6r\r5)	r�
opname_prefixr�r[�expected_positionsrr��instruction�actual_positionss	         r�test_compare_positions�$TestSpecifics.test_compare_positionsws���	"
��M���t�3�r�d�"�%�D�!"�q�!�Q��D�	�&:�%;�!;���t�f�
����c�2�i��v�W�4M����v�x��8��(+�';�';�D�'A�$�'A��"�)�)�4�4�]�C�*�K�)�)�'A�!�$�
�\�\�&�)��$�$�%5�J�*�)��	"
�� $�
*�)�s�$C
�C
�'C�
Cc��/SQnUH(nURUS9 [USS5 SSS5 M* g!,(df   M<=f)N)zassert (False if 1 else True)z=def f():
	if not (False if 1 else True): raise AssertionErrorz2def f():
	if not (False if 1 else True): return 12rZrr#)r\rr_s   r�)test_if_expression_expression_empty_block�7TestSpecifics.test_if_expression_expression_empty_block�s>��
��
�D����4��(���j�&�1�)�(��(�(�s	�4�
A	c�J�[R"S5n[USS5 g)Nz�
            def foo(param, lambda_exp):
                pass

            foo(param=0,
                lambda_exp=lambda:
                1)
        r"r#r�rs  r�"test_multi_line_lambda_as_argument�0TestSpecifics.test_multi_line_lambda_as_argument�s#����� �
��	��h��'rc�<�SnURU"SS5S5 g)Nc��Xn U$rrj)rrorQs   rr��0TestSpecifics.test_apply_static_swaps.<locals>.f�s���q�A��Hrrror�rKs  r�test_apply_static_swaps�%TestSpecifics.test_apply_static_swaps�s��	�	
����3���c�*rc�>�SnURU"SSS5S5 g)Nc��XUsp4nU$rrj�rrorlrQr�s     rr��2TestSpecifics.test_apply_static_swaps_2.<locals>.f�s���A�G�A�!��Hrrrorlr�rKs  r�test_apply_static_swaps_2�'TestSpecifics.test_apply_static_swaps_2��"��	�	
����3��S�)�3�/rc�>�SnURU"SSS5S5 g)Nc��XUpC U$rrjr�s     rr��2TestSpecifics.test_apply_static_swaps_3.<locals>.f�s���A�!�A��Hrrrorlr�rKs  r�test_apply_static_swaps_3�'TestSpecifics.test_apply_static_swaps_3�r�rc�8�SnURU"5S5 g)Nc��SoS-nSnX4$)Nr��6rj�rQr�s  rr��0TestSpecifics.test_variable_dependent.<locals>.f�s���A�B��A�B���4�Kr)r��`r�rKs  r�test_variable_dependent�%TestSpecifics.test_variable_dependent�s��	�	
�����h�'rc�
�Sng)Nc��[(a[(a[$gg! O=f[(a[(aM(ggr)�element�	somethingrjrrr��9TestSpecifics.test_duplicated_small_exit_block.<locals>.f�s4���'�i�i��$�$�(�'�����	�'�i�i�'s� �$rjrKs  r� test_duplicated_small_exit_block�.TestSpecifics.test_duplicated_small_exit_block�s��	rc�
�Sng)Nc�L�[(agS g! O=f[(aMNr�)r�rjrrr��5TestSpecifics.test_cold_block_moved_to_end.<locals>.f�s%���$��������	�$s�rjrKs  r�test_cold_block_moved_to_end�*TestSpecifics.test_cold_block_moved_to_end�s��	rc�
�Sng)Nc�*�U(aS U(aMggrrjrs rr��MTestSpecifics.test_remove_empty_basic_block_with_jump_target_label.<locals>.f�s������!rrjrKs  r�4test_remove_empty_basic_block_with_jump_target_label�BTestSpecifics.test_remove_empty_basic_block_with_jump_target_label�s��	rc�
�Sng)Nc�L�[(aO[(a[ g[ gr)r�r�rQr~rjrrr��<TestSpecifics.test_remove_redundant_nop_edge_case.<locals>.f�s���q�!�a�a�A�arrjrKs  r�#test_remove_redundant_nop_edge_case�1TestSpecifics.test_remove_redundant_nop_edge_case�s��	(rc�h�[R"S5nSS00p2SHn[X-X#5 M g)Nz�            def f():
                try:
                    pass
                %s Exception:
                    global a
                else:
                    print(a)
        rQr�)�exceptzexcept*)r�r�r#)rr�r}r�kws     r�.test_global_declaration_in_except_used_in_else�<TestSpecifics.test_global_declaration_in_except_used_in_else�s8����� �
���Q�x��1�'�B����A�!�(rc�^�U4Sjmg)Nc��r># �S=SLa O=n UVs0sShv�Nn[T_M// gN
Os snf nN7f)NrT)�name_3)�name_5�name_2�name_4s  �rr��7TestSpecifics.test_regression_gh_120225.<locals>.name_4�s4��������8>�?�?�f�V�V�^��D�@��?�s(�7�/�-�+
�-�
/�7�-�/�7rj)rr�s @r�test_regression_gh_120225�'TestSpecifics.test_regression_gh_120225�s���	rc�b�[R"S5n[R"SS9n[R"S5 [S5Hn[
USS5 M SSS5 URWVs/sHoDRPM snSS	/S-5 g!,(df   N@=fs snf)
Nzw
            # tokenizer
            1or 0  # line 3
            # code generator
            1 is 1  # line 5
        T��record�defaultr��<stdin>r#r�r�)	r�r��warnings�catch_warnings�simplefilterrDrr5r�)rr�caughtr��wms     r�test_compile_warnings�#TestSpecifics.test_compile_warnings�s������"�
���
$�
$�D�
1�V��!�!�)�,��1�X����	�6�2��2�	
���f�5�f��)�)�f�5��1�v��z�B�
2�
1��6s�6B�8B,�
B)c�j�[R"S5n[R"SS9n[R"S5 [USS5 SSS5 UR
[SW55SS	/5 UHHnUR
UR[5 URS
[UR55 MJ [R"S5n[R"SS9n[R"S5 [USS5 SSS5 UR
[SU55S
S/5 UHHnUR
UR[5 URS
[UR55 MJ g!,(df   GNJ=f!,(df   N�=f)Nz�
            try:
                pass
            finally:
                1 is 1  # line 5
                try:
                    pass
                finally: # nested
                    1 is 1  # line 9
        Tr��alwaysr�r#c3�8# �UHoRv� M g7fr�r��r?r�s  rr@�@TestSpecifics.test_compile_warning_in_finally.<locals>.<genexpr>!����;�F�b�	�	�F���r��	z"is" with 'int' literalaK
            try:
                pass
            except *Exception:
                pass
            finally:
                1 is 1  # line 7
                try:
                    pass
                except *Exception:
                    pass
                finally: # nested
                    1 is 1  # line 13
        c3�8# �UHoRv� M g7frr�r�s  rr@r�:r�r���
)
r�r�r�r�r�rr5�sorted�categoryr^r�r��message)rrr�r�s    r�test_compile_warning_in_finally�-TestSpecifics.test_compile_warning_in_finally
sL��
���	"�	
���
$�
$�D�
1�V��!�!�(�+��F�I�v�.�2�	
����;�F�;�;�a��V�D��B����R�[�[�-�8��M�M�5�s�2�:�:��G��
���
"�

���
$�
$�D�
1�V��!�!�(�+��F�I�v�.�2�	
����;�F�;�;�a��W�E��B����R�[�[�-�8��M�M�5�s�2�:�:��G��=2�
1��22�
1�s�$F�3$F$�
F!�$
F2rjr)mrdrerfrgrrr%r)r-r7r<rArErIr�unittest�skipIfr�is_wasir�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr9rErSrWrarerhr�r�r�r�r�r�r�r��cpython_onlyr�r�r�r�r�rrrr9rCrLrRrYr^rirqr{r�r��requires_resourcer�r�r�r�r�r�r�rrrr*r1r9rCrKrQrWrbrrrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrirjrrrrs���.�D�*�&�Q�-�J�L�Q�J�-%�^�_�_�W�_�_�&F�G�'�H�'�2D�8�'�*�1�B>�D�&�{�{�)�)�	9� �I�(-I�^>�%�K�*F2�P �?�;�4�'�$�D�6C�6C�2!D�FD�(	*�P�
;�
���>��>�;�"	H�I�I�
���
�_�_�W�_�_�&F�G��H���2-�(=�
���(��(�X
���J��J�
���	.��	.�
���
)��
)�
���(��(�,
���B��B�
���G��G�
���G��G�2
���<��<�.&!�PC�
���u�%�7�&�7�
���7��7�<6�$E�. 4�DP� W�D<�"�*4�X3�5�	<�	=�
=�=�*=�9�F�:>�
��� .�� .�DK�2	2�
(�+�0�0�(��	��(�
#� 	�C�"0Hrrc�h�\rSrSrSrS(SjrSrSrSr\	S5r
\R"\
RRS5S	5rS
rSrSrS
rSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&S r'S!r(\)RTS"5r+S#r,S$r-S%r.S&r/g'))�TestSourcePositionsi@c�h^	^
^^�[USS5n[USS[R5nUR[	U5[R
:H5 [
5[
5[
5[
54ummm	m
"U	U
UU4SjS[R5nU"5RU5 UR5HdupVpxUS:XaMUbURUT5 UbURUT5 UbURUT	5 UcMRURUT
5 Mf X#4$)Nztest_compile.pyr#c�2>^�\rSrSrUUUUU4SjrSrU=r$)�LTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitoriNc�z>�[TU]U5 [U[R[R
[R45(dgTRUR5 TRUR5 TRUR5 TRUR5 gr)�super�
generic_visitr�ryr[r��pattern�addr�r�r�r�)rr��	__class__�columns�end_columns�	end_linesr�s  �����rr�ZTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitor.generic_visitOsu�����%�d�+�!�$����3�8�8�S�[�[�(I�J�J���	�	�$�+�+�&��
�
�d�o�o�.����D�O�O�,����� 3� 3�4rrj)rdrerfrgrri�
__classcell__)rrrrr�s@����r�SourceOffsetVisitorrNs
���
5�
5rrr)rr�r�r�r�rz�setry�NodeVisitor�visit�co_positionsr�)
r�snippetr��ast_treerr��end_line�col�end_colrrrr�s
         @@@@r�check_positions_against_ast�/TestSourcePositions.check_positions_against_astEs
����w� 1�6�:���7�$5�v�t�?Q�?Q�R������X��$�+�+�5�6�25����s�u�c�e�1K�.��y�'�;�	5�	5�#�/�/�	5�	��#�#�H�-�/3�.?�.?�.A�*�T�S��q�y�����
�
�d�E�*��#��
�
�h�	�2����
�
�c�7�+��"��
�
�g�{�3�/B��~�rc��[[R"U5UR55Hyup�URU:XdMUS-nU(aM%URU	SU5 URU	SU5 URU	SU5 URU	SU5  g UR
SUS35 g)Nr�rr�r�zOpcode z not found in code)r	rfr4rrhr5ry)
rr�r�r�r�column�
end_column�
occurrencerq�positions
          r�assertOpcodeSourcePositionIs�0TestSourcePositions.assertOpcodeSourcePositionIsks��� ;��L�L���� 1� 1� 3� 
�O�E��|�|�v�%��a��
�!�z��$�$�X�a�[�$�7��$�$�X�a�[�(�;��$�$�X�a�[�&�9��$�$�X�a�[�*�=�� 
�	
�	�	�G�F�8�#5�6�7rc�*�SnURU5 g)Nzx = 1)r!�rrs  r�test_simple_assignment�*TestSourcePositions.test_simple_assignment|s�����(�(��1rc
��SS-nUS-
nURU5up#URUSSSSSSS	9 URUSS
S
SSSS	9 g)Nzx = x
i'z/while x != 0:
  x -= 1
while x != 0:
  x +=  1
�	BINARY_OPi'r��r��r�rr$r%r&i'r��r!r(�rr�
compiled_coder�s    r� test_compiles_to_extended_op_arg�4TestSourcePositions.test_compiles_to_extended_op_arg�sz���f�$���"�	�� �;�;�G�D��
��)�)�-���j���q�	*�	2�	
�)�)�-���j���q�	*�	2rc	�~�[R"S5nURU5up#URUSSSSSS9 g)NzD            f(
                1, 2, 3, 4
            )
            r�r�r�r�r�rr$r%�r�r�r!r(r3s    r�test_multiline_expression�-TestSourcePositions.test_multiline_expression�sJ���/�/�#���
 �;�;�G�D��
��)�)�-���Q�q�Q�	*�	8rc
�(�[R"S5nURU5up#URUSSSSSSS9 URUSSSSS	SS9 URUSSSS
SSS9 URUSSSS
SSS9 URUSSSS
SSS9 g)Nz�            if (a or
                (b and not c) or
                not (
                    d > 0)):
                x = 42
            rjr�r�r�r1rir�����
COMPARE_OPr0r�r9r3s    r�!test_multiline_boolean_expression�5TestSourcePositions.test_multiline_boolean_expression�s����/�/�#��� �;�;�G�D��
��)�)�-�9K��Q�q�Q�1�	*�	F�	
�)�)�-�9L��Q�q�Q�1�	*�	F�	
�)�)�-�9L��Q�r�b�Q�	*�	H�	
�)�)�-���Q�q�R�A�	*�	G�	
�)�)�-�9K��Q�q�R�A�	*�	Grz)Assertions are disabled in optimized modec
��[R"S5nURU5up#URUSSSSSSS9 URUSSSS	SS
S9 URUSSSSSSS9 URUSSSS
SSS9 g)Nzz            assert (a > 0 and
                    bb > 0 and
                    ccc == 1000000), "error msg"
            �LOAD_ASSERTION_ERRORr�r�r�$r1�
LOAD_CONST�r�r��
RAISE_VARARGSr0�r9r3s    r�test_multiline_assert�)TestSourcePositions.test_multiline_assert�s����/�/�#���
 �;�;�G�D��
��)�)�-�9O��Q�q�R�A�	*�	G�	
�)�)�-���Q�r�b�Q�	*�	H��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
�2�[R"S5nURU5up#URSnUR	U[
R5 URUSSSSSSS9 URUSSSSSSS9 URUS	S
S
SSSS9 g)
Nz�            ((x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50))
            r�YIELD_VALUEr�r�r0r1rArer�r���r�r�r!r�r�r�r�r(r3s    r�#test_multiline_generator_expression�7TestSourcePositions.test_multiline_generator_expression�s����/�/�#��� �;�;�G�D��
�%�/�/��2�
����m�U�^�^�<��)�)�-���Q�q�Q�1�	*�	F��)�)�-���Q�q�Q�1�	*�	F��)�)�-���Q�q�R�A�	*�	Grc
��[R"S5nURU5up#URSnUR	U[
R5 URUSSSSSSS9 URUSSS	SS
SS9 g)Nz�            ((x,
                2*x)
                async for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50))
            rrMr�r�r0r1rer=� rOr3s    r�)test_multiline_async_generator_expression�=TestSourcePositions.test_multiline_async_generator_expression�s����/�/�#��� �;�;�G�D��
�%�/�/��2�
����m�U�^�^�<��)�)�-���Q�q�Q�1�	*�	F��)�)�-���Q�q�R�A�	*�	Grc
���[R"S5nURU5up#URU[R
5 UR
USSSSSSS9 UR
USSSSSSS9 g)Nz�            [(x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)]
            �LIST_APPENDr�r�r0r1rA�r�r�r!r�r�r�r(r3s    r�!test_multiline_list_comprehension�5TestSourcePositions.test_multiline_list_comprehension�s����/�/�#��� �;�;�G�D��
����m�U�^�^�<��)�)�-���Q�q�Q�1�	*�	F��)�)�-���Q�q�Q�1�	*�	Frc
�L�[R"S5nURU5up#0n[X$5 USRnURU[R5 URUSSSSSSS	9 URUS
SSSSSS	9 URUSSSS
SSS	9 g)Nz�            async def f():
                [(x,
                    2*x)
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)]
            r�rWr�r�r�rRr�r1rArer�r�rE�	r�r�r!r;r�r�r�r�r(�rrr4r�r}s     r�'test_multiline_async_list_comprehension�;TestSourcePositions.test_multiline_async_list_comprehension�s����/�/�#��� �;�;�G�D��
����]���#����
����m�U�^�^�<��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
���[R"S5nURU5up#URU[R
5 UR
USSSSSSS9 UR
USSSSSSS9 g)Nz�            {(x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)}
            �SET_ADDr�r�r0r1rArXr3s    r� test_multiline_set_comprehension�4TestSourcePositions.test_multiline_set_comprehension����/�/�#��� �;�;�G�D��
����m�U�^�^�<��)�)�-���Q�q�Q�1�	*�	F��)�)�-���Q�q�Q�1�	*�	Frc
�L�[R"S5nURU5up#0n[X$5 USRnURU[R5 URUSSSSSSS	9 URUS
SSSSSS	9 URUSSSS
SSS	9 g)Nz�            async def f():
                {(x,
                    2*x)
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)}
            r�rar�r�r�rRr�r1rArer�r�rEr\r]s     r�&test_multiline_async_set_comprehension�:TestSourcePositions.test_multiline_async_set_comprehension$����/�/�#��� �;�;�G�D��
����]���#����
����m�U�^�^�<��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
���[R"S5nURU5up#URU[R
5 UR
USSSSSSS9 UR
USSSSSSS9 g)Nz�            {x:
                2*x
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)}
            �MAP_ADDr�r�r�r1rArXr3s    r�!test_multiline_dict_comprehension�5TestSourcePositions.test_multiline_dict_comprehension:rdrc
�L�[R"S5nURU5up#0n[X$5 USRnURU[R5 URUSSSSSSS	9 URUS
SSSSSS	9 URUSSSS
SSS	9 g)Nz�            async def f():
                {x:
                    2*x
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)}
            r�rjr�r�r��r�r1rArer�r�rEr\r]s     r�'test_multiline_async_dict_comprehension�;TestSourcePositions.test_multiline_async_dict_comprehensionJrhrc
��[R"S5nURU5up#URUSSSSSSS9 URUSSSSSSS9 URUS	SSSSSS9 URUS	SSSSSS9 g)
NzU            match x:
                case a, b:
                    pass
            �MATCH_SEQUENCEr�r�r�r�r1�UNPACK_SEQUENCE�
STORE_NAMEr9r3s    r�test_matchcase_sequence�+TestSourcePositions.test_matchcase_sequence`s����/�/�#���
 �;�;�G�D��
��)�)�-�9I��Q�q�R�A�	*�	G��)�)�-�9J��Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
�(�[R"S5nURU5up#URUSSSSSSS9 URUSSSSSSS9 URUS	SSSSSS9 URUS	SSSSSS9 URUS	SSSSS
S9 g)NzY            match x:
                case a, *b, c:
                    pass
            rrr�r��r�r1�	UNPACK_EXrtr�r9r3s    r� test_matchcase_sequence_wildcard�4TestSourcePositions.test_matchcase_sequence_wildcardps����/�/�#���
 �;�;�G�D��
��)�)�-�9I��Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
��[R"S5nURU5up#URUSSSSSSS9 URUSSSSSSS9 URUS	SSSSSS9 URUS	SSSSSS9 g)
Nzb            match x:
                case {"a" : a, "b": b}:
                    pass
            �
MATCH_MAPPINGr�r��r�r1�
MATCH_KEYSrtr9r3s    r�test_matchcase_mapping�*TestSourcePositions.test_matchcase_mapping�����/�/�#���
 �;�;�G�D��
��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
��[R"S5nURU5up#URUSSSSSSS9 URUSSSSSSS9 URUS	SSSSSS9 URUS	SSSSSS9 g)
Nzg            match x:
                case {"a" : a, "b": b, **c}:
                    pass
            r}r�r��r�r1rrtr9r3s    r�test_matchcase_mapping_wildcard�3TestSourcePositions.test_matchcase_mapping_wildcard�r�rc
��[R"S5nURU5up#URUSSSSSSS9 URUSSSSSSS9 URUS	SSSSSS9 URUS	SSSSSS9 g)
NzX            match x:
                case C(a, b):
                    pass
            �MATCH_CLASSr�r�r?r�r1rsrtr9r3s    r�test_matchcase_class�(TestSourcePositions.test_matchcase_class�s����/�/�#���
 �;�;�G�D��
��)�)�-���Q�q�R�A�	*�	G��)�)�-�9J��Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc
��[R"S5nURU5up#URUSSSSSSS9 URUSSSSS	SS9 g)
Nz\            match x:
                case C(1) | C(2):
                    pass
            r�r�r�r�r�r1r?�r9r3s    r�test_matchcase_or�%TestSourcePositions.test_matchcase_or�sp���/�/�#���
 �;�;�G�D��
��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�r�b�Q�	*�	Hrc	�b�SnSUS3nURU5up4URUSSSSSS9 g)	N��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazg('z')r�r�ri�r8r2)r�long_stringrr4r�s     r�test_very_long_line_end_offset�2TestSourcePositions.test_very_long_line_end_offset�sJ��!����}�B�'���;�;�G�D��
��)�)�-���Q�q�T�	*�	;rc
��SnURU5up#URUSSSSSS9 URUSSSSSSS	9 URUSSSSS
SS	9 URUSSSSS
SS	9 URUSSSSS
SS	9 g)Nza - b @ (c * x['key'] + 23)�
BINARY_SUBSCRr�r��r8r/r�r1r~r�r��r�rr2r3s    r�#test_complex_single_line_expression�7TestSourcePositions.test_complex_single_line_expression�s���/���;�;�G�D��
��)�)�-���Q�r�b�	*�	:��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	G��)�)�-���Q�q�R�A�	*�	Grc���[R"S5nURSn[R"[R"[R
"[R"S[R"55S[R"55//55n[R"X25 [R"U5 X1RS'[USS5 g)Nz
assert (
42
)rr��eggsr"r#)ryr�rvr{�Call�	Attributer�r��
copy_locationr�r)rr��old_node�new_nodes    r�.test_multiline_assert_rewritten_as_method_call�BTestSourcePositions.test_multiline_assert_rewritten_as_method_call�s����y�y�*�+���9�9�Q�<���8�8��H�H��
�
��H�H�V�S�X�X�Z�0���H�H�J��
��
�

��	���(�-��!�!�(�+��	�	�!����h��'rc��SnSH�nURU5 0n[R"URU55n[R
"5 [R"S[5 [XC5 SSS5 USRnURUSSSSSS	9 SSS5 M� g!,(df   N>=f!,(df   M�=f)
Nz�
        import abc, dis
        import ast as art

        abc = None
        dix = dis
        ast = art

        def f():
        {}
        )
z    abc.a()z    art.a()z    ast.a()z    dis.a()z    dix.a()z    abc[...]()z    art()()z   (ast or ...)()z
   [dis]()z   (dix + ...)()�ignorer��LOAD_GLOBALr�r�r�r8)r\r�r�rr�r�r�r^r#r�r()r�source_templatervrrr�s      r�$test_push_null_load_global_positions�8TestSourcePositions.test_push_null_load_global_positions�s���
��
�D����d�#��	�!����)?�)?��)E�F���,�,�.��)�)�(�M�B���+�/�!��~�.�.���1�1��!���� �
2��$�#�
�/�.��$�#�s#�=C�'B5�=+C�5
C�?C�
C	c	�r�Sn[USS5nURUSSSSSS9 URUS	SSSSS9 g)
Nz/(
 lhs  
   .    
     rhs      
       ) += 42r"r#r�r�r�r0r8�
STORE_ATTR�rr(�rrr�s   r�test_attribute_augassign�,TestSourcePositions.test_attribute_augassignsW��F���v�x��0���)�)��+�A��!��	*�	
�	
�)�)��,�Q��1��	*�	
rc	�J�Sn[USS5nURUSSSSSS9 g)	Nz-del (
 lhs  
   .    
     rhs      
       )r"r#�DELETE_ATTRr�r�r0r8r�r�s   r�test_attribute_del�&TestSourcePositions.test_attribute_dels5��D���v�x��0���)�)��-�a�!�A�!�	*�	
rc	�J�Sn[USS5nURUSSSSSS9 g)	Nz)(
 lhs  
   .    
     rhs      
       )r"r#r�r�r�r0r8r�r�s   r�test_attribute_load�'TestSourcePositions.test_attribute_load%s5��@���v�x��0���)�)��+�A��!��	*�	
rc	�J�Sn[USS5nURUSSSSSS9 g)	Nz.(
 lhs  
   .    
     rhs      
       ) = 42r"r#r�r�r�r0r8r�r�s   r�test_attribute_store�(TestSourcePositions.test_attribute_store,s5��E���v�x��0���)�)��,�Q��1��	*�	
rc	�r�Sn[USS5nURUSSSSSS9 URUS	SSSS
S9 g)Nz+(
 lhs  
   .    
     rhs      
       )()r"r#r�r�r�r0r8r�r�r�r�s   r�test_method_call�$TestSourcePositions.test_method_call3sW��B���v�x��0���)�)��+�A��!��	*�	
�	
�)�)��&�q�1�Q�2�	*�	
rc��SnURR5H^up#pEURU5 URU5 URU5 URU5 URX$4X545 M` g)Nc��[R [R5 [5RS5RS5 gr)�bar�baz�files�
setdefaultrjrrr��HTestSourcePositions.test_weird_attribute_position_regressions.<locals>.f>s7��
���
���	
��G����
��j��r)r�rr5r�)rr�r�rr$r%s      r�)test_weird_attribute_position_regressions�=TestSourcePositions.test_weird_attribute_position_regressions=ss��
	�34�*�*�2I�2I�2K�.�D�F�� � ��&�� � ��*�� � ��(�� � ��,�� � �$��(�1G�H�3Lrc	��SGH5nURU5 [USU3SS5nUR[UR5S5 URURS[R5 URURS[R5 URURSURS5 UR[URSR55[URSR555 SSS5 GM8 g!,(df   GMK=f)N)z	lambda: az(a for b in c)r<r"r;r�rr�)r\rr5r�r�r�r�r�rrarr�s   r� test_column_offset_deduplication�4TestSourcePositions.test_column_offset_deduplicationPs���
�F����f�%��&���F�8�4�h��G��� � ��T�^�^�!4�a�8��%�%�d�n�n�Q�&7����H��%�%�d�n�n�Q�&7����H��#�#�D�N�N�1�$5�t�~�~�a�7H�I��#�#������*�7�7�9�:������*�7�7�9�:��
&�%�	
�&�%�s�DD>�>
E	c	���Sn[USS5RSRH&n[U[R5(dM$Un O URWSSSSSS	9 g)
Nz5class C:
  def __init__(self):
    super().__init__()r"r#rr�r�r�r�r8)rr�r�r�r�r()rrrr�s    r�test_load_super_attr�(TestSourcePositions.test_load_super_attrbsg��J���V�X�v�6�@�@��C�M�M�E��%����0�0����N�	
�)�)��-�a�!�A�!�	*�	
rc	��/SQnUGHnURUS9 [U5SnURR5n[	U5H�upVURXVS9 Uupxp�US:XaX�s=:XaS:XaO OSSS5 M:URUS5 URUS5 UR
S5S-n[U5nURX�5 URX�5 URX�5 URX�5 SSS5 M� SSS5 GM g!,(df   M�=f!,(df   GMD=f)	N)z
f = lambda: xzf = lambda: 42zf = lambda: 1 + 2zf = lambda: a + b)rr�)r��posrr�r]r�)
r\rr�rrnr5�findr��assertGreaterEqualr�)
r�snippetsr�lambr6r�r��
start_liner�	start_colr �
code_start�code_ends
             r�test_lambda_return_position�/TestSourcePositions.test_lambda_return_positionls!��
�� �G����g��.���(��-�� �M�M�6�6�8�	�'�	�2�F�A������3�CF�@�
�i���6�i�&?�a�&?�$�	4�3�
�(�(��Q�7��(�(��1�5�%,�\�\�#�%6��%:�
�#&�w�<���/�/�	�F��,�,�W�?��/�/��C��,�,�W�?�4�3�3�	/�.� �4�3��/�.�s1�AD;�"D)	�>
D;�BD)	�D;�)
D8
�3D;�;
E	c� �Sn[R"U5H$nURup4 nURX45 M& [R"U5Vs/sH&nURS:XdMUR
bM$UPM( nn[R"U5Vs/sHnURS:XdMUPM nnUR[
U5S5 UR[
U5S5 Xg-H�nURup4p�URX1RRS-5 URXARRS-5 URUS5 URU	S5 M� gs snfs snf)Nc�X�[ [sSSS5 $!,(df   g=fr)r`�Rrjrrr��<TestSourcePositions.test_return_in_with_positions.<locals>.f�s�����������s�
�
)rFr�r�r�rxr�)	rfrgr6r5rhr�r�r�r�)
rr�rqr�rr��	load_none�return_valuer�r s
          r�test_return_in_with_positions�1TestSourcePositions.test_return_in_with_positions�s_��	��)�)�!�,�E�).���&�J�!�Q����Z�2�-�),�(<�(<�Q�(?�L�(?�u��\�\�\�1��6;�l�l��(?�	�L�+.�+?�+?��+B�8�+B�%�����6��+B��8�	
����Y���+�����\�*�A�.��-�E�7<���4�J�)����Z���)B�)B�Q�)F�G����X�z�z�'@�'@�1�'D�E����Y��+����W�b�)�.��L��8s�F�2F�F�!F�9FrjNr)0rdrerfrgr!r(r,r5r:rrArrr��flagsr�rJrPrTrYr^rbrfrkrorurzr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�r�rirjrrrr@s��
$�N<=�8�"2�2�(8��G��G�2�_�_�S�Y�Y�'�'�)T�U�G�V�G�"G�&G�"F� G�,F� G�,F� G�,G� G�$G� G� G� 
H�;�
G�(�*&�P
�
�
�
�
�I�&
������"
�@�6*rrc�,�\rSrSrSrSrSrSrSrg)�TestStaticAttributesi�c��"SS5nURUR[5 UR[	UR5SS/5 g)Nc��\rSrSrSrSrg)�*TestStaticAttributes.test_basic.<locals>.Ci�c�^�S=UlUlUR5 URS g)Nr�r�)rQr�r��arrr$s rr��,TestStaticAttributes.test_basic.<locals>.C.f�s$��"$�$�������������rr�NrQrjrr�Cr��s��
rr�rQr�)r�rirWr5r��rr�s  r�
test_basic�TestStaticAttributes.test_basic�sC��	�	�	
���a�5�5�u�=������ 7� 7�8�3��*�Erc�f�"SS5nUR[UR5/SQ5 g)Nc� �\rSrSrSrSrSrg)�4TestStaticAttributes.test_nested_function.<locals>.Ci�c�.�SUlSUlSUlg)Nr�r�r�rUr$s rr��6TestStaticAttributes.test_nested_function.<locals>.C.f�s����������rc�4�SUlSUlSnSUlg)Nr�r�c� �SUlSUlg)Nr=r�)�ur)rrQs  rr��ATestStaticAttributes.test_nested_function.<locals>.C.g.<locals>.h�s���D�F��D�Frr0)rorlr)rr�r�s   rr}�6TestStaticAttributes.test_nested_function.<locals>.C.g�s�����������r�r�rrrorlN)rdrerfrgr�r}rirjrrr�r��s��
�

rr�r��r5r�rir�s  r�test_nested_function�)TestStaticAttributes.test_nested_function�s*��	�	� 	
����� 7� 7�8�:S�Trc���"SS5nUR[UR5SS/5 UR[URR5SS/5 g)Nc�.�\rSrSrSr"SS5rSrg)�1TestStaticAttributes.test_nested_class.<locals>.Ci�c� �SUlSUlg�Nr�rUr$s rr��3TestStaticAttributes.test_nested_class.<locals>.C.f���������rc��\rSrSrSrSrg)�3TestStaticAttributes.test_nested_class.<locals>.C.Di�c� �SUlSUlgr�r=r$s rr}�5TestStaticAttributes.test_nested_class.<locals>.C.D.g�s���D�F��D�Frr=N�rdrerfrgr}rirjrrrwr�s�� rrwrUN)rdrerfrgr�rwrirjrrr�r��s��
�
 �
 rr�rrorl)r5r�rirwr�s  r�test_nested_class�&TestStaticAttributes.test_nested_class�sP��	 �	 �	
����� 7� 7�8�3��*�E�������� 9� 9�:�S�#�J�Grc���"SS5n"SSU5nUR[UR5SS/5 UR[UR5SS/5 g)Nc��\rSrSrSrSrg)�-TestStaticAttributes.test_subclass.<locals>.Ci�c� �SUlSUlgr�rUr$s rr��/TestStaticAttributes.test_subclass.<locals>.C.f�rrrUNrQrjrrr�r
����
rr�c��\rSrSrSrSrg)�-TestStaticAttributes.test_subclass.<locals>.Di�c� �SUlSUlgr�r=r$s rr}�/TestStaticAttributes.test_subclass.<locals>.D.g�rrr=Nrrjrrrwr�r
rrwrrorlr�)rr�rws   r�
test_subclass�"TestStaticAttributes.test_subclass�sX��	�	�
	��	�
	
����� 7� 7�8�3��*�E������ 7� 7�8�3��*�ErrjN)	rdrerfrgr�r�rrrirjrrr�r��s��	F�U�&H�Frr�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrg)�TestExpressionStackSizei�rc��[U[5(a
[USS5n[R"[R
"[
UR555nURURU5 g)N�<foo>r)
r�r�r�math�ceil�logr�rr��co_stacksize)rr��max_sizes   r�check_stack_size�(TestExpressionStackSize.check_stack_size�sU���d�C� � ��4��(�3�D��9�9�T�X�X�c�$�,�,�&7�8�9�����T�.�.��9rc�F�URSUR-S-5 g)Nzx and r�rrXr$s r�test_and� TestExpressionStackSize.test_and�s�����h����/�#�5�6rc�F�URSUR-S-5 g)Nzx or rr r$s r�test_or�TestExpressionStackSize.test_or�s�����g����.��4�5rc�F�URSUR-S-5 g)Nzx and x or rr r$s r�test_and_or�#TestExpressionStackSize.test_and_or�s�����m�d�f�f�4�s�:�;rc�F�URSUR-S-5 g)Nzx < rr r$s r�test_chained_comparison�/TestExpressionStackSize.test_chained_comparison�������f�t�v�v�o��3�4rc�F�URSUR-S-5 g)Nzx if x else rr r$s r�test_if_else�$TestExpressionStackSize.test_if_else	s�����n�t�v�v�5��;�<rc�F�URSUR-S-5 g)Nzx + rr r$s r�
test_binop�"TestExpressionStackSize.test_binop	r,rc�L�URSSUR--S-5 g)N�[�x, zx]r r$s r�	test_list�!TestExpressionStackSize.test_list	�"�����c�E�D�F�F�N�2�T�9�:rc�L�URSSUR--S-5 g)N�(r5zx)r r$s r�
test_tuple�"TestExpressionStackSize.test_tuple		r8rc�L�URSSUR--S-5 g)NrZr5zx}r r$s r�test_set� TestExpressionStackSize.test_set	r8rc�L�URSSUR--S-5 g)NrZzx:x, zx:x}r r$s r�	test_dict�!TestExpressionStackSize.test_dict	s#�����c�G�d�f�f�$4�4�v�=�>rc�L�URSSUR--S-5 g)N�f(r5�)r r$s r�test_func_args�&TestExpressionStackSize.test_func_args	s"�����d�U�T�V�V�^�3�c�9�:rc��S[UR55nURSSRU5-S-5 g)Nc3�.# �UHnSUS3v� M
 g7f�rQz=xNrjr>s  rr@�;TestExpressionStackSize.test_func_kwargs.<locals>.<genexpr>	����3�]��A�a�S��)�]�rBrDr<rE�rDrXrr��r�kwargss  r�test_func_kwargs�(TestExpressionStackSize.test_func_kwargs	s5��3�U�4�6�6�]�3�����d�d�i�i��&7�7�#�=�>rc�L�URSSUR--S-5 g)N�o.m(r5rEr r$s r�test_meth_args�&TestExpressionStackSize.test_meth_args	s"�����f�u�t�v�v�~�5��;�<rc��S[UR55nURSSRU5-S-5 g)Nc3�.# �UHnSUS3v� M
 g7frJrjr>s  rr@�;TestExpressionStackSize.test_meth_kwargs.<locals>.<genexpr>	rLrBrSr<rErMrNs  r�test_meth_kwargs�(TestExpressionStackSize.test_meth_kwargs	s5��3�U�4�6�6�]�3�����f��	�	�&�(9�9�C�?�@rc�N�SnUSUR--
nURU5 g)Nz
def f(x):
z   x and x
)rXrrs  r�
test_func_and�%TestExpressionStackSize.test_func_and 	s(���������'�'�����d�#rc�2�SnSU-S-n[USS5 g)N��zx,z=trrr)rrkr�s   r�test_stack_3050�'TestExpressionStackSize.test_stack_3050%	s �����a�x�$�����g�x�(rc�p�SnSRS[U555nSUS3n[USS5 g)Nr_r<c3�2# �UH
nSUSU3v� M g7f)r�z:typeNrjr>s  rr@�<TestExpressionStackSize.test_stack_3050_2.<locals>.<genexpr>-	s���=�H�q�3�q�c��q�c�*�H�s�zdef f(z	):
  passrrrC)rrk�argsr�s    r�test_stack_3050_2�)TestExpressionStackSize.test_stack_3050_2+	s9�����y�y�=�E�!�H�=�=����v�Z�(����g�x�(rrjN)rdrerfrgrXrr!r$r'r*r.r1r6r;r>rArFrPrTrYr\r`rfrirjrrrr�sd��	�A�:�7�6�<�5�=�5�;�;�;�?�;�?�=�A�$�
)�)rrc��\rSrSrS SjrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr g)!�TestStackSizeStabilityi3	c	�^^^�UU4Sjn[SS5Vs/sHoC"U5RPM nn[[U55S:wa\SSKnSSKnUR"5nUR"U"S5US9 URSU<ST<SUR5<35 ggs snf)	Nc�>�0nSUT--nT(aSU-n[USS5n[X1U5 USR$)Nzdef func():
zasync z<script>r#r)rr#r�)r�r$�scriptr��async_rs    ��r�compile_snippet�@TestStackSizeStability.check_stack_size.<locals>.compile_snippet8	sK����B�(�1�w�;�6�F��!�F�*���6�:�v�6�D���2���f�:�&�&�&rr�r�r�r)�filez4stack sizes diverge with # of consecutive snippets: r�)	rDrr�rrfrurvryry)	rrrmrnr��sizesrfru�outs	 ``      rr�'TestStackSizeStability.check_stack_size7	s����	'�;@��1�+�F�+�Q���#�0�0�+��F��s�5�z�?�a����+�+�-�C��G�G�O�A�&�S�1��I�I�&+�W�c�l�l�n�F�
G�	 ��Gs�B*c�*�SnURU5 g)Nz1
            if x:
                a
            �rr+s  r�test_if�TestStackSizeStability.test_ifI	�����	
���g�&rc�*�SnURU5 g)Nz{
            if x:
                a
            elif y:
                b
            else:
                c
            rur+s  rr.�#TestStackSizeStability.test_if_elseP	�����	
���g�&rc�*�SnURU5 g)NzV
            try:
                a
            except:
                b
            rur+s  r�test_try_except_bare�+TestStackSizeStability.test_try_except_bare[	�����	
���g�&rc�*�SnURU5 g)Nz�
            try:
                a
            except ImportError:
                b
            except:
                c
            else:
                d
            rur+s  r�test_try_except_qualified�0TestStackSizeStability.test_try_except_qualifiedd	���	��	
���g�&rc�*�SnURU5 g)Nz�
            try:
                a
            except ImportError as e:
                b
            except:
                c
            else:
                d
            rur+s  r�test_try_except_as�)TestStackSizeStability.test_try_except_asq	r�rc�*�SnURU5 g)Nz�
            try:
                a
            except* ImportError:
                b
            else:
                c
            rur+s  r�test_try_except_star_qualified�5TestStackSizeStability.test_try_except_star_qualified~	r{rc�*�SnURU5 g)Nz�
            try:
                a
            except* ImportError as e:
                b
            else:
                c
            rur+s  r�test_try_except_star_as�.TestStackSizeStability.test_try_except_star_as�	r{rc�*�SnURU5 g)Nz�
                try:
                    a
                except* A:
                    b
                finally:
                    c
            rur+s  r�test_try_except_star_finally�3TestStackSizeStability.test_try_except_star_finally�	r{rc�*�SnURU5 g)Nzg
                try:
                    a
                finally:
                    b
            rur+s  r�test_try_finally�'TestStackSizeStability.test_try_finally�	rrc�*�SnURU5 g)Nz8
            with x as y:
                a
            rur+s  r�	test_with� TestStackSizeStability.test_with�	rxrc�*�SnURU5 g)NzX
            while x:
                a
            else:
                b
            rur+s  r�test_while_else�&TestStackSizeStability.test_while_else�	rrc�*�SnURU5 g)Nz7
            for x in y:
                a
            rur+s  r�test_for�TestStackSizeStability.test_for�	rxrc�*�SnURU5 g)Nz[
            for x in y:
                a
            else:
                b
            rur+s  r�
test_for_else�$TestStackSizeStability.test_for_else�	rrc�*�SnURU5 g)Nz�
            for x in y:
                if z:
                    break
                elif u:
                    continue
                else:
                    a
            else:
                b
            rur+s  r�test_for_break_continue�.TestStackSizeStability.test_for_break_continue�	s��
��	
���g�&rc�*�SnURU5 g)Na6
            for x in y:
                try:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
                finally:
                    f
            else:
                b
            rur+s  r�0test_for_break_continue_inside_try_finally_block�GTestStackSizeStability.test_for_break_continue_inside_try_finally_block�	���
��	
���g�&rc�*�SnURU5 g)Na6
            for x in y:
                try:
                    t
                finally:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rur+s  r�,test_for_break_continue_inside_finally_block�CTestStackSizeStability.test_for_break_continue_inside_finally_block�	r�rc�*�SnURU5 g)Na5
            for x in y:
                try:
                    t
                except:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rur+s  r�+test_for_break_continue_inside_except_block�BTestStackSizeStability.test_for_break_continue_inside_except_block�	r�rc�*�SnURU5 g)Na

            for x in y:
                with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rur+s  r�)test_for_break_continue_inside_with_block�@TestStackSizeStability.test_for_break_continue_inside_with_block	
s����	
���g�&rc�*�SnURU5 g)Nz�
            try:
                if z:
                    return
                else:
                    a
            finally:
                f
            rur+s  r�$test_return_inside_try_finally_block�;TestStackSizeStability.test_return_inside_try_finally_block
�����	
���g�&rc�*�SnURU5 g)Nz�
            try:
                t
            finally:
                if z:
                    return
                else:
                    a
            rur+s  r� test_return_inside_finally_block�7TestStackSizeStability.test_return_inside_finally_block$
r�rc�*�SnURU5 g)Nz�
            try:
                t
            except:
                if z:
                    return
                else:
                    a
            rur+s  r�test_return_inside_except_block�6TestStackSizeStability.test_return_inside_except_block0
r�rc�*�SnURU5 g)Nz~
            with c:
                if z:
                    return
                else:
                    a
            rur+s  r�test_return_inside_with_block�4TestStackSizeStability.test_return_inside_with_block<
s����	
���g�&rc�(�SnURUSS9 g)Nz>
            async with x as y:
                a
            T�rmrur+s  r�test_async_with�&TestStackSizeStability.test_async_withF
�����	
���g�d��3rc�(�SnURUSS9 g)Nz=
            async for x in y:
                a
            Tr�rur+s  r�test_async_for�%TestStackSizeStability.test_async_forM
r�rc�(�SnURUSS9 g)Nza
            async for x in y:
                a
            else:
                b
            Tr�rur+s  r�test_async_for_else�*TestStackSizeStability.test_async_for_elseT
s����	
���g�d��3rc�(�SnURUSS9 g)Na
            for x in y:
                async with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Tr�rur+s  r�/test_for_break_continue_inside_async_with_block�FTestStackSizeStability.test_for_break_continue_inside_async_with_block]
s����	
���g�d��3rc�(�SnURUSS9 g)Nz�
            async with c:
                if z:
                    return
                else:
                    a
            Tr�rur+s  r�#test_return_inside_async_with_block�:TestStackSizeStability.test_return_inside_async_with_blockl
s����	
���g�d��3rrjN)F)!rdrerfrgrrvr.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�rirjrrriri3	s���G�$'�	'�'�'�'�	'�	'�	'�'�'�'�'�'�'�'�"'�"'�"
'�
'�
'�
'�'�4�4�4�
4�4rric�,�\rSrSrSrSrSrSrSrg)�TestInstructionSequenceiv
c	��URUR5Vs/sH n[RUS4USS-PM" snU5 gs snfr~)r5rgr�rh)r�seqrr�s    r�compare_instructions�,TestInstructionSequence.compare_instructionsw
sM�����#�BV�BV�BX�Y�BX�Q�6�=�=��1��.�0�1�Q�R�5�8�BX�Y�!�	#��Ys�'Ac��[R"5nSSjnU"USSS5 U"USUR5=nS5 U"USSS5 U"USUR5=nS5 URU5 U"USSS5 URU5 U"US	SS5 /S
QnUR	XVs/sHofS-PM	 sn5 gs snf)Nrc�N�UR[RUX#XEU5 gr)�addopr��opmap)r�rh�oparg�bl�bc�el�ecs       r�add_op�3TestInstructionSequence.test_basics.<locals>.add_op~
s���I�I�f�l�l�6�*�E�r�r�BrrFr��JUMPr�r�r�r�))rFr�r�)r�r�r�)rFr�r�)r�r�r�)rFr�r�)r�Nr�)rrr)�_testinternalcapi�new_instruction_sequence�	new_label�	use_labelr�)rr�r��lbl1�lbl2r�exs       r�test_basics�#TestInstructionSequence.test_basics{
s����8�8�:��	C�	�s�L�!�Q�'��s�F�C�M�M�O�3�D�Q�7��s�L�!�Q�'��s�F�C�M�M�O�3�D�Q�7��
�
�d���s�L�!�Q�'��
�
�d���s�N�A�q�)���	
�!�!�#�x�'H�x��W��x�'H�I��'Hs�2C
c���[R"5nUR[RSSSSSS5 [R"5nUR[RSSSSSS5 URUS/5 URUS/5 UR
U5 URUS/5 URUR5SS/5 g)NrFr�rr�)rFr�r�rrr)rFr�r�rrr)r�r�r�r�r�r��
add_nested�
get_nested)rr��nesteds   r�test_nested�#TestInstructionSequence.test_nested�
s����8�8�:���	�	�&�,�,�|�,�a��A�q�!�<�"�;�;�=�����V�\�\�,�/��A�q�!�Q�?��!�!�#�(E�'F�G��!�!�&�+H�*I�J����v���!�!�#�(E�'F�G��!�!�#�.�.�"2�1�"5�8U�7V�Wrc��SnSn[R"U5Hen[U5VVs0sHupESUS-3U_M nnn[UR"S0UD65nUSnURURU5 Mg gs snnf)Nzyclass T:
    def __init__(self):
        self.{V1} = 10
        self.{V2} = 10
    def foo(self):
        self.{V3} = 10
rv�Vr��Trj)�	itertools�permutationsrnrrr5ri)	rr��
attributes�permr�r��	var_namesr$rUs	         r�!test_static_attributes_are_sorted�9TestInstructionSequence.test_static_attributes_are_sorted�
s���
'�	
�%�
��*�*�:�6�D�:C�D�/�J�/�w�q�1�Q��U�G��d�*�/�I�J��$�+�+�2�	�2�3�B��3��A����Q�4�4�j�A�	7��Js�BrjN)	rdrerfrgr�r�r�r�rirjrrr�r�v
s��#�J�2X�Brr��__main__)%rwrfrur�rr�r�rr�ryr�r�r�r�r�r�r�r�test.supportrrrrr�test.support.bytecode_helperr	�test.support.os_helperr
�TestCaserrr�rrir�rd�mainrjrr�<module>r�s����
�	���
�	��
�
��������J�J�D�+�eH�H�%�%�eH�P1��e	*�(�+�+�e	*��e	*�P:F�8�,�,�:F�zJ)�h�/�/�J)�ZA4�X�.�.�A4�F
9B�h�/�/�9B�x�z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit