Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.219.217.5
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_dis.cpython-310.pyc
o

`b���@sXddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
dd�Ze�jj
ZGdd�d�Zdejjjd	fZd
ZdejjjdfZd
ejjjdfZdejjeejjeejjefZdd�Zdejjd	ejjdfZdZdd�Zdejjd	ejjdejjd	ejjdejjd	fZgfdd�Z de jjd	e!e jjd	e jjde jjd	fZ"dd�Z#e#jj$dd�e#_dZ%e&gd��Z'd Z(d!Z)d"Z*d#Z+d$Z,d%Z-d&Z.d'Z/d(Z0d)Z1d*Z2d+Z3d,ejd	ejdejd-ejdejd.ejd-ejdfZ4d/d0�Z5d1e5jjd	fZ6d2d3�Z7d4d5�Z8d6e7jjd	e7jjde7jjd.fZ9d7e8jjd	e8jjde8jjd.fZ:d8d9�Z;d:d;�Z<d<d=�Z=d>d?�Z>d@e>jjd	e!e>jjd	e>jjd.fZ?dAe?e!e>jjd	e>jjde!e>jjdfZ@dBe@e!e>jjde>jjdfZAGdCdD�dDejB�ZCGdEdF�dFeC�ZDejEjF�r�dGZGndHZGdIeG�dJ�ZHeI�dZgdL�dMdN��ZJdOZKeJjLjjMd	ZNdPZOdQZPdRZQdSZRdTdU�ZSdVZTGdWdX�dXejB�ZU�d[dYdZ�ZVd[d\�ZWd	ZXeVjjd	ZYeVjjMdZZeZjeYZ[eZjMdZ\e\jeYZ]d	Z^ej_Z_e_d]d^d_d`dadddbdc�e_dddeddfdfdddbdc�e_ddded	dgdgd.ddbdc�e_dhdidddjdkddbdc�e_d]d^deZe`eZ�d_ddbdc�e_d]d^d.dldmdnddbdc�e_dodpdqdqdrdsddbdc�e_dtduddvdvdwddbdc�e_dxdyddzdzd{d|dbdc�e_d}d~ddfdfdddbdc�e_d}d~d	dgdgd�ddbdc�e_d]d^d-djd�d�ddbdc�e_d]d^dkd	d�d�ddbdc�e_d�d�dddjd�ddbdc�e_d�d�dddjd�ddbdc�e_d]d^d|d�d�d�ddbdc�e_d�d�d|d|djd�ddbdc�e_d�d	dddjd�ddbdc�e_d�d�ddvdvd�d_dbdc�e_d�d�dddjd�ddbdc�gZae_d]d^d-d�d�dddbdc�e_dddeddfdfdddbdc�e_dddeddgdgd.ddbdc�e_dddedd�d�dkddbdc�e_ddded	d�d�d_ddbdc�e_dhdid.d.djdnddbdc�e_d]d^de\e`e\�dsddbdc�e_d]d^d.d�d�dwddbdc�e_dodpdqdqdrd{ddbdc�e_dtdudd�d�dddbdc�e_dxdyddzdzd�d-dbdc�e_d}d~ddfdfd�ddbdc�e_d}d~ddgdgd�ddbdc�e_d}d~dd�d�d�ddbdc�e_d}d~d	d�d�d�ddbdc�e_d�d�d.d.djd�ddbdc�e_d�d	dddjd�ddbdc�e_d�d�dd�d�d�dkdbdc�e_d�d�dddjd�ddbdc�gZbe_dxdyddzdzdd.dbdc�e_d}d~ddfdfdddbdc�e_d}d~d	dgdgd.ddbdc�e_d}d~dd�d�dkddbdc�e_d}d~dd�d�d_ddbdc�e_d�d�dd�d�dnddbdc�e_d�d�d	dvdvdsddbdc�e_d�d�dkdkdjdwddbdc�e_d�d	dddjd{ddbdc�e_d]d^ddd�dddbdc�e_d�d�dddjd�ddbdc�gZcge_dxdydd�d�dddbdc��e_d]d^d	dnd�dddbdc��e_d�d�d	d	djd.ddbdc��e_d�d�dddjdkddbdc��e_d�d�d�d�d�d_ddKdc��e_dtdudd�d�dnddbdc��e_dxdyd	dzdzdsd.dbdc��e_d�d�dd�d�dwddbdc��e_d�d�d	d	djd{ddbdc��e_d�d	dddjdddbdc��e_d�d�dd�d�d�d-dbdc��e_d]d^dd.d�d�ddbdc��e_d�d�dd�d�d�ddbdc��e_d�d�d�d�d�d�ddbdc��e_d�d�d.d_d�d�dkdbdc��e_d�d�dd�d�d�d|dKdc��e_d]d^ddkd�d�ddbdc��e_d�d�d.d�d�d�ddbdc��e_d�d�d�d�d�d�ddbdc��e_d�d	dddjd�d_dbdc��e_d�d�d�d�d�d�ddbdc��e_d�d�d.d_d�d�d|dKdc��e_dxdyd	dzdzd�dndKdc��e_d]d^d.d�d�d�ddbdc��e_d�d�d	d	djd�ddbdc��e_d�d	dddjd�ddbdc��e_d�d�dd�d�d�d�dKdc��e_d�d�d�d�d�d�ddbdc��e_dxdyd	dzdzd�dsdKdc��e_d�d�dd�d�d�ddbdc��e_d�d�d	d	djd�ddbdc��e_d�d	dddjd�ddbdc��e_d�d�dd�d�d�d�dbdc��e_d]d^d-d	d�d�ddbdc��e_d�d�dddjd�ddbdc��e_dtdudd�d�d�ddbdc��e_d�d�dd�d�d�dwdbdc��e_d]d^ddkd�d�ddbdc��e_d�d�d.d�d�d�ddbdc��e_d�d�d�d�d�d�ddbdc��e_d�d�d�d�d�d�d�dbdc��e_d�d�dd�d�d�d{dKdc��e_d]d^dd.d�d�ddbdc��e_d�d�dd�d�d�ddbdc��e_d�d�d�d�d�d�ddbdc��e_d�d�d�d�d�d�d�dbdc��e_d�d�dd�d�d�d�dKdc��e_d�d�d�d�d�d�ddbdc��e_dxdyd	dzdzd�d�dKdc��e_d]d^dkd�d�d�ddbdc��e_d�d�d	d	djd^ddbdc��e_d�d	dddjdiddbdc��e_d�d�d�d�d�d�d�dKdc��e_d�d�dkd�d�d�ddbdc��e_d]d^d-d	d�d�d�dbdc��e_d]d^d|dd�d�ddbdc��e_d�d�dddjd�ddbdc��e_d�d	dddjd�ddbdc��e_d�d�dddjdyddbdc��e_d�d�d�d�d�d�ddbdc��e_d�d.dddjd�d�dKdc��e_dxdydd�d�d�ddbdc��e_d��ddѐd�dd�ddbdc��e_d�d	dddj�dddbdc��e_d�d	dddj�dddbdc��e_d�d	dddj�dddbdc��e_dxdyd	dzdzdp�ddbdc��e_d]d^d_�d�d�d	ddbdc��e_d�d�d	d	djd~ddbdc��e_d�d	dddj�d
ddbdc��e_�d�ddddj�d
ddbdc��e_d�d�d��d�d�dddbdc��e_�d�ddddj�dd�dKdc��e_d�d�dd�d�d��ddKdc��e_�d�dds�d�d�dddbdc��e_dtdud	�d�d�dddbdc��e_dxdyd	dzdz�dd�dbdc��e_d]d^dq�d�d�dddbdc��e_d�d�d	d	dj�dddbdc��e_d�d	dddj�d ddbdc��e_d�d�dddj�d!ddbdc��e_d]d^ddd��d"�ddbdc��e_d�d.dddj�d#ddbdc��e_d�d.dddj�d$ddbdc��e_d�d�dddj�d%ddbdc��e_d�d	dddj�d&ddbdc��e_d�d�d��d'�d(�d)ddbdc��e_�d*�d+dddj�dddKdc��e_d�d�d�d,�d-�d.ddbdc��e_�d�dd	d	dj�d/ddbdc��e_d�d	dddj�d,ddKdc��e_d�d	dddj�d0ddbdc��e_d�d	dddj�d1ddbdc��e_�d�ddddj�d2ddbdc��e_d�d	dddj�d3ddbdc��e_d�d�dddj�d4ddbdc��e_dxdyd	dzdz�d5d�dbdc��e_d]d^dn�d6�d7�d8ddbdc��e_d�d�d	d	dj�d9ddbdc��e_d�d	dddj�d:ddbdc��e_d]d^ddd��d;ddbdc��e_d�d�dddj�d<ddbdc��e_d�d�dddj�d�ddKdc��e_dxdyd	dzdz�d=d�dbdc��e_d]d^dn�d6�d7�d>ddbdc��e_d�d�d	d	dj�d?ddbdc��e_d�d	dddj�d@ddbdc��e_d]d^ddd��dAddbdc��e_d�d�dddj�dBddbdc��e_d�d�dddj�d'�ddKdc��e_dxdyd	dzdz�dCd�dbdc��e_d]d^dn�d6�d7�dDddbdc��e_d�d�d	d	dj�dEddbdc��e_d�d	dddj�dFddbdc��e_d]d^ddd��dGddbdc��e_d�d�dddj�dHddbdc��e_dxdyd	dzdzd�ddKdc��e_d]d^dn�d6�d7�dIddbdc��e_d�d�d	d	dj�dJddbdc��e_d�d	dddj�dKddbdc��e_�d�ddddj�dLddbdc��Zd�dM�dN�Zee_d]d^ddd�deejjdbdc�e_d�d�dddjdddbdc�gZfG�dO�dP��dPe�ZgG�dQ�dR��dRejB�ZhG�dS�dT��dTe�ZiG�dU�dV��dVejB�ZjG�dW�dX��dXej�Zke�dYk�
r�e�l�dSdS(\�)�captured_stdout)�BytecodeTestCaseNcCs$dd�}|�}|jr|j}|js
|S)Nc
Ss<zddW|Sty}z
|j}WYd}~|Sd}~ww�N�r)�	Exception�
__traceback__)�e�tb�r
�6/usr/local/python-3.10/lib/python3.10/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)�_CcC�|dk|_dS�Nr��x)�selfrr
r
r�__init__�z_C.__init__cCs|dk}dSrr
rr
r
r�sm sz_C.smcCrrr)�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]}qdS)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                 2 (to 16)
             12 STORE_FAST               0 (res)

%3d          14 JUMP_ABSOLUTE            5 (to 10)

%3d     >>   16 LOAD_CONST               0 (None)
             18 RETURN_VALUE
�cCsJdd�|D�d��)NrcSsg|]}|�qSr
r
)�.0�sr
r
r�
<listcomp>�szbug1333982.<locals>.<listcomp>rr
rr
r
r�
bug1333982�s�r,a%3d           0 LOAD_ASSERTION_ERROR
              2 LOAD_CONST               2 (<code object <listcomp> at 0x..., file "%s", line %d>)
              4 LOAD_CONST               3 ('bug1333982.<locals>.<listcomp>')
              6 MAKE_FUNCTION            0
              8 LOAD_FAST                0 (x)
             10 GET_ITER
             12 CALL_FUNCTION            1

%3d          14 LOAD_CONST               4 (1)

%3d          16 BINARY_ADD
             18 CALL_FUNCTION            1
             20 RAISE_VARARGS            1
cC�dS�Nr
r
r
r
r�bug42562�sr/s�)�co_linetablezG          0 LOAD_CONST               0 (None)
          2 RETURN_VALUE
)
�r�	�r1r�d�)�Srz�          0 EXTENDED_ARG             1
          2 NOP
          4 EXTENDED_ARG             1
          6 LOAD_CONST             297 (297)
          8 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 += 1aP  1           0 LOAD_CONST               0 (0)
              2 STORE_NAME               0 (x)

  2           4 NOP

  3     >>    6 LOAD_NAME                0 (x)
              8 LOAD_CONST               1 (1)
             10 INPLACE_ADD
             12 STORE_NAME               0 (x)

  2          14 JUMP_ABSOLUTE            3 (to 6)
a�%3d           0 SETUP_FINALLY            7 (to 16)

%3d           2 LOAD_CONST               1 (1)
              4 LOAD_CONST               2 (0)
    -->       6 BINARY_TRUE_DIVIDE
              8 POP_TOP
             10 POP_BLOCK

%3d          12 LOAD_FAST                1 (tb)
             14 RETURN_VALUE

%3d     >>   16 DUP_TOP
             18 LOAD_GLOBAL              0 (Exception)
             20 JUMP_IF_NOT_EXC_MATCH    29 (to 58)
             22 POP_TOP
             24 STORE_FAST               0 (e)
             26 POP_TOP
             28 SETUP_FINALLY           10 (to 50)

%3d          30 LOAD_FAST                0 (e)
             32 LOAD_ATTR                1 (__traceback__)
             34 STORE_FAST               1 (tb)
             36 POP_BLOCK
             38 POP_EXCEPT
             40 LOAD_CONST               0 (None)
             42 STORE_FAST               0 (e)
             44 DELETE_FAST              0 (e)

%3d          46 LOAD_FAST                1 (tb)
             48 RETURN_VALUE
        >>   50 LOAD_CONST               0 (None)
             52 STORE_FAST               0 (e)
             54 DELETE_FAST              0 (e)
             56 RERAISE                  1

%3d     >>   58 RERAISE                  0
��cCs|�d|d�d|�d|d��S)N� �4r
�r"�b�c�dr
r
r�_fstringZsr@a�%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
cCsz|W|�S|�wr.r
�r"r=r
r
r�_tryfinallyosrBcCszW|�dS|�wrr
)r=r
r
r�_tryfinallyconstusrCa�%3d           0 SETUP_FINALLY            6 (to 14)

%3d           2 LOAD_FAST                0 (a)
              4 POP_BLOCK

%3d           6 LOAD_FAST                1 (b)
              8 CALL_FUNCTION            0
             10 POP_TOP
             12 RETURN_VALUE
        >>   14 LOAD_FAST                1 (b)
             16 CALL_FUNCTION            0
             18 POP_TOP
             20 RERAISE                  0
a�%3d           0 SETUP_FINALLY            6 (to 14)

%3d           2 POP_BLOCK

%3d           4 LOAD_FAST                0 (b)
              6 CALL_FUNCTION            0
              8 POP_TOP
             10 LOAD_CONST               1 (1)
             12 RETURN_VALUE
        >>   14 LOAD_FAST                0 (b)
             16 CALL_FUNCTION            0
             18 POP_TOP
             20 RERAISE                  0
ccs�|VdSr.r
rr
r
r�_g���
rDcCs�|VdSr.r
rr
r
r�_ag�rErFc�s�t|�2z3dHW}q6dSr.)rF)r�itemr
r
r�_co�s��rHcs�fdd�}|S)Ncs�fdd��D�S)Zfuncdoccsg|]}�|�qSr
r
)r)�zrr
rr+�sz#_h.<locals>.foo.<locals>.<listcomp>r
r��yrr�foo�sz_h.<locals>.foor
)rKrLr
rJr�_h�srMa�%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                 6 (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            2 (to 4)
        >>   18 RETURN_VALUE
c@seZdZdZdBdd�ZdCdd�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;�Zd<d=�Z d>d?�Z!d@dA�Z"dS)D�DisTestsN���TcKs�t��}t�|��+|rtj|fi|��ntj||fi|��Wd�|��SWd�|��S1s7wY|��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)r])rrXrYr
r
r�get_disassemble_as_string�rz"DisTests.get_disassemble_as_stringcCst�dd|�S)Nz\b0x[0-9A-Fa-f]+\bz0x...)�re�sub)r�textr
r
r�strip_addresses�rzDisTests.strip_addressescCs0|j|dd�}||kr|�|�}|�||�dS)Nr��depth)r]rb�assertEqual)rrX�expectedZgotr
r
r�do_disassembly_test�s
zDisTests.do_disassembly_testcCs>|�tjdd�|�tjdtj�|�tjdtj�dS)NZNOPr2�
LOAD_CONST�
STORE_NAME)rerT�opmapZassertInZhasconstZhasname�rr
r
r�
test_opmapszDisTests.test_opmapcCs|�tjtjdd�dS)N�	LOAD_FAST)rerT�opnamerjrkr
r
r�test_opname�zDisTests.test_opnamecCs,|�tjdtj�|�tjdtj�dS)N�EXTENDED_ARGri)rerTrjrq�
HAVE_ARGUMENTrkr
r
r�test_boundaries	szDisTests.test_boundariesc	Cs|ttj�D]6\}}|dvrq|j|d��tj}|tjkr$|dtj7}|�t|�|�Wd�n1s6wYqdS)N)ZBUILD_MAP_UNPACK_WITH_CALLZBUILD_TUPLE_UNPACK_WITH_CALL�JUMP_IF_NOT_EXC_MATCH)rnr)	�	enumeraterTrn�subTestZ
_OPNAME_WIDTHrrZ_OPARG_WIDTHZassertLessEqual�len)r�opcodern�widthr
r
r�test_widths
s
���zDisTests.test_widthscC�|�tt�dSr.)rgr#�dis_frkr
r
r�test_dis�zDisTests.test_discCr{r.)rgr'�
dis_bug708901rkr
r
r�test_bug_708901r~zDisTests.test_bug_708901cCs	|�tt�dSr.)ZskipTestrgr,�dis_bug1333982rkr
r
r�test_bug_1333982szDisTests.test_bug_1333982cCr{r.)rgr/�dis_bug42562rkr
r
r�test_bug_42562'r~zDisTests.test_bug_42562cCr{r.)rg�code_bug_45757�
dis_bug_45757rkr
r
r�test_bug_45757*szDisTests.test_bug_45757cCs�dd�}tdd�D]}t|d}|�||�|�q	tddd�D]}t|d}|�||�|�q tddd�D]}t|d}|�||�|�q7d	d
lm}|�|t�dS)NcSs0i}dd�dg|dg�}t||�|dS)Nzdef foo():
 �z
 zspam
rL��join�exec��count�	namespacerXr
r
rrX/s
z'DisTests.test_big_linenos.<locals>.funcri,r��r$i�r)�
dis_module)r%�_BIG_LINENO_FORMATrg�_BIG_LINENO_FORMAT2�testr��dis_module_expected_results)rrX�irfr�r
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):
 �;r7z

 return xrLr�r�r
r
rrXGs
z'DisTests.test_big_offsets.<locals>.funccsZ�fdd�t|�D�}|d�d|�d|dfg7}d|ddd�|d<d	�|�S)
Ncs@g|]}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)
�rr9�r
)r)r���wr
rr+Ns
�.�z?DisTests.test_big_offsets.<locals>.expected.<locals>.<listcomp>zK
  3        %*d LOAD_FAST                0 (x)
           %*d RETURN_VALUE
r�rz  2rr(r�)r%r�)r�r�r*r
r�rrfMs
��
z+DisTests.test_big_offsets.<locals>.expectedrr8r9i�i�)r%rg)rrXrfr�r
r
r�test_big_offsetsFszDisTests.test_big_offsetscCs4|�tt�|�tt�|�tt�|�tt�dSr.)	rg�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_strrkr
r
r�test_disassemble_strbszDisTests.test_disassemble_strcCs|�tjjt�dSr.)rgr#�__code__�co_code�
dis_f_co_coderkr
r
r�test_disassemble_byteshszDisTests.test_disassemble_bytescCr{r.)rgr�dis_crkr
r
r�test_disassemble_classkr~zDisTests.test_disassemble_classcCs|�td�jt�dSr)rgrr�dis_c_instance_methodrkr
r
r� test_disassemble_instance_methodn�z)DisTests.test_disassemble_instance_methodcCstd�jjj}|�|t�dSr)rrr�r�rg�dis_c_instance_method_bytes)rZmethod_bytecoder
r
r�&test_disassemble_instance_method_bytesq�z/DisTests.test_disassemble_instance_method_bytescC�|�tjt�dSr.)rgrr�dis_c_static_methodrkr
r
r�test_disassemble_static_methodu�z'DisTests.test_disassemble_static_methodcCr�r.)rgrr�dis_c_class_methodrkr
r
r�test_disassemble_class_methodxr�z&DisTests.test_disassemble_class_methodcC�(|�t�}|�td��}|�||�dSr)r]rDre)rZgen_func_disasZ	gen_disasr
r
r�test_disassemble_generator{�
z#DisTests.test_disassemble_generatorcCr�r)r]rFre)rZagen_func_disasZ
agen_disasr
r
r� test_disassemble_async_generator�r�z)DisTests.test_disassemble_async_generatorcCs4|�t�}td�}|��|�|�}|�||�dSr)r]rH�closere)rZcoro_func_disas�coroZ
coro_disasr
r
r�test_disassemble_coroutine�s


z#DisTests.test_disassemble_coroutinecCr{r.)rgr@�dis_fstringrkr
r
r�test_disassemble_fstring�r~z!DisTests.test_disassemble_fstringcCs|�tt�|�tt�dSr.)rgrB�dis_tryfinallyrC�dis_tryfinallyconstrkr
r
r�test_disassemble_try_finally�sz%DisTests.test_disassemble_try_finallycCs0zt`Wn	ty
Ynw|�ttjd�dSr.)�sys�last_traceback�AttributeError�assertRaises�RuntimeErrorrTrkr
r
r�
test_dis_none�s�zDisTests.test_dis_nonec
Cs|zt`Wn	ty
YnwzddWnty,}z|j}|t_WYd}~nd}~ww|�|jj|j�}|�	d|�dSr)
r�r�r�rrr^�tb_frame�f_code�tb_lastirg)rrr	Ztb_disr
r
r�test_dis_traceback�s���zDisTests.test_dis_tracebackcCs|�ttjt��dSr.)r��	TypeErrorrT�objectrkr
r
r�test_dis_object�r�zDisTests.test_dis_objectcsT�fdd�}|tdd�|tdd�|tdd�|tdd�|tdd�|t�dS)Ncs,�jtfi|��}��|�}��||�dSr.)r]rMrbre)rfr[rTrkr
r�check�s
z2DisTests.test_disassemble_recursive.<locals>.checkrrcrrr()�dis_nested_0�dis_nested_1�dis_nested_2)rr�r
rkr�test_disassemble_recursive�sz#DisTests.test_disassemble_recursive�rOT)rO)#rrr�maxDiffr]r^rbrgrlrorsrzr}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
rrN�sB


rNc@seZdZddd�ZdS)�DisWithFileTestsrOTcKsJt��}|rtj|fd|i|��|��Stj||fd|i|��|��S)N�file)rPrQrTrUrVrWr
r
rr]�s�z DisWithFileTests.get_disassemblyNr��rrrr]r
r
r
rr��sr�z0: Nonez60: 'Formatted details of methods, functions, or code.'z�Name:              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:
   zN
Names:
   0: _format_code_info
   1: _get_code_object
Variable names:
   0: xT)rc
	/s<�|f��������fdd�	������|���f	VdS)Nc
st�����|����	dSr.r )r>�r"r=r?r�frrKrIr
rr��rpztricky.<locals>.fr
)
r"r=rrKrIr>r?r�args�kwdsr
r�r�tricky�s�r�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
Names:
   0: xc	�s^�dIdHt2z3dHW}q6t4IdH�}Wd�IdHdS1IdHs(wYdSr)r=r>)r"r?r
r
r�	async_defIs�
>r�a5Name:              async_def
Filename:          (.*)
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  2
Stack size:        9
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�|�|�qdS�Nr�)r��
test_pairs�assertRegexrT�	code_info)rrrfr
r
r�test_code_infols�zCodeInfoTests.test_code_infoc	Cs�d|_|jD]9\}}t��
}t�|�Wd�n1swY|�|��|d�t��}tj||d�|�|��|�qdS)Nr��
�r�)	r�r�rrTZ	show_coder�rVrPrQ)rrrfr\r
r
r�test_show_codeqs��zCodeInfoTests.test_show_codecCs|�ttjt��dSr.)r�r�rTr�r�rkr
r
r�test_code_info_object{r�z#CodeInfoTests.test_code_info_objectcCs|�t�d�d�dS)NrZ0x0)rerTZpretty_flagsrkr
r
r�test_pretty_flags_no_flags~r�z(CodeInfoTests.test_pretty_flags_no_flagsN)rrrrTr��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�as�

r�cs(d��fdd�	}t��ddgid�|S)	Nr(r9cs&d����fdd�	}t�����|S)Nr8r�cst����||�dSr.r )rr�r<r
r�inner�r��outer.<locals>.f.<locals>.inner�r8r�r )r>r?r�rA)r>r?rr��s�outer.<locals>.fr�r�Hello world!�r(r9r )r"r=r�r
rAr�outer�sr�cCs�td�D]}t|�|dkrq|dkrqqtd�|r0t|�|d8}|dkr)q|dkr.q4|std�z?zddWn
tyHtd�Ynw|�}td	�Wd�n1sZwYWtd
�dSWtd
�dSWtd
�dStd
�w)Nr$r9r��I can haz else clause?r�%Who let lolcatz into this test suite?r�%Here we go, here we go, here we go...�Never reach this�OK, now we're done)r%r!�ZeroDivisionError)r��dodgyr
r
r�jumpy�s<���
���rrhr4r�r�z(3, 4)F)rnrx�argZargvalZargrepr�offsetZstarts_lineZis_jump_targetZLOAD_CLOSURE�r"r=ZBUILD_TUPLE�fr�r�r�z'outer.<locals>.f'r$Z
MAKE_FUNCTION�r2zdefaults, 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�"rm�|�$ZRETURN_VALUEr6�&r�z(5, 6)r>r?r�z!'outer.<locals>.f.<locals>.inner'r�r�Noner%Z10ZGET_ITER�DZFOR_ITER�]��,zto 44r�r;Z
COMPARE_OP�k�<ZPOP_JUMP_IF_FALSE�r�zto 30Z
JUMP_ABSOLUTE�qzto 8�6�>��*zto 42�4zto 52�(r�z'I can haz else clause?'�.�0�2��`zto 96�6�8�:�<�>�@�
�BZINPLACE_SUBTRACT�F�H�J�Lr5�Rzto 82�N�P�T�V�\zto 92�X�hzto 104�ZZPOP_JUMP_IF_TRUE�szto 56�^�r�z''Who let lolcatz into this test suite?'�bZ
SETUP_FINALLY�z�?��zto 232�xzto 120�j�l�0�nZBINARY_TRUE_DIVIDE��pZ	POP_BLOCK�WZJUMP_FORWARD�zto 146�vZDUP_TOPrrt�yr1zto 144�~���r�z''Here we go, here we go, here we go...'��Z
POP_EXCEPT�Y���zto 204�ZRERAISE�w�Z
SETUP_WITH��zto 174�r��r�z'Never reach this'�����������zto 218�ZWITH_EXCEPT_START�1�zto 180��������r�z"OK, now we're done"������������������������������������������cCr-r.r
r
r
r
r�simplesr�csLeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	�Z
S)�InstructionTestscst�j|�d|_dSr.)�superrr�)rr���	__class__r
rr�s
zInstructionTests.__init__cCst�t�}|�t|�t�dSr.�rT�get_instructionsr�re�list�expected_opinfo_simple�r�actualr
r
r�test_default_first_line�s
z(InstructionTests.test_default_first_linecCs"tjtdd�}|�t|�t�dS�N�Z
first_liner�r�r
r
r�test_first_line_set_to_None��z,InstructionTests.test_first_line_set_to_NonecC�"tjttd�}|�t|�t�dSr�)rTr�r��expected_outer_linerer��expected_opinfo_outerr�r
r
r�
test_outer�r�zInstructionTests.test_outercCsNt��t�}Wd�n1swYtj|td�}|�t|�t�dSr�)rr�rTr��expected_f_linerer��expected_opinfo_f)rr�r�r
r
r�test_nested�s
�zInstructionTests.test_nestedcCsPt��t��}Wd�n1swYtj|td�}|�t|�t�dSr�)rr�rTr��expected_inner_linerer��expected_opinfo_inner)rr�r�r
r
r�test_doubly_nested�s

�z#InstructionTests.test_doubly_nestedcCr�r�)rTr�r�expected_jumpy_linerer��expected_opinfo_jumpyr�r
r
r�
test_jumpy�r�zInstructionTests.test_jumpy)rrrrr�r�r�r�r�r��
__classcell__r
r
r�rr��sr�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
BytecodeTestsc	Csvttd�jdtjfD]%}|j|d��t�|�}|�|jt	j
�Wd�n1s*wYq
|�ttjt
��dS�Nrza=1)�obj)r#rrr�rvrT�BytecodeZassertIsInstanceZcodeobj�types�CodeTyper�r�r�)rr�r=r
r
r�test_instantiation�s
��z BytecodeTests.test_instantiationc	Csrttd�jdtjfD],}|j|d��tt�|��}tt�|��}|�	||�Wd�n1s1wYq
dSr�)
r#rrr�rvr�rTr�r�re)rr�Z
via_objectZ
via_generatorr
r
r�test_iteration�s���zBytecodeTests.test_iterationcCr�r�)rTr�r�r�rer�r�r�r
r
r�test_explicit_first_line�r�z&BytecodeTests.test_explicit_first_linecCslt�t���}|���d�d}ttjj�}|�||�tjtdd���}|���d�d}|�|d�dS)Nr:ri^r�Z350)	rTr�r��strip�	partition�strr��co_firstlinenore)rr�rfr
r
r�test_source_line_in_disassembly�sz-BytecodeTests.test_source_line_in_disassemblycCs4d|_tjD]\}}t�|�}|�|��|�qdSr�)r�r�r�rTr�r��info)rrrfr=r
r
r�	test_info�s

�zBytecodeTests.test_infocCst�t���}|�|t�dSr.)rTr�r#rer|r�r
r
r�test_disassembled�r�zBytecodeTests.test_disassembledcCs8t�}tj�|�}|jr|j}|js|�|j|j�dSr.)rrTr��from_tracebackr
reZcurrent_offsetr��rr	r=r
r
r�test_from_traceback�sz!BytecodeTests.test_from_tracebackcCs&t�}tj�|�}|�|��t�dSr.)rrTr�r�re�
dis_tracebackr�r
r
r�test_from_traceback_dis�sz%BytecodeTests.test_from_traceback_disN)rrrr�r�r�r�r�r�r�r�r
r
r
rr��s	r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestBytecodeTestCasecCs8tddd�}|�|dd�|�|d�|�|dd�dS)N�a = 1�<string>r�rhrZ	LOAD_NAMEr"��compileZassertInBytecode�assertNotInBytecode�r�coder
r
r�*test_assert_not_in_with_op_not_in_bytecode�sz?TestBytecodeTestCase.test_assert_not_in_with_op_not_in_bytecodecCs8tddd�}|�|d�|�|dd�|�|dd�dS)Nr�r�r�rhrrr�r�r
r
r�+test_assert_not_in_with_arg_not_in_bytecode�sz@TestBytecodeTestCase.test_assert_not_in_with_arg_not_in_bytecodecCsJtddd�}|�t��|�|dd�Wd�dS1swYdS)Nr�r�r�rhr)r�r��AssertionErrorr�r�r
r
r�'test_assert_not_in_with_arg_in_bytecode�s"�z<TestBytecodeTestCase.test_assert_not_in_with_arg_in_bytecodeN)rrrr�r�r�r
r
r
rr��sr�cs>eZdZd
�fdd�Zdd�Zdd�Zd	d
�Zdd�Z�ZS)�TestDisTraceback�returnNcs&zt`Wn	ty
Ynwt���Sr.)r�r�r�r��setUprkr�r
rr��s�
zTestDisTraceback.setUpcCsJt��}t�|��t�|�Wd�|��S1swY|��Sr.�rPrQrRrSrT�distbrV�rr	r\r
r
rr]�s
��z TestDisTraceback.get_disassemblycCs8|�t��
t��Wd�dS1swYdSr.)r�r�rTr�rkr
r
r�test_distb_emptys
"�z!TestDisTraceback.test_distb_emptycCs"t�}|t_|�|�d�t�dSr.)rr�r�rer]r��rr	r
r
r�test_distb_last_tracebacksz*TestDisTraceback.test_distb_last_tracebackcCst�}|�|�|�t�dSr.)rrer]r�r�r
r
r�test_distb_explicit_argsz(TestDisTraceback.test_distb_explicit_arg)r�N)	rrrr�r]r�r�r�r�r
r
r�rr��sr�c@seZdZdd�ZdS)�TestDisTracebackWithFilecCsNt��}t�|��tj||d�Wd�|��S1swY|��S)Nr�r�r�r
r
rr]s
��z(TestDisTracebackWithFile.get_disassemblyNr�r
r
r
rr�sr��__main__)T)rr)mZtest.supportrZtest.support.bytecode_helperrZunittestr�rTrPr_r�rRrr�r�ZTRACEBACK_CODErrr�r�r�r�rr�rr�rr�r#r|r�r'rr,�__file__r�r/�replacer��bytesr�r�r�r�r�r�r�r�r�r�r�r�r�r�r@r�rBrCr�r�rDrFrHrMr�r�r�ZTestCaserNr��flags�optimizeZcode_info_constsr�rr�r��__func__�	co_constsr�r�r�r�r�r�r�r�r�rr�Z_line_offsetZ
code_object_fr�Zcode_object_innerr�r�ZInstruction�reprr�r�r�r�r�r�r�r�r�r�r��mainr
r
r
r�<module>s�

�

�
�
��

��





��



��	%��-�


��


��



��


��

��T

�!#	


�����������	�
���
������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J� K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�}�$8	�
© 2025 GrazzMean