Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_dis.cpython-38.opt-1.pyc
U

>��g���g@s�ddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
dd�Ze�jj
ZGdd�d�Zdejjjd	fZd
ZdejjjdfZd
ejjjdfZdejjeejjeejjefZdd�Zdejjd	ejjdfZdZdd�Zdejjd	ejjdejjd	ejjdfZgfdd�Z de jjd	e!e jjd	e jjde jjd	e jjdfZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+d#Z,d$Z-d%ejd	ejdejdejd&ejd'fZ.d(d)�Z/d*e/jjd	fZ0d+d,�Z1d-d.�Z2d/d0�Z3d1d2�Z4d3e4jjd	e!e4jjd	e4jjd&fZ5d4e5e!e4jjd	e4jjde!e4jjdfZ6d5e6e!e4jjde4jjdfZ7Gd6d7�d7ej8�Z9Gd8d9�d9e9�Z:d:ej;j<dk�r�d;nd<Z=e>�dgd>�d?d@��Z?dAZ@e?jAjjBd	ZCdBZDdCZEdDZFdEZGdFdG�ZHdHZIGdIdJ�dJej8�ZJ�ddKdL�ZKdMdN�ZLd	ZMeKjjd	ZNeKjjBdZOeOjeNZPeOjBdZQeQjeNZRd	ZSejTZTeTdOdPdQdRdSdddTdU�eTdVdWddXdXdddTdU�eTdVdWd	dYdYd&ddTdU�eTdZd[ddd\d]ddTdU�eTdOdPdeOeUeO�dQddTdU�eTdOdPd&d^d_d`ddTdU�eTdadbdcdcdddeddTdU�eTdfdgddhdhdiddTdU�eTdjdkddldldmdndTdU�eTdodpddXdXdqddTdU�eTdodpd	dYdYdrddTdU�eTdOdPd'd\dsdtddTdU�eTdOdPd]d	dudvddTdU�eTdwdxddd\dyddTdU�eTdzd{ddd\d|ddTdU�eTdOdPdnd}d~dddTdU�eTd�d�dndnd\d�ddTdU�eTd�d	ddd\d�ddTdU�eTd�d�ddhdhd�dQdTdU�eTd�d�ddd\d�ddTdU�gZVeTdOdPd'd�d�dddTdU�eTdVdWddXdXdddTdU�eTdVdWddYdYd&ddTdU�eTdVdWdd�d�d]ddTdU�eTdVdWd	d�d�dQddTdU�eTdZd[d&d&d\d`ddTdU�eTdOdPdeQeUeQ�deddTdU�eTdOdPd&d�d�diddTdU�eTdadbdcdcdddmddTdU�eTdfdgdd�d�dqddTdU�eTdjdkddldldrd'dTdU�eTdodpddXdXdtddTdU�eTdodpddYdYdvddTdU�eTdodpdd�d�dyddTdU�eTdodpd	d�d�d|ddTdU�eTd�d�d&d&d\dddTdU�eTd�d	ddd\d�ddTdU�eTd�d�dd�d�d�d]dTdU�eTd�d�ddd\d�ddTdU�gZWeTdjdkddldldd&dTdU�eTdodpddXdXdddTdU�eTdodpd	dYdYd&ddTdU�eTdodpdd�d�d]ddTdU�eTdodpdd�d�dQddTdU�eTd�d�dd�d�d`ddTdU�eTd�d�d	dhdhdeddTdU�eTd�d�d]d]d\diddTdU�eTd�d	ddd\dmddTdU�eTdOdPddd�dqddTdU�eTd�d�ddd\drddTdU�gZXeTdjdkdd�d�dddTdU�eTdOdPd	d`d�dddTdU�eTd�d�d	d	d\d&ddTdU�eTd�d�ddd\d]ddTdU�eTd�d�d�d�d�dQdd=dU�eTdfdgdd�d�d`ddTdU�eTdjdkd	dldlded&dTdU�eTd�d�dd�d�diddTdU�eTd�d�d	d	d\dmddTdU�eTd�d	ddd\dqddTdU�eTd�d�dd�d�drd'dTdU�eTdOdPdd&d�dtddTdU�eTd�d�dd�d�dvddTdU�eTd�d�ddd\dyddTdU�eTd�d�dQdQd\d|d]dTdU�eTd�d�dd�d�ddnd=dU�eTdOdPdd]d�d�ddTdU�eTd�d�d&d�d�d�ddTdU�eTd�d�dQdQd\d�ddTdU�eTd�d	ddd\d�dQdTdU�eTd�d�d�d�d\d�ddTdU�eTd�d�dQdQd\d�ddTdU�eTdjdkd	dldld�d`d=dU�eTdOdPd&d�d�d�ddTdU�eTd�d�d	d	d\d�ddTdU�eTd�d	ddd\d�ddTdU�eTd�d�dd�d�d�d�d=dU�eTd�d�d�d�d\d�ddTdU�eTdjdkd	dldld�dedTdU�eTd�d�dd�d�d�ddTdU�eTd�d�d	d	d\d�ddTdU�eTd�d	ddd\d�ddTdU�eTd�d�dd�d�d�d�dTdU�eTdOdPd'd	dud�ddTdU�eTd�d�ddd\d�ddTdU�eTdfdgdd�d�d�ddTdU�eTd�d�dd�d�d�didTdU�eTdOdPdd]d�d�ddTdU�eTd�d�d&d�d�d�ddTdU�eTd�d�d�d�d\d�ddTdU�eTd�d�d�d�d\d�d�dTdU�eTd�d�dd�d�d�dmd=dU�eTdOdPdd&d�d�ddTdU�eTd�d�dd�d�d�ddTdU�eTd�d�d�d�d\d�ddTdU�eTd�d�d[d[d\d�d�dTdU�eTd�d�d�d�d\d�ddTdU�eTdjdkd	dldld�d�d=dU�eTdOdPd]d�d�d�ddTdU�eTd�d�d	d	d\d�ddTdU�eTd�d	ddd\dPddTdU�eTd�d�d�d�d�d[drd=dU�eTd�d�ded�d�d�ddTdU�eTdOdPd'd	dud�d�dTdU�eTdOdPdQdd�d�ddTdU�eTd�d�ddd\d�ddTdU�eTd�d	ddd\d�ddTdU�eTd�d�ddd\d�ddTdU�eTd�d�d|d�d�dkddTdU�eTd�d&ddd\d�dtd=dU�eTdjdkdd�d�d�ddTdU�eTd�d�d`d�d�d�ddTdU�eTd�d�d�d�d\d�ddTdU�eTd�d	ddd\d�ddTdU�eTd�d	ddd\d�ddTdU�eTd�d	ddd\d�ddTdU�eTdjdkd	dldldbd�dTdU�eTdOdPdcd�d�d�ddTdU�eTd�d�d	d	d\dpddTdU�eTd�d	ddd\d�ddTdU�eTd�d�ddd\d�ddTdU�eTd�d�dyd�d�d�ddTdU�eTd�d�ddd\d�dd=dU�eTd�d�dd�d�d�d�d=dU�eTd�d�did�d�d�ddTdU�eTdfdgd	d�d�d�ddTdU�eTdjdkd	dldld�dydTdU�eTdOdPd`d�d��dddTdU�eTd�d�d	d	d\�dddTdU�eTd�d	ddd\�dddTdU�eTd�d�ddd\�dddTdU�eT�d�dddd\�dddTdU�eT�d�dddd\d�dd=dU�eT�d	d�ddd\�d
ddTdU�eTd�d�ddd\�dddTdU�eTd�d�ddd\d�dd=dU�eT�d�dddd\�dddTdU�eTdjdkd	dldld�d|d=dU�eTdOdPdn�d
�d�dddTdU�eTd�d�d	d	d\�dddTdU�eTd�d	ddd\�dddTdU�eTd�d�ddd\�dddTdU�eTdOdPddd��dddTdU�eTd�d�ddd\�dddTdU�g^ZY�d�d�ZZeTdOdPddd�deZjjdTdU�eTd�d�ddd\dddTdU�gZ[G�d�d��de�Z\G�d�d��dej8�Z]e�dk�r�e�^�dS(�)�captured_stdout)�BytecodeTestCaseNcCs dd�}|�}|jr|j}q|S)Nc
Ss:zddWn(tk
r4}z
|j}W5d}~XYnX|S�N�r)�	Exception�
__traceback__)�e�tb�r
�,/opt/cppython/lib/python3.8/test/test_dis.py�_errors
zget_tb.<locals>._error)�tb_next)rr	r
r
r�get_tb
s
rc@s,eZdZdd�Zedd��Zedd��ZdS)�_CcCs|dk|_dS�Nr��x)�selfrr
r
r�__init__sz_C.__init__cCs|dk}dSrr
rr
r
r�sm sz_C.smcCs|dk|_dSrr)�clsrr
r
r�cm$sz_C.cmN)�__name__�
__module__�__qualname__r�staticmethodr�classmethodrr
r
r
rrs

ra>%3d           0 LOAD_FAST                1 (x)
              2 LOAD_CONST               1 (1)
              4 COMPARE_OP               2 (==)
              6 LOAD_FAST                0 (self)
              8 STORE_ATTR               0 (x)
             10 LOAD_CONST               0 (None)
             12 RETURN_VALUE
ra          0 LOAD_FAST                1 (1)
          2 LOAD_CONST               1 (1)
          4 COMPARE_OP               2 (==)
          6 LOAD_FAST                0 (0)
          8 STORE_ATTR               0 (0)
         10 LOAD_CONST               0 (0)
         12 RETURN_VALUE
a=%3d           0 LOAD_FAST                1 (x)
              2 LOAD_CONST               1 (1)
              4 COMPARE_OP               2 (==)
              6 LOAD_FAST                0 (cls)
              8 STORE_ATTR               0 (x)
             10 LOAD_CONST               0 (None)
             12 RETURN_VALUE
�a%3d           0 LOAD_FAST                0 (x)
              2 LOAD_CONST               1 (1)
              4 COMPARE_OP               2 (==)
              6 STORE_FAST               0 (x)
              8 LOAD_CONST               0 (None)
             10 RETURN_VALUE
zBDisassembly of %s:
%s
Disassembly of %s:
%s
Disassembly of %s:
%s
cCst|�dSr��print)�ar
r
r�_f[sr!z�%3d           0 LOAD_GLOBAL              0 (print)
              2 LOAD_FAST                0 (a)
              4 CALL_FUNCTION            1
              6 POP_TOP

%3d           8 LOAD_CONST               1 (1)
             10 RETURN_VALUE
z�          0 LOAD_GLOBAL              0 (0)
          2 LOAD_FAST                0 (0)
          4 CALL_FUNCTION            1
          6 POP_TOP
          8 LOAD_CONST               1 (1)
         10 RETURN_VALUE
cCstdd�D]}q
dS)Nr�
)�range)�resr
r
r�	bug708901us�r%a�%3d           0 LOAD_GLOBAL              0 (range)
              2 LOAD_CONST               1 (1)

%3d           4 LOAD_CONST               2 (10)

%3d           6 CALL_FUNCTION            2
              8 GET_ITER
        >>   10 FOR_ITER                 4 (to 16)
             12 STORE_FAST               0 (res)

%3d          14 JUMP_ABSOLUTE           10
        >>   16 LOAD_CONST               0 (None)
             18 RETURN_VALUE
�cCsdS�Nr
rr
r
r�
bug1333982�sr(a�%3d           0 LOAD_CONST               1 (0)
              2 POP_JUMP_IF_TRUE        26
              4 LOAD_GLOBAL              0 (AssertionError)
              6 LOAD_CONST               2 (<code object <listcomp> at 0x..., file "%s", line %d>)
              8 LOAD_CONST               3 ('bug1333982.<locals>.<listcomp>')
             10 MAKE_FUNCTION            0
             12 LOAD_FAST                0 (x)
             14 GET_ITER
             16 CALL_FUNCTION            1

%3d          18 LOAD_CONST               4 (1)

%3d          20 BINARY_ADD
             22 CALL_FUNCTION            1
             24 RAISE_VARARGS            1

%3d     >>   26 LOAD_CONST               0 (None)
             28 RETURN_VALUE
z�%3d           0 LOAD_GLOBAL              0 (spam)
              2 POP_TOP
              4 LOAD_CONST               0 (None)
              6 RETURN_VALUE
z�%4d           0 LOAD_GLOBAL              0 (spam)
               2 POP_TOP
               4 LOAD_CONST               0 (None)
               6 RETURN_VALUE
z�Disassembly of f:
  4           0 LOAD_CONST               0 (None)
              2 RETURN_VALUE

Disassembly of g:
  5           0 LOAD_CONST               0 (None)
              2 RETURN_VALUE

zx + 1z�  1           0 LOAD_NAME                0 (x)
              2 LOAD_CONST               0 (1)
              4 BINARY_ADD
              6 RETURN_VALUE
�	x = x + 1z�  1           0 LOAD_NAME                0 (x)
              2 LOAD_CONST               0 (1)
              4 BINARY_ADD
              6 STORE_NAME               0 (x)
              8 LOAD_CONST               1 (None)
             10 RETURN_VALUE
z+
x: int = 1
y: fun(1)
lst[fun(0)]: int = 1
a�  2           0 SETUP_ANNOTATIONS
              2 LOAD_CONST               0 (1)
              4 STORE_NAME               0 (x)
              6 LOAD_NAME                1 (int)
              8 LOAD_NAME                2 (__annotations__)
             10 LOAD_CONST               1 ('x')
             12 STORE_SUBSCR

  3          14 LOAD_NAME                3 (fun)
             16 LOAD_CONST               0 (1)
             18 CALL_FUNCTION            1
             20 LOAD_NAME                2 (__annotations__)
             22 LOAD_CONST               2 ('y')
             24 STORE_SUBSCR

  4          26 LOAD_CONST               0 (1)
             28 LOAD_NAME                4 (lst)
             30 LOAD_NAME                3 (fun)
             32 LOAD_CONST               3 (0)
             34 CALL_FUNCTION            1
             36 STORE_SUBSCR
             38 LOAD_NAME                1 (int)
             40 POP_TOP
             42 LOAD_CONST               4 (None)
             44 RETURN_VALUE
zx = 0
while 1:
    x += 1a�  1           0 LOAD_CONST               0 (0)
              2 STORE_NAME               0 (x)

  3     >>    4 LOAD_NAME                0 (x)
              6 LOAD_CONST               1 (1)
              8 INPLACE_ADD
             10 STORE_NAME               0 (x)
             12 JUMP_ABSOLUTE            4
             14 LOAD_CONST               2 (None)
             16 RETURN_VALUE
a�%3d           0 SETUP_FINALLY           12 (to 14)

%3d           2 LOAD_CONST               1 (1)
              4 LOAD_CONST               2 (0)
    -->       6 BINARY_TRUE_DIVIDE
              8 POP_TOP
             10 POP_BLOCK
             12 JUMP_FORWARD            40 (to 54)

%3d     >>   14 DUP_TOP
             16 LOAD_GLOBAL              0 (Exception)
             18 COMPARE_OP              10 (exception match)
             20 POP_JUMP_IF_FALSE       52
             22 POP_TOP
             24 STORE_FAST               0 (e)
             26 POP_TOP
             28 SETUP_FINALLY           10 (to 40)

%3d          30 LOAD_FAST                0 (e)
             32 LOAD_ATTR                1 (__traceback__)
             34 STORE_FAST               1 (tb)
             36 POP_BLOCK
             38 BEGIN_FINALLY
        >>   40 LOAD_CONST               0 (None)
             42 STORE_FAST               0 (e)
             44 DELETE_FAST              0 (e)
             46 END_FINALLY
             48 POP_EXCEPT
             50 JUMP_FORWARD             2 (to 54)
        >>   52 END_FINALLY

%3d     >>   54 LOAD_FAST                1 (tb)
             56 RETURN_VALUE
��cCs|�d|d�d|�d|d��S)N� �4r
�r �b�c�dr
r
r�_fstring9sr2a�%3d           0 LOAD_FAST                0 (a)
              2 FORMAT_VALUE             0
              4 LOAD_CONST               1 (' ')
              6 LOAD_FAST                1 (b)
              8 LOAD_CONST               2 ('4')
             10 FORMAT_VALUE             4 (with format)
             12 LOAD_CONST               1 (' ')
             14 LOAD_FAST                2 (c)
             16 FORMAT_VALUE             2 (repr)
             18 LOAD_CONST               1 (' ')
             20 LOAD_FAST                3 (d)
             22 LOAD_CONST               2 ('4')
             24 FORMAT_VALUE             6 (repr, with format)
             26 BUILD_STRING             7
             28 RETURN_VALUE
ccs
|VdSr'r
rr
r
r�_gNsr3cCs
|VdSr'r
rr
r
r�_agQsr4c�st|�2z3dHW}q6dSr')r4)r�itemr
r
r�_coTsr6cs�fdd�}|S)Ncs�fdd��D�S)Zfuncdoccsg|]}�|�qSr
r
)�.0�zrr
r�
<listcomp>[sz#_h.<locals>.foo.<locals>.<listcomp>r
r��yrr�fooYsz_h.<locals>.foor
)r;r<r
r:r�_hXsr=a�%3d           0 LOAD_CLOSURE             0 (y)
              2 BUILD_TUPLE              1
              4 LOAD_CONST               1 (<code object foo at 0x..., file "%s", line %d>)
              6 LOAD_CONST               2 ('_h.<locals>.foo')
              8 MAKE_FUNCTION            8 (closure)
             10 STORE_FAST               1 (foo)

%3d          12 LOAD_FAST                1 (foo)
             14 RETURN_VALUE
a%s
Disassembly of <code object foo at 0x..., file "%s", line %d>:
%3d           0 LOAD_CLOSURE             0 (x)
              2 BUILD_TUPLE              1
              4 LOAD_CONST               1 (<code object <listcomp> at 0x..., file "%s", line %d>)
              6 LOAD_CONST               2 ('_h.<locals>.foo.<locals>.<listcomp>')
              8 MAKE_FUNCTION            8 (closure)
             10 LOAD_DEREF               1 (y)
             12 GET_ITER
             14 CALL_FUNCTION            1
             16 RETURN_VALUE
a�%s
Disassembly of <code object <listcomp> at 0x..., file "%s", line %d>:
%3d           0 BUILD_LIST               0
              2 LOAD_FAST                0 (.0)
        >>    4 FOR_ITER                12 (to 18)
              6 STORE_FAST               1 (z)
              8 LOAD_DEREF               0 (x)
             10 LOAD_FAST                1 (z)
             12 BINARY_ADD
             14 LIST_APPEND              2
             16 JUMP_ABSOLUTE            4
        >>   18 RETURN_VALUE
c@s�eZdZdZd<dd�Zd=dd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�ZdS)>�DisTestsN���Tc	KsJt��}t�|��*|r(tj|f|�ntj||f|�W5QRX|��Sr')�io�StringIO�
contextlib�redirect_stdout�dis�disassemble�getvalue�r�func�lasti�wrapper�kwargs�outputr
r
r�get_disassembly�szDisTests.get_disassemblycCs|�||d�S)NF)rM)rrHrIr
r
r�get_disassemble_as_string�sz"DisTests.get_disassemble_as_stringcCst�dd|�S)Nz\b0x[0-9A-Fa-f]+\bz0x...)�re�sub)r�textr
r
r�strip_addresses�szDisTests.strip_addressescCs0|j|dd�}||kr |�|�}|�||�dS)Nr��depth)rMrR�assertEqual)rrH�expectedZgotr
r
r�do_disassembly_test�s
zDisTests.do_disassembly_testcCs>|�tjdd�|�tjdtj�|�tjdtj�dS)NZNOP�	�
LOAD_CONST�
STORE_NAME)rUrD�opmapZassertInZhasconstZhasname�rr
r
r�
test_opmap�szDisTests.test_opmapcCs|�tjtjdd�dS)N�	LOAD_FAST)rUrD�opnamer[r\r
r
r�test_opname�szDisTests.test_opnamecCs,|�tjdtj�|�tjdtj�dS)N�EXTENDED_ARGrZ)rUrDr[ra�
HAVE_ARGUMENTr\r
r
r�test_boundaries�szDisTests.test_boundariesc
Cshttj�D]X\}}|dkrq
|j|d��4tj}|tjkrH|dtj7}|�t|�|�W5QRXq
dS)N)ZBUILD_MAP_UNPACK_WITH_CALLZBUILD_TUPLE_UNPACK_WITH_CALL)r_r)	�	enumeraterDr_�subTestZ
_OPNAME_WIDTHrbZ_OPARG_WIDTHZassertLessEqual�len)r�opcoder_�widthr
r
r�test_widths�s
zDisTests.test_widthscCs|�tt�dSr')rWr!�dis_fr\r
r
r�test_dis�szDisTests.test_discCs|�tt�dSr')rWr%�
dis_bug708901r\r
r
r�test_bug_708901�szDisTests.test_bug_708901cCs|�d�|�tt�dS)Nzneed asserts, run without -O)ZskipTestrWr(�dis_bug1333982r\r
r
r�test_bug_1333982�s
zDisTests.test_bug_1333982cCs�dd�}tdd�D] }t|d}|�||�|�qtddd�D] }t|d}|�||�|�q@tddd�D] }t|d}|�||�|�qnd	d
lm}|�|t�dS)NcSs0i}dd�dg|dg�}t||�|dS)Nzdef foo():
 �z
 zspam
r<��join�exec��count�	namespacerHr
r
rrH�s
z'DisTests.test_big_linenos.<locals>.funcri,r��r"i�r)�
dis_module)r#�_BIG_LINENO_FORMATrW�_BIG_LINENO_FORMAT2�testrx�dis_module_expected_results)rrH�irVrxr
r
r�test_big_linenos�szDisTests.test_big_linenoscCsfdd�}dd�}tdd�D]}|�||�||d��q|�|d�|dd��|�|d	�|d	d��dS)
NcSs.i}dd�dg|�d}t||�|dS)Nz
def foo(x):
 �;r)z

 return xr<rqrtr
r
rrH�s
z'DisTests.test_big_offsets.<locals>.funccsZ�fdd�t|�D�}|d�d|�d|dfg7}d|ddd�|d<d	�|�S)
Ncs@g|]8}d�d|�d|d�d|d�d|df�qS)z�           %*d LOAD_FAST                0 (x)
           %*d LOAD_CONST               1 (1)
           %*d BINARY_ADD
           %*d STORE_FAST               0 (x)
�rr*�r
)r7r}��wr
rr9�s�.�z?DisTests.test_big_offsets.<locals>.expected.<locals>.<listcomp>zK
  3        %*d LOAD_FAST                0 (x)
           %*d RETURN_VALUE
r�rz  2rr&rp)r#rr)rur��sr
r�rrV�s
��z+DisTests.test_big_offsets.<locals>.expectedrr+r*i�i�)r#rW)rrHrVr}r
r
r�test_big_offsets�szDisTests.test_big_offsetscCs4|�tt�|�tt�|�tt�|�tt�dSr')	rW�expr_str�dis_expr_str�simple_stmt_str�dis_simple_stmt_str�annot_stmt_str�dis_annot_stmt_str�compound_stmt_str�dis_compound_stmt_strr\r
r
r�test_disassemble_strszDisTests.test_disassemble_strcCs|�tjjt�dSr')rWr!�__code__�co_code�
dis_f_co_coder\r
r
r�test_disassemble_bytes
szDisTests.test_disassemble_bytescCs|�tt�dSr')rWr�dis_cr\r
r
r�test_disassemble_classszDisTests.test_disassemble_classcCs|�td�jt�dSr)rWrr�dis_c_instance_methodr\r
r
r� test_disassemble_instance_methodsz)DisTests.test_disassemble_instance_methodcCstd�jjj}|�|t�dSr)rrr�r�rW�dis_c_instance_method_bytes)rZmethod_bytecoder
r
r�&test_disassemble_instance_method_bytessz/DisTests.test_disassemble_instance_method_bytescCs|�tjt�dSr')rWrr�dis_c_static_methodr\r
r
r�test_disassemble_static_methodsz'DisTests.test_disassemble_static_methodcCs|�tjt�dSr')rWrr�dis_c_class_methodr\r
r
r�test_disassemble_class_methodsz&DisTests.test_disassemble_class_methodcCs(|�t�}|�td��}|�||�dSr)rMr3rU)rZgen_func_disasZ	gen_disasr
r
r�test_disassemble_generator s
z#DisTests.test_disassemble_generatorcCs(|�t�}|�td��}|�||�dSr)rMr4rU)rZagen_func_disasZ
agen_disasr
r
r� test_disassemble_async_generator%s
z)DisTests.test_disassemble_async_generatorcCs4|�t�}td�}|��|�|�}|�||�dSr)rMr6�closerU)rZcoro_func_disas�coroZ
coro_disasr
r
r�test_disassemble_coroutine*s


z#DisTests.test_disassemble_coroutinecCs|�tt�dSr')rWr2�dis_fstringr\r
r
r�test_disassemble_fstring1sz!DisTests.test_disassemble_fstringcCs2zt`Wntk
rYnX|�ttjd�dSr')�sys�last_traceback�AttributeError�assertRaises�RuntimeErrorrDr\r
r
r�
test_dis_none4s
zDisTests.test_dis_nonec
Cs|zt`Wntk
rYnXzddWn.tk
rX}z|j}|t_W5d}~XYnX|�|jj|j�}|�	d|�dSr)
r�r�r�rrrN�tb_frame�f_code�tb_lastirW)rrr	Ztb_disr
r
r�test_dis_traceback;szDisTests.test_dis_tracebackcCs|�ttjt��dSr')r��	TypeErrorrD�objectr\r
r
r�test_dis_objectJszDisTests.test_dis_objectcsT�fdd�}|tdd�|tdd�|tdd�|tdd�|tdd�|t�dS)Ncs(�jtf|�}��|�}��||�dSr')rMr=rRrU)rVrKrDr\r
r�checkNs
z2DisTests.test_disassemble_recursive.<locals>.checkrrSrrr&)�dis_nested_0�dis_nested_1�dis_nested_2)rr�r
r\r�test_disassemble_recursiveMsz#DisTests.test_disassemble_recursive)r?T)r?) rrr�maxDiffrMrNrRrWr]r`rcrirkrmror~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr>�s:


r>c@seZdZddd�ZdS)�DisWithFileTestsr?TcKsDt��}|r$tj|fd|i|��ntj||fd|i|��|��S)N�file)r@rArDrErFrGr
r
rrM^s
z DisWithFileTests.get_disassemblyN)r?T)rrrrMr
r
r
rr�[sr�a7Name:              code_info
Filename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        3
Flags:             OPTIMIZED, NEWLOCALS, NOFREE
Constants:
   0: %r
Names:
   0: _format_code_info
   1: _get_code_object
Variable names:
   0: x)z1Formatted details of methods, functions, or code.r'T)rc
	/s:|f��������fdd�	������|���f	VdS)Nc
st�����|����	dSr'r)r0�r r/r1r�frr;r8r
rr�|sztricky.<locals>.fr
)
r r/rr;r8r0r1r�args�kwdsr
r�r�trickyzsr�a.Name:              tricky
Filename:          (.*)
Argument count:    5
Positional-only arguments: 2
Kw-only arguments: 3
Number of locals:  10
Stack size:        9
Flags:             OPTIMIZED, NEWLOCALS, VARARGS, VARKEYWORDS, GENERATOR
Constants:
   0: None
   1: <code object f at (.*), file "(.*)", line (.*)>
   2: 'tricky.<locals>.f'
Variable names:
   0: a
   1: b
   2: x
   3: y
   4: z
   5: c
   6: d
   7: e
   8: args
   9: kwds
Cell variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]apFilename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        10
Flags:             OPTIMIZED, NEWLOCALS, NESTED
Constants:
   0: None
Names:
   0: print
Variable names:
   0: c
Free variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]z�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        2
Flags:             NOFREE
Constants:
   0: 1
Names:
   0: xz�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        2
Flags:             NOFREE
Constants:
   0: 1
   1: None
Names:
   0: xz�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        2
Flags:             NOFREE
Constants:
   0: 0
   1: 1
   2: None
Names:
   0: xc
�s@dIdHt2z3dHW}q6t4IdH�}W5QIdHRXdSr)r/r0)r r1r
r
r�	async_def�s

r�a6Name:              async_def
Filename:          (.*)
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  2
Stack size:        10
Flags:             OPTIMIZED, NEWLOCALS, NOFREE, COROUTINE
Constants:
   0: None
   1: 1
Names:
   0: b
   1: c
Variable names:
   0: a
   1: dc@s\eZdZejefeefee	fe
efee
feefeefgZdd�Zdd�Zdd�Zdd�Zd	S)
�
CodeInfoTestscCs,d|_|jD]\}}|�t�|�|�qdS�Nrw)r��
test_pairs�assertRegexrD�	code_info)rrrVr
r
r�test_code_info
szCodeInfoTests.test_code_infoc
Cspd|_|jD]^\}}t��}t�|�W5QRX|�|��|d�t��}tj||d�|�|��|�qdS)Nrw�
)r�)	r�r�rrDZ	show_coder�rFr@rA)rrrVrLr
r
r�test_show_codeszCodeInfoTests.test_show_codecCs|�ttjt��dSr')r�r�rDr�r�r\r
r
r�test_code_info_objectsz#CodeInfoTests.test_code_info_objectcCs|�t�d�d�dS)NrZ0x0)rUrDZpretty_flagsr\r
r
r�test_pretty_flags_no_flagssz(CodeInfoTests.test_pretty_flags_no_flagsN)rrrrDr��code_info_code_infor��code_info_tricky�co_tricky_nested_f�code_info_tricky_nested_fr��code_info_expr_strr��code_info_simple_stmt_strr��code_info_compound_stmt_strr��code_info_async_defr�r�r�r�r�r
r
r
rr��s�

r�cs(d��fdd�	}t��ddgid�|S)	Nr&r*cs&d����fdd�	}t�����|S)Nr+r�cst����||�dSr'r)rr�r.r
r�inner$s�outer.<locals>.f.<locals>.inner)r+r�r)r0r1r��r r/)r0r1rr�#s�outer.<locals>.frpr�Hello world!)r&r*r)r r/r�r
r�r�outer"sr�c	Cs�td�D]"}t|�|dkrq|dkrq4qtd�|r^t|�|d8}|dkrRq4|dkr4qfq4td�zFzddWntk
r�td	�YnX|�}td
�W5QRXW5td�XdS)Nr"r*r��I can haz else clause?r�%Who let lolcatz into this test suite?�OK, now we're doner�%Here we go, here we go, here we go...�Never reach this)r#r�ZeroDivisionError)r}�dodgyr
r
r�jumpy+s,r�rY�dr�)r&r*z(3, 4)F)r_rg�argZargvalZargrepr�offsetZstarts_lineZis_jump_targetZLOAD_CLOSURE�r r/ZBUILD_TUPLE�frpr�r�z'outer.<locals>.f'r"Z
MAKE_FUNCTION�rXzdefaults, closure�Z
STORE_FAST�}r��ZLOAD_GLOBAL�tr��Z
LOAD_DEREF���z''��1�Z
BUILD_LIST�g�Z	BUILD_MAP�i�r�z'Hello world!'�Z
CALL_FUNCTION�� ZPOP_TOP�"r^�|�$ZRETURN_VALUE�S�&)r+r�z(5, 6)r0r1r�z!'outer.<locals>.f.<locals>.inner'r�r�Noner#Z10ZGET_ITER�DZFOR_ITER�]�,zto 44r}r-Z
COMPARE_OP�k�<ZPOP_JUMP_IF_FALSE�rZ
JUMP_ABSOLUTE�q�6�>�4�(�*r�z'I can haz else clause?'�.�0�2��^�6�8�:�<�>�@�
�BZINPLACE_SUBTRACT�F�H�J�L�R�N�P��T�V�X�Z��\�r�z''Who let lolcatz into this test suite?'�`�bZ
SETUP_FINALLY�z�zto 174�vzto 118�h�j��0�lZBINARY_TRUE_DIVIDE��n�pZ	POP_BLOCK�WZJUMP_FORWARD�zto 146ZDUP_TOPr��xzexception match��~���r�z''Here we go, here we go, here we go...'��Z
POP_EXCEPT�Y��zto 170�ZEND_FINALLY�Z
SETUP_WITH��zto 164�r���r�z'Never reach this'����Z
BEGIN_FINALLY�5�ZWITH_CLEANUP_START�QZWITH_CLEANUP_FINISH���r�z"OK, now we're done"������cCsdSr'r
r
r
r
r�simple�rWc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�InstructionTestscCst�t�}|�t|�t�dSr'�rD�get_instructionsrWrU�list�expected_opinfo_simple�r�actualr
r
r�test_default_first_lines
z(InstructionTests.test_default_first_linecCs"tjtdd�}|�t|�t�dS�N�Z
first_linerZr^r
r
r�test_first_line_set_to_Nonesz,InstructionTests.test_first_line_set_to_NonecCs"tjttd�}|�t|�t�dSra)rDr[r��expected_outer_linerUr\�expected_opinfo_outerr^r
r
r�
test_outerszInstructionTests.test_outerc	Cs:t��t�}W5QRXtj|td�}|�t|�t�dSra)rr�rDr[�expected_f_linerUr\�expected_opinfo_f)rr�r_r
r
r�test_nestedszInstructionTests.test_nestedc	Cs<t��t��}W5QRXtj|td�}|�t|�t�dSra)rr�rDr[�expected_inner_linerUr\�expected_opinfo_inner)rr�r_r
r
r�test_doubly_nestedsz#InstructionTests.test_doubly_nestedcCs"tjttd�}|�t|�t�dSra)rDr[r��expected_jumpy_linerUr\�expected_opinfo_jumpyr^r
r
r�
test_jumpy#szInstructionTests.test_jumpyN)	rrrr`rcrfrirlror
r
r
rrY	srYc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
BytecodeTestsc
Csbttd�jdtjfD]6}|j|d�� t�|�}|�|jt	j
�W5QRXq|�ttjt
��dS�Nrza=1)�obj)r!rrr�rerD�BytecodeZassertIsInstanceZcodeobj�types�CodeTyper�r�r�)rrrr/r
r
r�test_instantiation*s

z BytecodeTests.test_instantiationc
Cs^ttd�jdtjfD]D}|j|d��.tt�|��}tt�|��}|�	||�W5QRXqdSrq)
r!rrr�rer\rDrsr[rU)rrrZ
via_objectZ
via_generatorr
r
r�test_iteration3s
zBytecodeTests.test_iterationcCs"tjttd�}|�t|�t�dSra)rDrsr�rdrUr\rer^r
r
r�test_explicit_first_line:sz&BytecodeTests.test_explicit_first_linecCslt�t���}|���d�d}ttjj�}|�||�tjtdd���}|���d�d}|�|d�dS)Nr,ri^rbZ350)	rDrsrW�strip�	partition�strr��co_firstlinenorU)rr_rVr
r
r�test_source_line_in_disassembly>sz-BytecodeTests.test_source_line_in_disassemblycCs4d|_tjD]"\}}t�|�}|�|��|�qdSr�)r�r�r�rDrsr��info)rrrVr/r
r
r�	test_infoIs
zBytecodeTests.test_infocCst�t���}|�|t�dSr')rDrsr!rUrjr^r
r
r�test_disassembledOszBytecodeTests.test_disassembledcCs4t�}tj�|�}|jr |j}q|�|j|j�dSr')rrDrs�from_tracebackr
rUZcurrent_offsetr��rr	r/r
r
r�test_from_tracebackSs
z!BytecodeTests.test_from_tracebackcCs&t�}tj�|�}|�|��t�dSr')rrDrsr�rU�
dis_tracebackr�r
r
r�test_from_traceback_disZsz%BytecodeTests.test_from_traceback_disN)rrrrvrwrxr}rr�r�r�r
r
r
rrp)s	rp�__main__)T)rr)_Ztest.supportrZtest.bytecode_helperrZunittestr�rDr@rOrtrBrr�r�ZTRACEBACK_CODErrr�r|r�r�rr�rr�rr�r!rjr�r%rlr(�__file__rnryrzr|r�r�r�r�r�r�r�r�r�r2r�r3r4r6r=r�r�r�ZTestCaser>r��flags�optimizer�rr�r��__func__�	co_constsr�r�r�r�r�r�r�r�r�r�rdZ_line_offsetZ
code_object_frgZcode_object_innerrjrmZInstruction�reprrerhrkrnrWr]rYrp�mainr
r
r
r�<module>sB
�

�
�
��

��




��




��	
"��(�



��


��

��H

��!#	


����b� 6

F1le Man4ger