Your IP : 18.220.194.29


Current Path : /opt/alt/python33/lib64/python3.3/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/__pycache__/dis.cpython-33.pyo

�
��f�'c@s�dZddlZddlZddlTddlmZddddd	d
ddgeZ[ejejeje	fZ
d
d�Zddd�Z
ddd�Zidd6dd6dd6dd6dd6dd6dd6Zdd �Zd!d�Zd"d#�Zd$d�Zd/d%d�Zd0dddd&d'�Zd(d)�ZeZd*d�Zd+d
�Zd,d-�Zed.kr|e�ndS(1u0Disassembler of Python byte code into mnemonics.iN(u*(u__all__u	code_infoudisudisassembleudistbudiscoufindlinestartsu
findlabelsu	show_codecCsAyt||d�}Wn$tk
r<t||d�}YnX|S(u�Attempts to compile the given source, first as an expression and
       then as a statement if the first approach fails.

       Utility function to accept strings in functions that otherwise
       expect code objects
    uevaluexec(ucompileuSyntaxError(usourceunameuc((u(/opt/alt/python33/lib64/python3.3/dis.pyu_try_compiles

u_try_compilecCsl|dkrt�dSt|d�r2|j}nt|d�rM|j}nt|d�r�t|jj��}x�|D]v\}}t|t	�rxt
d|�yt|�Wn2tk
r�}zt
d|�WYdd}~XnXt
�qxqxWnst|d�rt
|�nWt|ttf�r3t|�n5t|t�rOt|�ntdt|�j��dS(	unDisassemble classes, methods, functions, or code.

    With no argument, disassemble the last traceback.

    Nu__func__u__code__u__dict__uDisassembly of %s:uSorry:uco_codeu(don't know how to disassemble %s objects(uNoneudistbuhasattru__func__u__code__usortedu__dict__uitemsu
isinstanceu
_have_codeuprintudisu	TypeErrorudisassembleubytesu	bytearrayu_disassemble_bytesustru_disassemble_strutypeu__name__(uxuitemsunameux1umsg((u(/opt/alt/python33/lib64/python3.3/dis.pyudiss2 


cCsp|dkrVy
tj}Wntk
r9td��YnXx|jrR|j}q=Wnt|jj|j	�dS(u2Disassemble a traceback (default: last traceback).u no last traceback to disassembleN(
uNoneusysulast_tracebackuAttributeErroruRuntimeErrorutb_nextudisassembleutb_frameuf_codeutb_lasti(utb((u(/opt/alt/python33/lib64/python3.3/dis.pyudistb=s

u	OPTIMIZEDiu	NEWLOCALSiuVARARGSiuVARKEYWORDSiuNESTEDiu	GENERATORi uNOFREEi@cCs�g}xqtd�D]P}d|>}||@r|jtj|t|���||N}|scPqcqqW|jt|��dj|�S(u+Return pretty representation of code flags.i iu, (urangeuappenduCOMPILER_FLAG_NAMESugetuhexujoin(uflagsunamesuiuflag((u(/opt/alt/python33/lib64/python3.3/dis.pyupretty_flagsTs


upretty_flagscCs�t|d�r|j}nt|d�r6|j}nt|t�rWt|d�}nt|d�rpt|�Stdt|�j	��dS(u1Formatted details of methods, functions, or code.u__func__u__code__u<code_info>uco_codeu(don't know how to disassemble %s objectsN(
uhasattru__func__u__code__u
isinstanceustru_try_compileu_format_code_infou	TypeErrorutypeu__name__(ux((u(/opt/alt/python33/lib64/python3.3/dis.pyu	code_infobs
cCs�g}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jdt|j��|j	r�|jd�x+t
|j	�D]}|jd	|�q�Wn|jr |jd
�x+t
|j�D]}|jd|�qWn|jrd|jd�x+t
|j�D]}|jd|�qFWn|j
r�|jd
�x+t
|j
�D]}|jd|�q�Wn|jr�|jd�x+t
|j�D]}|jd|�q�Wndj|�S(NuName:              %suFilename:          %suArgument count:    %suKw-only arguments: %suNumber of locals:  %suStack size:        %suFlags:             %su
Constants:u%4d: %ruNames:u%4d: %suVariable names:uFree variables:uCell variables:u
(uappenduco_nameuco_filenameuco_argcountuco_kwonlyargcountu
co_nlocalsuco_stacksizeupretty_flagsuco_flagsu	co_constsu	enumerateuco_namesuco_varnamesuco_freevarsuco_cellvarsujoin(ucoulinesui_cui_n((u(/opt/alt/python33/lib64/python3.3/dis.pyu_format_code_infops:	
	
	
	
	
u_format_code_infocCstt|��dS(u7Print details of methods, functions, or code to stdout.N(uprintu	code_info(uco((u(/opt/alt/python33/lib64/python3.3/dis.pyu	show_code�scCsB|j}t|�}tt|��}t|�}d}d}d}x�||kr=||}	||kr�|dkr�t�ntd||dd�ntddd�||kr�tddd�ntddd�||kr�tddd�ntddd�tt|�jd	�dd�tt	|	j
d
�dd�|d}|	tkr3||||dd|}
d}|d
}|	tkr�|
d}ntt|
�jd�dd�|	t
kr�tdt|j|
�ddd�q3|	tkr#td|j|
ddd�q3|	tkrTtdt||
�ddd�q3|	tkr�td|j|
ddd�q3|	tkr�tdt|
ddd�q3|	tkr�|dkr�|j|j}ntd||
ddd�q3|	tkr3td||d
||dfdd�q3nt�qHWdS(uDisassemble a code object.iu%3duendu u   u-->u>>u  iiiiiiiu(u)u(to u (%d positional, %d keyword pair)N(uco_codeu
findlabelsudictufindlinestartsulenuNoneuprintureprurjustuopnameuljustu
HAVE_ARGUMENTuEXTENDED_ARGuhasconstu	co_constsuhasnameuco_namesuhasjreluhaslocaluco_varnamesu
hascompareucmp_opuhasfreeuco_cellvarsuco_freevarsuhasnargs(ucoulastiucodeulabelsu
linestartsunuiuextended_argufreeuopuoparg((u(/opt/alt/python33/lib64/python3.3/dis.pyudisassemble�s`	




("%"*c
Cs�t|�}t|�}d}x�||kr�||}||krVtddd�ntddd�||kr�tddd�ntddd�tt|�jd�dd�tt|jd	�dd�|d
}|tkr�||||d
d}	|d}tt|	�jd
�dd�|tkrx|ratdt||	�ddd�q�td|	dd�q�|t	kr�|dk	r�td||	ddd�q�td|	dd�q�|tkr�tdt||	�ddd�q�|tkr?|r(td||	ddd�q�td|	dd�q�|t
krjtdt|	ddd�q�|tkr�td||d||d
fdd�q�nt�q!WdS(Niu-->uendu u   u>>u  iiiiiiu(u)u(%d)u(to u (%d positional, %d keyword pair)(u
findlabelsulenuprintureprurjustuopnameuljustu
HAVE_ARGUMENTuhasconstuhasnameuNoneuhasjreluhaslocalu
hascompareucmp_opuhasnargs(
ucodeulastiuvarnamesunamesu	constantsulabelsunuiuopuoparg((u(/opt/alt/python33/lib64/python3.3/dis.pyu_disassemble_bytes�sL


%%*u_disassemble_bytescCstt|d��dS(u<Compile the source string, then disassemble the code object.u<dis>N(udisassembleu_try_compile(usource((u(/opt/alt/python33/lib64/python3.3/dis.pyu_disassemble_str�su_disassemble_strcCs�g}t|�}d}x�||kr�||}|d}|tkr||||dd}|d}d}|tkr�||}n|tkr�|}n|dkr�||kr�|j|�q�q�qqW|S(u`Detect all offsets in a byte code which are jump targets.

    Return the list of offsets.

    iiiii����(ulenu
HAVE_ARGUMENTuhasjreluhasjabsuappend(ucodeulabelsunuiuopuopargulabel((u(/opt/alt/python33/lib64/python3.3/dis.pyu
findlabels�s$



	ccs�t|jddd��}t|jddd��}d}|j}d}xZt||�D]I\}}|r�||kr�||fV|}n||7}n||7}q]W||kr�||fVndS(u�Find the offsets in a byte code which are start of lines in the source.

    Generate pairs (offset, lineno) as described in Python/compile.c.

    iNii(ulistu	co_lnotabuNoneuco_firstlinenouzip(ucodeubyte_incrementsuline_incrementsu
lastlinenoulinenouaddru	byte_incru	line_incr((u(/opt/alt/python33/lib64/python3.3/dis.pyufindlinestartss		
cCs�tjdd�rrtjdd�rFtjjd�tjd�ntjd}|sf|dkrxd}qxnd}|dkr�tj}nt|�}|j�}|dk	r�|j	�nd}t
||d�}t|�dS(u*Simple test program to disassemble a file.iNiuusage: python dis.py [-|file]
u-u<stdin>uexec(usysuargvustderruwriteuexituNoneustdinuopenureaducloseucompileudis(ufnufusourceucode((u(/opt/alt/python33/lib64/python3.3/dis.pyu_test%s"

u_testu__main__i����i����(u__doc__usysutypesuopcodeu__all__u_opcodes_allu
MethodTypeuFunctionTypeuCodeTypeutypeu
_have_codeu_try_compileuNoneudisudistbuCOMPILER_FLAG_NAMESupretty_flagsu	code_infou_format_code_infou	show_codeudisassembleu_disassemble_bytesu_disassemble_strudiscou
findlabelsufindlinestartsu_testu__name__(((u(/opt/alt/python33/lib64/python3.3/dis.pyu<module>sB

!

3	)

?>