Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_dis.cpython-34.pyo

�
h f��t@s7$ddlmZmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZdd�Z
e
�jjZGdd�d�Zdejjjd	fZd
Zdd�Zd
ejjd	ejjdfZdZdd�Zdejjd	ejjdejjdfZgdd�Zdejjd	eejjd	ejjdejjdfZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dejd	ejdejdejd ejd!fZ'Gd"d#�d#ej(�Z)Gd$d%�d%e)�Z*d&ej+j,dkrMd,nd-Z-e.d(d)gd*d+��Z/d,Z0e/j1jj2d	Z3d-Z4d.Z5d/Z6d0Z7Gd1d2�d2ej(�Z8d	dd3d4�Z9d5d6�Z:d	Z;e9jjd	Z<e9jj2dZ=e=je<Z>e=j2dZ?e?je<Z@d	ZAejBZBeBd7d8d9d:d;d	d<dd=d>d?dd@ddAdB�eBd7d8d9d:d;dd<d d=dCd?dd@ddAdB�eBd7dDd9dEd;dd<dFd=dFd?dGd@ddAdB�eBd7dDd9dEd;d	d<dHd=dHd?dId@ddAdB�eBd7dJd9dKd;dd<dd=dLd?dMd@ddAdB�eBd7d8d9d:d;dd<e=d=eCe=�d?dNd@ddAdB�eBd7d8d9d:d;d d<dOd=dPd?dQd@ddAdB�eBd7dRd9dSd;dd<dd=dLd?dTd@ddAdB�eBd7dUd9dVd;dd<dWd=dWd?dXd@ddAdB�eBd7dYd9dZd;dd<d[d=d[d?d\d@d]dAdB�eBd7d^d9d_d;dd<dFd=dFd?d`d@ddAdB�eBd7d^d9d_d;d	d<dHd=dHd?dad@ddAdB�eBd7d8d9d:d;d!d<dLd=dbd?dcd@ddAdB�eBd7d8d9d:d;dGd<d	d=ddd?ded@ddAdB�eBd7dfd9dgd;dd<dd=dLd?dhd@ddAdB�eBd7did9djd;dd<dd=dLd?dkd@ddAdB�eBd7d8d9d:d;d]d<dld=dmd?dnd@ddAdB�eBd7dod9dpd;d]d<d]d=dqd?drd@ddAdB�eBd7dsd9d	d;dd<dd=dLd?dtd@ddAdB�eBd7dud9dvd;dd<dWd=dWd?dwd@dxdAdB�eBd7dyd9dzd;dd<dd=dLd?d{d@ddAdB�gZDeBd7d8d9d:d;d	d<d!d=d|d?dd@ddAdB�eBd7d8d9d:d;dd<dGd=d}d?dd@ddAdB�eBd7dDd9dEd;dd<dFd=dFd?dGd@ddAdB�eBd7dDd9dEd;dd<dHd=dHd?dId@ddAdB�eBd7dDd9dEd;dd<d~d=d~d?dMd@ddAdB�eBd7dDd9dEd;d	d<dd=dd?dNd@ddAdB�eBd7dJd9dKd;d d<d d=dLd?dQd@ddAdB�eBd7d8d9d:d;dd<e?d=eCe?�d?dTd@ddAdB�eBd7d8d9d:d;d d<d�d=d�d?dXd@ddAdB�eBd7dRd9dSd;dd<dd=dLd?d\d@ddAdB�eBd7dUd9dVd;dd<d�d=d�d?d`d@ddAdB�eBd7dYd9dZd;dd<d[d=d[d?dad@d!dAdB�eBd7d^d9d_d;dd<dFd=dFd?dcd@ddAdB�eBd7d^d9d_d;dd<dHd=dHd?ded@ddAdB�eBd7d^d9d_d;dd<d~d=d~d?dhd@ddAdB�eBd7d^d9d_d;d	d<dd=dd?dkd@ddAdB�eBd7dod9dpd;d d<d d=d�d?dnd@ddAdB�eBd7dsd9d	d;dd<dd=dLd?drd@ddAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@dGdAdB�eBd7dyd9dzd;dd<dd=dLd?dwd@ddAdB�gZEeBd7dYd9dZd;dd<d[d=d[d?dd@d dAdB�eBd7d^d9d_d;dd<dFd=dFd?dd@ddAdB�eBd7d^d9d_d;d	d<dHd=dHd?dGd@ddAdB�eBd7d^d9d_d;dd<d~d=d~d?dId@ddAdB�eBd7d^d9d_d;dd<dd=dd?dMd@ddAdB�eBd7dud9dvd;dd<d)d=d)d?dNd@ddAdB�eBd7dud9dvd;d	d<dWd=dWd?dQd@ddAdB�eBd7dod9dpd;dGd<dGd=d�d?dTd@ddAdB�eBd7dsd9d	d;dd<dd=dLd?dXd@ddAdB�eBd7d8d9d:d;dd<dd=d�d?d�d@ddAdB�eBd7dyd9dzd;dd<dd=dLd?d�d@ddAdB�gZFeBd7d�d9d�d;d�d<d�d=d�d?dd@ddAdB�eBd7dYd9dZd;dd<d�d=d�d?dd@ddAdB�eBd7d8d9d:d;d	d<d�d=d�d?dGd@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?dId@ddAdB�eBd7d�d9d�d;dd<dd=dLd?dMd@ddAdB�eBd7d�d9d�d;d�d<d�d=d�d?d�d@ddAd(�eBd7dUd9dVd;dd<d�d=d�d?d�d@ddAdB�eBd7dYd9dZd;d	d<d[d=d[d?d�d@d dAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@d!dAdB�eBd7d8d9d:d;dd<d d=dCd?d�d@ddAdB�eBd7d�d9d�d;dd<d�d=d�d?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@dGdAdB�eBd7d�d9d�d;dd<d�d=d�d?d�d@ddAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@d]dAd(�eBd7d8d9d:d;dd<dGd=d}d?d�d@ddAdB�eBd7d�d9d�d;d d<d�d=d�d?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;dd<dd=dLd?d�d@dxdAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;dd<dd=dLd?d�d@ddAd(�eBd7dYd9dZd;d	d<d[d=d[d?d�d@d�dAdB�eBd7d8d9d:d;d d<d�d=d�d?d�d@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=d�d?d�d@d�dAd(�eBd7dud9dvd;dd<d�d=d�d?d�d@ddAd(�eBd7d�d9d�d;d�d<d�d=dLd?dzd@ddAdB�eBd7dYd9dZd;d	d<d[d=d[d?d�d@dMdAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@d�dAdB�eBd7d8d9d:d;d!d<d	d=ddd?d�d@ddAdB�eBd7d�d9d�d;dd<dd=dLd?dKd@ddAdB�eBd7dUd9dVd;dd<d�d=d�d?dgd@ddAdB�eBd7dud9dvd;dd<d�d=d�d?d�d@d�dAdB�eBd7d8d9d:d;dd<dGd=d}d?d�d@ddAdB�eBd7d�d9d�d;d d<d�d=d�d?d�d@ddAdB�eBd7d�d9d�d;dvd<dvd=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@dNdAdB�eBd7d�d9d�d;dd<dvd=d�d?d�d@ddAdB�eBd7dud9dvd;dd<d�d=d�d?dvd@d�dAd(�eBd7d8d9d:d;dd<d d=dCd?d�d@ddAdB�eBd7d�d9d�d;dd<d�d=d�d?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;dd<dd=dLd?d_d@d�dAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7d�d9d�d;dd<dd=dLd?d�d@ddAd(�eBd7dYd9dZd;d	d<d[d=d[d?d�d@d�dAdB�eBd7d8d9d:d;dGd<d�d=d�d?d�d@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=d�d?d�d@d�dAd(�eBd7d�d9d�d;dMd<d�d=d�d?d�d@ddAdB�eBd7d8d9d:d;d!d<d	d=ddd?d�d@dTdAdB�eBd7d8d9d:d;d]d<dd=d�d?d�d@ddAdB�eBd7d�d9d\d;dd<dd=dLd?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7d�d9d�d;dd<dd=dLd?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=d�d?d�d@ddAdB�eBd7d�d9d d;dd<dd=dLd?d�d@d�dAd(�eBd7dYd9dZd;dd<d�d=d�d?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=d�d?d�d@ddAdB�eBd7d�d9d�d;d�d<d�d=dLd?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d�d@ddAdB�eBd7dYd9dZd;d	d<d[d=d[d?d�d@d�dAdB�eBd7d8d9d:d;dxd<d�d=d�d?dd@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?dd@ddAdB�eBd7dsd9d	d;dd<dd=dLd?dd@ddAdB�eBd7dd9d�d;dd<dd=dLd?dd@ddAdB�eBd7d�d9d�d;dd<dd=dd?dd@ddAdB�eBd7d	d9d
d;dd<dd=dLd?d�d@ddAd(�eBd7dud9dvd;dd<d�d=d�d?d�d@d�dAd(�eBd7dd9d�d;d�d<dd=d
d?dd@ddAdB�eBd7dUd9dVd;d	d<dd=dd?dd@ddAdB�eBd7dYd9dZd;d	d<d[d=d[d?dd@ddAdB�eBd7d8d9d:d;dId<dd=dd?dd@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?dd@ddAdB�eBd7dsd9d	d;dd<dd=dLd?dd@ddAdB�eBd7d�d9d�d;dd<dd=dLd?dd@ddAdB�eBd7d8d9d:d;dd<dd=d�d?dd@ddAdB�eBd7dd9dd;dd<dd=dLd?dd@ddAd(�eBd7d	d9d
d;dd<dd=dLd?dd@ddAdB�eBd7d�d9d�d;dd<dd=dLd?dd@ddAd(�eBd7d8d9d:d;dd<dd=d�d?dd@ddAdB�eBd7dYd9dZd;d	d<d[d=d[d?d�d@d�dAd(�eBd7d8d9d:d;d�d<dd=dd?dd@ddAdB�eBd7dod9dpd;d	d<d	d=d�d?d d@ddAdB�eBd7dsd9d	d;dd<dd=dLd?d!d@ddAdB�eBd7d	d9d
d;dd<dd=dLd?d"d@ddAdB�eBd7d8d9d:d;dd<dd=d�d?d#d@ddAdB�eBd7dyd9dzd;dd<dd=dLd?d$d@ddAdB�gdZGd%d&�ZHeBd7d8d9d:d;dd<dd=d�d?dd@eHjjdAdB�eBd7dyd9dzd;dd<dd=dLd?dd@ddAdB�gZIGd'd(�d(e�ZJGd)d*�d*ej(�ZKeLd+kr3$ejM�ndS(.�)�run_unittest�captured_stdout)�BytecodeTestCaseNcCs2dd�}|�}x|jr-|j}qW|S)NcSsAyddWn.tk
r<}z|j}WYdd}~XnX|S)N�r)�	Exception�
__traceback__)�e�tb�r
�2/opt/alt/python34/lib64/python3.4/test/test_dis.py�_errors
zget_tb.<locals>._error)�tb_next)rr	r
r
r�get_tbs
	
rc@seZdZdd�ZdS)�_CcCs|dk|_dS)Nr)�x)�selfrr
r
r�__init__sz_C.__init__N)�__name__�
__module__�__qualname__rr
r
r
rrsra> %-4d         0 LOAD_FAST                1 (x)
              3 LOAD_CONST               1 (1)
              6 COMPARE_OP               2 (==)
              9 LOAD_FAST                0 (self)
             12 STORE_ATTR               0 (x)
             15 LOAD_CONST               0 (None)
             18 RETURN_VALUE
ra          0 LOAD_FAST                1 (1)
          3 LOAD_CONST               1 (1)
          6 COMPARE_OP               2 (==)
          9 LOAD_FAST                0 (0)
         12 STORE_ATTR               0 (0)
         15 LOAD_CONST               0 (0)
         18 RETURN_VALUE
cCst|�dS)Nr)�print)�ar
r
r�_f5s
ra %-4d         0 LOAD_GLOBAL              0 (print)
              3 LOAD_FAST                0 (a)
              6 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
              9 POP_TOP

 %-4d        10 LOAD_CONST               1 (1)
             13 RETURN_VALUE
�z�          0 LOAD_GLOBAL              0 (0)
          3 LOAD_FAST                0 (0)
          6 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
          9 POP_TOP
         10 LOAD_CONST               1 (1)
         13 RETURN_VALUE
cCsxtdd�D]}qWdS)Nr�
)�range)�resr
r
r�	bug708901Os	
ra" %-4d         0 SETUP_LOOP              23 (to 26)
              3 LOAD_GLOBAL              0 (range)
              6 LOAD_CONST               1 (1)

 %-4d         9 LOAD_CONST               2 (10)
             12 CALL_FUNCTION            2 (2 positional, 0 keyword pair)
             15 GET_ITER
        >>   16 FOR_ITER                 6 (to 25)
             19 STORE_FAST               0 (res)

 %-4d        22 JUMP_ABSOLUTE           16
        >>   25 POP_BLOCK
        >>   26 LOAD_CONST               0 (None)
             29 RETURN_VALUE
�cCsdS)Nr
)rr
r
r�
bug1333982hsra%3d           0 LOAD_CONST               1 (0)
              3 POP_JUMP_IF_TRUE        35
              6 LOAD_GLOBAL              0 (AssertionError)
              9 LOAD_CONST               2 (<code object <listcomp> at 0x..., file "%s", line %d>)
             12 LOAD_CONST               3 ('bug1333982.<locals>.<listcomp>')
             15 MAKE_FUNCTION            0
             18 LOAD_FAST                0 (x)
             21 GET_ITER
             22 CALL_FUNCTION            1 (1 positional, 0 keyword pair)

%3d          25 LOAD_CONST               4 (1)
             28 BINARY_ADD
             29 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
             32 RAISE_VARARGS            1

%3d     >>   35 LOAD_CONST               0 (None)
             38 RETURN_VALUE
z�%3d           0 LOAD_GLOBAL              0 (spam)
              3 POP_TOP
              4 LOAD_CONST               0 (None)
              7 RETURN_VALUE
z�Disassembly of f:
  4           0 LOAD_CONST               0 (None)
              3 RETURN_VALUE

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

zx + 1z�  1           0 LOAD_NAME                0 (x)
              3 LOAD_CONST               0 (1)
              6 BINARY_ADD
              7 RETURN_VALUE
z	x = x + 1z�  1           0 LOAD_NAME                0 (x)
              3 LOAD_CONST               0 (1)
              6 BINARY_ADD
              7 STORE_NAME               0 (x)
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE
zx = 0
while 1:
    x += 1a�  1           0 LOAD_CONST               0 (0)
              3 STORE_NAME               0 (x)

  2           6 SETUP_LOOP              14 (to 23)

  3     >>    9 LOAD_NAME                0 (x)
             12 LOAD_CONST               1 (1)
             15 INPLACE_ADD
             16 STORE_NAME               0 (x)
             19 JUMP_ABSOLUTE            9
             22 POP_BLOCK
        >>   23 LOAD_CONST               2 (None)
             26 RETURN_VALUE
a� %-4d         0 SETUP_EXCEPT            12 (to 15)

 %-4d         3 LOAD_CONST               1 (1)
              6 LOAD_CONST               2 (0)
    -->       9 BINARY_TRUE_DIVIDE
             10 POP_TOP
             11 POP_BLOCK
             12 JUMP_FORWARD            46 (to 61)

 %-4d   >>   15 DUP_TOP
             16 LOAD_GLOBAL              0 (Exception)
             19 COMPARE_OP              10 (exception match)
             22 POP_JUMP_IF_FALSE       60
             25 POP_TOP
             26 STORE_FAST               0 (e)
             29 POP_TOP
             30 SETUP_FINALLY           14 (to 47)

 %-4d        33 LOAD_FAST                0 (e)
             36 LOAD_ATTR                1 (__traceback__)
             39 STORE_FAST               1 (tb)
             42 POP_BLOCK
             43 POP_EXCEPT
             44 LOAD_CONST               0 (None)
        >>   47 LOAD_CONST               0 (None)
             50 STORE_FAST               0 (e)
             53 DELETE_FAST              0 (e)
             56 END_FINALLY
             57 JUMP_FORWARD             1 (to 61)
        >>   60 END_FINALLY

 %-4d   >>   61 LOAD_FAST                1 (tb)
             64 RETURN_VALUE
��c@s�eZdZd(ddd�Zd)dd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'S)*�DisTestsrTc
CsRtj�}tj|��+|r2tj|�ntj||�WdQX|j�S)N)�io�StringIO�
contextlib�redirect_stdout�dis�disassemble�getvalue)r�func�lasti�wrapper�outputr
r
r�get_disassembly�szDisTests.get_disassemblycCs|j||d�S)NF)r.)rr*r+r
r
r�get_disassemble_as_string�sz"DisTests.get_disassemble_as_stringcCstjdd|�S)Nz\b0x[0-9A-Fa-f]+\bz0x...)�re�sub)r�textr
r
r�strip_addresses�szDisTests.strip_addressescCsA|j|�}||kr-|j|�}n|j||�dS)N)r.r3�assertEqual)rr*�expectedZgotr
r
r�do_disassembly_test�szDisTests.do_disassembly_testcCsO|jtjdd�|jtjdtj�|jtjdtj�dS)NZNOP�	�
LOAD_CONST�
STORE_NAME)r4r'�opmapZassertInZhasconstZhasname)rr
r
r�
test_opmapszDisTests.test_opmapcCs"|jtjtjdd�dS)N�	LOAD_FAST)r4r'�opnamer:)rr
r
r�test_opnameszDisTests.test_opnamecCs8|jtjdtj�|jtjdtj�dS)N�EXTENDED_ARGr9)r4r'r:r?Z
HAVE_ARGUMENT)rr
r
r�test_boundaries	szDisTests.test_boundariescCs|jtt�dS)N)r6r�dis_f)rr
r
r�test_dis
szDisTests.test_discCs|jtt�dS)N)r6r�
dis_bug708901)rr
r
r�test_bug_708901szDisTests.test_bug_708901cCs*ts|jd�n|jtt�dS)Nzneed asserts, run without -O)�	__debug__ZskipTestr6r�dis_bug1333982)rr
r
r�test_bug_1333982szDisTests.test_bug_1333982cCs�dd�}x;tdd�D]*}t|d}|j||�|�qWx>tddd�D]*}t|d}|j||�|�q]Wdd	lm}|j|t�dS)
NcSs<i}ddjdg|dg�}t||�|dS)Nzdef foo():
 �z
 zspam
Zfoo)�join�exec)�count�	namespacer*r
r
rr*s!
z'DisTests.test_big_linenos.<locals>.funcri,ri�rr)�
dis_module)r�_BIG_LINENO_FORMATr6ZtestrM�dis_module_expected_results)rr*�ir5rMr
r
r�test_big_linenosszDisTests.test_big_linenoscCs4|jtt�|jtt�|jtt�dS)N)r6�expr_str�dis_expr_str�simple_stmt_str�dis_simple_stmt_str�compound_stmt_str�dis_compound_stmt_str)rr
r
r�test_disassemble_str/szDisTests.test_disassemble_strcCs|jtjjt�dS)N)r6r�__code__�co_code�
dis_f_co_code)rr
r
r�test_disassemble_bytes4szDisTests.test_disassemble_bytescCs|jtd�jt�dS)Nr)r6rr�dis_c_instance_method)rr
r
r�test_disassemble_method7sz DisTests.test_disassemble_methodcCs)td�jjj}|j|t�dS)Nr)rrrYrZr6�dis_c_instance_method_bytes)rZmethod_bytecoder
r
r�test_disassemble_method_bytes:sz&DisTests.test_disassemble_method_bytescCs9y
t`Wntk
rYnX|jttjd�dS)N)�sys�last_traceback�AttributeError�assertRaises�RuntimeErrorr')rr
r
r�
test_dis_none>s


zDisTests.test_dis_nonecCs�y
t`Wntk
rYnXyddWn7tk
rd}z|j}|t_WYdd}~XnX|j|jj|j�}|j	d|�dS)Nrr)
rarbrcrrr/�tb_frame�f_code�tb_lastir6)rrr	Ztb_disr
r
r�test_dis_tracebackEs

	zDisTests.test_dis_tracebackcCs|jttjt��dS)N)rd�	TypeErrorr'�object)rr
r
r�test_dis_objectTszDisTests.test_dis_objectN���rn)rrrr.r/r3r6r;r>r@rBrDrGrQrXr\r^r`rfrjrmr
r
r
rr"�s$
r"c@s"eZdZdddd�ZdS)�DisWithFileTestsrTcCsHtj�}|r(tj|d|�ntj||d|�|j�S)N�file)r#r$r'r(r))rr*r+r,r-r
r
rr.Zs
z DisWithFileTests.get_disassemblyNrn)rrrr.r
r
r
rroWsroaName:              code_info
Filename:          (.*)
Argument count:    1
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�1Formatted details of methods, functions, or code.Trc/sB|������fdd�����|���fVdS)Ncs t���|����dS)N)r)�c)�dr�fr�y�zr
rrtwsztricky.<locals>.fr
)rrurvrrrsr�args�kwdsr
)rsrrtrrurvr�trickyus$rya�Name:              tricky
Filename:          (.*)
Argument count:    3
Kw-only arguments: 3
Number of locals:  8
Stack size:        7
Flags:             OPTIMIZED, NEWLOCALS, VARARGS, VARKEYWORDS, GENERATOR
Constants:
   0: None
   1: <code object f at (.*), file "(.*)", line (.*)>
   2: 'tricky.<locals>.f'
Variable names:
   0: x
   1: y
   2: z
   3: c
   4: d
   5: e
   6: args
   7: kwds
Cell variables:
   0: [edfxyz]
   1: [edfxyz]
   2: [edfxyz]
   3: [edfxyz]
   4: [edfxyz]
   5: [edfxyz]a[Name:              f
Filename:          (.*)
Argument count:    1
Kw-only arguments: 0
Number of locals:  1
Stack size:        8
Flags:             OPTIMIZED, NEWLOCALS, NESTED
Constants:
   0: None
Names:
   0: print
Variable names:
   0: c
Free variables:
   0: [edfxyz]
   1: [edfxyz]
   2: [edfxyz]
   3: [edfxyz]
   4: [edfxyz]
   5: [edfxyz]z�Name:              <module>
Filename:          <disassembly>
Argument count:    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
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
Kw-only arguments: 0
Number of locals:  0
Stack size:        2
Flags:             NOFREE
Constants:
   0: 0
   1: 1
   2: None
Names:
   0: xc@seZdZejefeefee	fe
efee
feefgZdd�Zdd�Zdd�Zdd�Zd	S)
�
CodeInfoTestscCs@d|_x0|jD]%\}}|jtj|�|�qWdS)Ni�)�maxDiff�
test_pairs�assertRegexr'�	code_info)rrr5r
r
r�test_code_info�s	zCodeInfoTests.test_code_infocCs�d|_x�|jD]z\}}t��}tj|�WdQX|j|j�|d�tj�}tj|d|�|j|j�|�qWdS)Ni��
rp)	r{r|rr'Z	show_coder}r)r#r$)rrr5r-r
r
r�test_show_code�s	zCodeInfoTests.test_show_codecCs|jttjt��dS)N)rdrkr'r~rl)rr
r
r�test_code_info_object�sz#CodeInfoTests.test_code_info_objectcCs|jtjd�d�dS)NrZ0x0)r4r'Zpretty_flags)rr
r
r�test_pretty_flags_no_flags�sz(CodeInfoTests.test_pretty_flags_no_flagsN)rrrr'r~�code_info_code_infory�code_info_tricky�co_tricky_nested_f�code_info_tricky_nested_frR�code_info_expr_strrT�code_info_simple_stmt_strrV�code_info_compound_stmt_strr|rr�r�r�r
r
r
rrz�s				
rzcs;dd��fdd�}t��ddgid�|S)Nrr cs8dd����fdd�}t�����|S)Nr!�cst����||�dS)N)r)rrt)r�brrrsr
r�inner�szouter.<locals>.f.<locals>.inner)r)rrrsr�)rr�)rrrsrrt�s!zouter.<locals>.frHrzHello world!)r)rr�rtr
)rr�r�outer�sr�cCs�xJtd�D]2}t|�|dkr/q
n|dkr
Pq
q
Wtd�xJ|r�t|�|d8}|dkr|qPn|dkrPPqPqPWtd�zHyddWntk
r�td�YnX|�}td	�WdQXWdtd
�XdS)Nrr r�zI can haz else clause?rz%Who let lolcatz into this test suite?rz%Here we go, here we go, here we go...zNever reach thiszOK, now we're done)rr�ZeroDivisionError)rP�dodgyr
r
r�jumpys,

	



	r�r=r8Zopcode�d�argZargvalZargrepr�3�offsetZstarts_lineZis_jump_targetF�4ZLOAD_CLOSURE�rr�r�r7ZBUILD_TUPLE�frH��zouter.<locals>.fz'outer.<locals>.f'�ZMAKE_CLOSURE��Z
STORE_FAST�}rt�ZLOAD_GLOBAL�tr��Z
LOAD_DEREF���!z''�$�1�'Z
BUILD_LIST�g�*Z	BUILD_MAP�i�-zHello world!z'Hello world!'�0Z
CALL_FUNCTION�z7 positional, 0 keyword pair�3ZPOP_TOP�6r<�|�7�ZRETURN_VALUE�S�:�5�6rrrszouter.<locals>.f.<locals>.innerz!'outer.<locals>.f.<locals>.inner'r�z4 positional, 0 keyword pair�4z6 positional, 0 keyword pair�None��Z
SETUP_LOOP�x�J�Mzto 77rrZ10z1 positional, 0 keyword pairZGET_ITER�DZFOR_ITER�]�2�Bzto 66�
rP����� Z
COMPARE_OP�k�<�#ZPOP_JUMP_IF_FALSE�r�/�&Z
JUMP_ABSOLUTE�q�)ZJUMP_FORWARD�nzto 47�,�>�5�8Z
BREAK_LOOP�P�;�<�?Z	POP_BLOCK�W�CzI can haz else clause?z'I can haz else clause?'�F�I�L�zto 154���V�Y�\�_�`�cZINPLACE_SUBTRACT�j��m�p�s�vzto 124�y�������z%Who let lolcatz into this test suite?z''Who let lolcatz into this test suite?'���Z
SETUP_FINALLY�z�H��zto 229�ZSETUP_EXCEPT�zto 172���0�ZBINARY_TRUE_DIVIDE�����zto 200�ZDUP_TOPr��zexception match���������z%Here we go, here we go, here we go...z''Here we go, here we go, here we go...'����Z
POP_EXCEPT�����zto 225��ZEND_FINALLY�XZ
SETUP_WITH��zto 223��r�����zNever reach thisz'Never reach this'����������ZWITH_CLEANUP�Q����zOK, now we're donez"OK, now we're done"������������cCsdS)Nr
r
r
r
r�simple�sr*c@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�InstructionTestscCs)tjt�}|jt|�t�dS)N)r'�get_instructionsr*r4�list�expected_opinfo_simple)r�actualr
r
r�test_default_first_line�sz(InstructionTests.test_default_first_linecCs/tjtdd�}|jt|�t�dS)N�
first_line)r'r,r*r4r-r.)rr/r
r
r�test_first_line_set_to_None�sz,InstructionTests.test_first_line_set_to_NonecCs/tjtdt�}|jt|�t�dS)Nr1)r'r,r��expected_outer_liner4r-�expected_opinfo_outer)rr/r
r
r�
test_outer�szInstructionTests.test_outerc
CsHt��t�}WdQXtj|dt�}|jt|�t�dS)Nr1)rr�r'r,�expected_f_liner4r-�expected_opinfo_f)rrtr/r
r
r�test_nested�s
zInstructionTests.test_nestedc
CsKt��t��}WdQXtj|dt�}|jt|�t�dS)Nr1)rr�r'r,�expected_inner_liner4r-�expected_opinfo_inner)rr�r/r
r
r�test_doubly_nesteds
z#InstructionTests.test_doubly_nestedcCs/tjtdt�}|jt|�t�dS)Nr1)r'r,r��expected_jumpy_liner4r-�expected_opinfo_jumpy)rr/r
r
r�
test_jumpyszInstructionTests.test_jumpyN)	rrrr0r2r5r8r;r>r
r
r
rr+�sr+c@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
BytecodeTestscCs�xdttd�jdtjgD]D}|jd|��*tj|�}|j|jt	j
�WdQXqW|jttjt
��dS)Nrza=1�obj)rrrrY�subTestr'�BytecodeZassertIsInstanceZcodeobj�types�CodeTyperdrkrl)rr@r�r
r
r�test_instantiation
s
% z BytecodeTests.test_instantiationcCs�xyttd�jdtjgD]Y}|jd|��?ttj|��}ttj|��}|j	||�WdQXqWdS)Nrza=1r@)
rrrrYrAr-r'rBr,r4)rr@Z
via_objectZ
via_generatorr
r
r�test_iterations
%zBytecodeTests.test_iterationcCs/tjtdt�}|jt|�t�dS)Nr1)r'rBr�r3r4r-r4)rr/r
r
r�test_explicit_first_linesz&BytecodeTests.test_explicit_first_linecCs}tjt�j�dd�}djtjj�}|j||�tjtdd�j�dd�}|j|d�dS)Nrz{:>3}r1i^Z350)r'rBr*�formatrY�co_firstlinenor4)rr/r5r
r
r�test_source_line_in_disassembly!s
%z-BytecodeTests.test_source_line_in_disassemblycCsLd|_x<tjD]1\}}tj|�}|j|j�|�qWdS)Ni�)r{rzr|r'rBr}�info)rrr5r�r
r
r�	test_info*s	zBytecodeTests.test_infocCs)tjt�j�}|j|t�dS)N)r'rBrr4rA)rr/r
r
r�test_disassembled0szBytecodeTests.test_disassembledcCsNt�}tjj|�}x|jr3|j}qW|j|j|j�dS)N)rr'rB�from_tracebackr
r4Zcurrent_offsetri)rr	r�r
r
r�test_from_traceback4s
	
z!BytecodeTests.test_from_tracebackcCs5t�}tjj|�}|j|j�t�dS)N)rr'rBrNr4�
dis_traceback)rr	r�r
r
r�test_from_traceback_dis;s	z%BytecodeTests.test_from_traceback_disN)rrrrErFrGrJrLrMrOrQr
r
r
rr?s		r?�__main__)rq)N)NZtest.supportrrZtest.bytecode_helperrZdifflibZunittestrar'r#r0rCr%rrgrhZTRACEBACK_CODErrrYrIr]r_rrAr[rrCr�__file__rFrNrOrRrSrTrUrVrWrPZTestCaser"ro�flags�optimizer��staticmethodryr��__func__�	co_constsr�r�r�r�r�rzr�r�r3Z_line_offsetZ
code_object_fr6Zcode_object_innerr9r<ZInstruction�reprr4r7r:r=r*r.r+r?r�mainr
r
r
r�<module>s�





	$



n 
"	


	66666<66666666666666<6666666<66666666666<6666666666<666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666<<< 4