Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/dis.cpython-35.opt-2.pyc



]C@snddlZddlZddlZddlZddlTddlmZdddddd	d
ddd
dgeZ[ejejej	e
eefZ
ddZdddddZdddddZddddddddddddd d!d"d#d$d%i	Zd&d'Zd(d)Zd*dZd+d,Zddd-dZejd.d/ZGd0d
d
eZd1dd2dZd3d4Zd5d6Zddddddd7d8ZdGddd9dZdHdddddddd:dd;d<Zddd=d>Z eZ!d?d@Z"dAd
Z#dBd	Z$GdCddZ%dDdEZ&e'dFkrje&dS)IN)*)__all__	code_infodisdisassembledistbdiscofindlinestarts
findlabels	show_codeget_instructionsInstructionBytecodecCsAyt||d}Wn$tk
r<t||d}YnX|S)Nevalexec)compileSyntaxError)sourcenamecr(/opt/alt/python35/lib64/python3.5/dis.py_try_compiles

rfilecCs|dkrtd|dSt|dr5|j}t|drM|j}t|dre|j}t|dr"t|jj}x|D]\}}t|t	rt
d|d|yt|d|Wn8tk
r
}zt
d|d|WYdd}~XnXt
d|qWnt|drDt
|d|nct|ttfrlt|d|n;t|trt|d|ntd	t|jdS)
Nr__func____code__gi_code__dict__zDisassembly of %s:zSorry:co_codez(don't know how to disassemble %s objects)rhasattrrrrsortedritems
isinstance
_have_codeprintr	TypeErrorrbytes	bytearray_disassemble_bytesstr_disassemble_strtype__name__)xrr!rZx1msgrrrr s6
			&c
Css|dkrSy
tj}Wntk
r9tdYnXx|jrR|j}q=Wt|jj|jd|dS)Nz no last traceback to disassembler)	syslast_tracebackAttributeErrorRuntimeErrortb_nextrtb_framef_codetb_lasti)tbrrrrrCs


Z	OPTIMIZEDZ	NEWLOCALSZVARARGSZVARKEYWORDSZNESTED Z	GENERATOR@ZNOFREEZ	COROUTINEZITERABLE_COROUTINEcCsg}xktdD]J}d|>}||@r|jtj|t|||N}|sPqW|jt|dj|S)Nr=r8z, )rangeappendCOMPILER_FLAG_NAMESgethexjoin)flagsnamesiflagrrrpretty_flags\s


rKcCst|dr|j}t|dr0|j}t|drH|j}t|trft|d}t|dry|Stdt|j	dS)Nrrrz
<disassembly>rz(don't know how to disassemble %s objects)
rrrrr"r)rr%r+r,)r-rrr_get_code_objectjs			rLcCstt|S)N)_format_code_inforL)r-rrrryscCsg}|jd|j|jd|j|jd|j|jd|j|jd|j|jd|j|jdt|j|j	r|jdx(t
|j	D]}|jd	|qW|jr|jd
x(t
|jD]}|jd|qW|jr[|jdx(t
|jD]}|jd|q@W|j
r|jd
x(t
|j
D]}|jd|qW|jr|jdx(t
|jD]}|jd|qWdj|S)NzName:              %szFilename:          %szArgument count:    %szKw-only arguments: %szNumber of locals:  %szStack size:        %szFlags:             %sz
Constants:z%4d: %rzNames:z%4d: %szVariable names:zFree variables:zCell variables:
)rBco_nameco_filenameco_argcountco_kwonlyargcount
co_nlocalsco_stacksizerKco_flags	co_consts	enumerateco_namesco_varnamesco_freevarsco_cellvarsrF)colinesZi_cZi_nrrrrM}s:	
	
	
	
	
rMcCstt|d|dS)Nr)r$r)r\rrrrrs_InstructionzBopname opcode arg argval argrepr offset starts_line is_jump_targetc@s"eZdZddddZdS)r
FcCs0g}|rM|jdk	r<d|}|j||jn|jd||rc|jdn
|jd|jr|jdn
|jd|jt|jjd|j|jjd|jdk	r|jt|jjd	|j	r|jd
|j	ddj
|jS)Nz%%%dd z-->z   z>>z  r:())starts_linerBis_jump_targetreproffsetrjustopnameljustargargreprrFrstrip)selflineno_widthZmark_as_currentZfieldsZ
lineno_fmtrrr_disassembles&

	
	zInstruction._disassembleN)r,
__module____qualname__rqrrrrr
s
first_linecCsxt|}|j|j}tt|}|dk	rJ||j}nd}t|j|j|j	|j
|||S)Nr)rLr[rZdictr	co_firstlineno_get_instructions_bytesrrYrXrV)r-rtr\
cell_names
linestartsline_offsetrrrrscCs,|}|dk	r||}|t|fS)N)rg)Zconst_indexZ
const_listargvalrrr_get_const_infos
r|cCs;|}|dk	r%||}|}nt|}||fS)N)rg)Z
name_indexZ	name_listr{rmrrr_get_name_infos
	r}c
cst|}d}d}	xt|D]\}
}}|dk	rh|j|
d}|dk	rh||7}|
|k}
d}d}|dk	r|}|tkrt||\}}n|tkrt||\}}n|tkr|
d|}dt|}n|t	kr+t||\}}ng|t
krJt|}|}nH|tkrnt||\}}n$|t
krd|d|df}tt||||||
||
Vq%WdS)Nr_zto z%d positional, %d keyword pairr@)r
_unpack_opargsrDZhasconstr|Zhasnamer}hasjrelrgZhaslocalZ
hascompareZcmp_opZhasfreeZhasnargsr
rj)codevarnamesrH	constantscellsryrzlabelsrefreerhoprlrfr{rmrrrrws@


	
	rwc
CsT|j|j}tt|}t|j||j|j|j||d|dS)Nr)	r[rZrur	r(rrYrXrV)r\lastirrxryrrrr:srzc	Cs|dk	}	|	rdnd}
xt||||||d|D]h}|	og|jdk	og|jdk}|r}td||j|k}
t|j|
|
d|q@WdS)Nr_rrzr)rwrerhr$rq)rrrrHrrryrrzZshow_linenorpZinstrZnew_source_lineZis_current_instrrrrr(As

r(cCstt|dd|dS)Nz<dis>r)rr)rrrrrr*Ssr*ccsd}t|}d}x||kr||}|}|d}d}|tkr||||dd|}d}|d}|tkr|d}|||fVqWdS)Nrr8r@r9i)lenZ
HAVE_ARGUMENTZEXTENDED_ARG)rZextended_argnrIrrhrlrrrrYs



rcCsg}xt|D]u\}}}|dk	rd}|tkrQ|d|}n|tkrc|}|dkr||kr|j|qW|S)Nr8r_r)rrZhasjabsrB)rrrhrrlZlabelrrrr
lsccst|jddd}t|jddd}d}|j}d}xTt||D]C\}}|r||kr||fV|}||7}||7}q]W||kr||fVdS)Nrr9r8)list	co_lnotabrvzip)rZbyte_incrementsZline_incrementsZ
lastlinenolinenoaddrZ	byte_incrZ	line_incrrrrr	s	
c@sjeZdZddddddZddZdd	Zed
dZdd
ZddZ	dS)rrtNcurrent_offsetcCst||_}|dkr7|j|_d|_n||_||j|_|j|j|_tt	||_
||_||_dS)Nr)
rLcodeobjrvrt_line_offsetr[rZ_cell_namesrur	_linestarts_original_objectr)ror-rtrr\rrr__init__s		zBytecode.__init__c	Cs=|j}t|j|j|j|j|j|jd|jS)Nrz)	rrwrrYrXrVrrr)ror\rrr__iter__s
		zBytecode.__iter__cCsdj|jj|jS)Nz{}({!r}))format	__class__r,r)rorrr__repr__szBytecode.__repr__cCs2x|jr|j}qW||jjd|jS)Nr)r3r4r5r6)clsr7rrrfrom_tracebacks
zBytecode.from_tracebackcCs
t|jS)N)rMr)rorrrinfosz
Bytecode.infocCs|j}|jdk	r$|j}nd
}tj`}t|jd|jd|jd|jd|j	d|j
d|jd|d	||jSWdQRXdS)Nr8rrHrrryrzrrr)
rrioStringIOr(rrYrXrVrrrgetvalue)ror\rhoutputrrrrs				zBytecode.dis)
r,rrrsrrrclassmethodrrrrrrrrs
cCsddl}|j}|jdd|jdddd|j}|j}|j}WdQRXt||jjd}t	|dS)	Nrinfiler+nargs?default-r)
argparseArgumentParseradd_argumentFileType
parse_argsrreadrrr)rparserargsrrrrrr_tests%r__main__rr)(r/typescollectionsrZopcoderZ_opcodes_all
MethodTypeFunctionTypeCodeTyperstaticmethodr+r#rrrrCrKrLrrMr
namedtupler^r
rr|r}rwrr(r*rrr
r	rrr,rrrr<module>sb
	
#		3	.	=
Back to Directory File Manager