Your IP : 13.58.255.145


Current Path : /lib64/python2.7/
Upload File :
Current File : //lib64/python2.7/symtable.pyc

�
�mec@s�dZddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddlZdddddgZd	�Zd
dd��YZe�Zdefd��YZdefd
��YZdefd��YZdefd��YZedkr�ddlZddlZeej d�j!�Z"ee"ej#j$ej d�dd�Z%x?e%j&�D].Z'e%j(e'�Z)e)Ge)j*�Ge)j+�GHq�WndS(s2Interface to the compiler's internal symbol tablesi����N(tUSEt
DEF_GLOBALt	DEF_LOCALt	DEF_PARAMt
DEF_IMPORTt	DEF_BOUNDtOPT_IMPORT_STARtOPT_EXECt
OPT_BARE_EXECt	SCOPE_OFFt
SCOPE_MASKtFREEtGLOBAL_IMPLICITtGLOBAL_EXPLICITtCELLtLOCALtsymtabletSymbolTabletClasstFunctiontSymbolcCsLtj|||�}x'|j�D]}|jdkr"Pq"q"Wt||�S(Nttop(t	_symtableRt
itervaluestnamet_newSymbolTable(tcodetfilenametcompile_typetrawR((s /usr/lib64/python2.7/symtable.pyRs
tSymbolTableFactorycBs#eZd�Zd�Zd�ZRS(cCstj�|_dS(N(tweakreftWeakValueDictionaryt_SymbolTableFactory__memo(tself((s /usr/lib64/python2.7/symtable.pyt__init__scCsK|jtjkrt||�S|jtjkr>t||�St||�S(N(ttypeRt
TYPE_FUNCTIONRt
TYPE_CLASSRR(R"ttableR((s /usr/lib64/python2.7/symtable.pytnews


cCsQ||f}|jj|d�}|dkrM|j||�}|j|<n|S(N(R!tgettNoneR((R"R'Rtkeytobj((s /usr/lib64/python2.7/symtable.pyt__call__s
 (t__name__t
__module__R#R(R-(((s /usr/lib64/python2.7/symtable.pyRs		cBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZRS(cCs||_||_i|_dS(N(t_tablet	_filenamet_symbols(R"t	raw_tableR((s /usr/lib64/python2.7/symtable.pyR#*s		cCsm|jtkrd}nd|jj}|jjdkrMdj||j�Sdj||jj|j�SdS(Nts%s tglobals<{0}SymbolTable for module {1}>s<{0}SymbolTable for {1} in {2}>(t	__class__RR.R0RtformatR1(R"tkind((s /usr/lib64/python2.7/symtable.pyt__repr__/s			cCs||jjtjkrdS|jjtjkr2dS|jjtjkrKdS|jjdksxtdj|jj���dS(	Ntmoduletfunctiontclassiiisunexpected type: {0}(iii(R0R$RtTYPE_MODULER%R&tAssertionErrorR7(R"((s /usr/lib64/python2.7/symtable.pytget_type<scCs
|jjS(N(R0tid(R"((s /usr/lib64/python2.7/symtable.pytget_idFscCs
|jjS(N(R0R(R"((s /usr/lib64/python2.7/symtable.pytget_nameIscCs
|jjS(N(R0tlineno(R"((s /usr/lib64/python2.7/symtable.pyt
get_linenoLscCs&t|jjtjko"|jj�S(N(tboolR0R$RR%t	optimized(R"((s /usr/lib64/python2.7/symtable.pytis_optimizedOscCst|jj�S(N(RER0tnested(R"((s /usr/lib64/python2.7/symtable.pyt	is_nestedSscCst|jj�S(N(RER0tchildren(R"((s /usr/lib64/python2.7/symtable.pythas_childrenVscCst|jjttB@�S(s"Return true if the scope uses exec(RER0RFRR(R"((s /usr/lib64/python2.7/symtable.pythas_execYscCst|jjt@�S(s&Return true if the scope uses import *(RER0RFR(R"((s /usr/lib64/python2.7/symtable.pythas_import_star]scCs|jjj�S(N(R0tsymbolstkeys(R"((s /usr/lib64/python2.7/symtable.pytget_identifiersascCsa|jj|�}|dkr]|jj|}|j|�}t|||�}|j|<n|S(N(R2R)R*R0RNt_SymbolTable__check_childrenR(R"Rtsymtflagst
namespaces((s /usr/lib64/python2.7/symtable.pytlookupds cCs&g|j�D]}|j|�^q
S(N(RPRU(R"tident((s /usr/lib64/python2.7/symtable.pytget_symbolslscCs8g|jjD]'}|j|kr
t||j�^q
S(N(R0RJRRR1(R"Rtst((s /usr/lib64/python2.7/symtable.pyt__check_childrenoscCs)g|jjD]}t||j�^q
S(N(R0RJRR1(R"RX((s /usr/lib64/python2.7/symtable.pytget_childrents(R.R/R#R9R?RARBRDRGRIRKRLRMRPRURWRQRZ(((s /usr/lib64/python2.7/symtable.pyR(s 		
	
												cBsMeZdZdZdZdZd�Zd�Zd�Z	d�Z
d�ZRS(cCs9tg|j�D]"}||jj|�r|^q�S(N(ttupleRPR0RN(R"t	test_funcRV((s /usr/lib64/python2.7/symtable.pyt__idents_matching�scCs.|jdkr'|jd��|_n|jS(NcSs|t@S(N(R(tx((s /usr/lib64/python2.7/symtable.pyt<lambda>�s(t_Function__paramsR*t_Function__idents_matching(R"((s /usr/lib64/python2.7/symtable.pytget_parameters�scsF|jdkr?ttf��fd�}|j|�|_n|jS(Ncs|t?t@�kS(N(R	R
(R^(tlocs(s /usr/lib64/python2.7/symtable.pyR_�s(t_Function__localsR*RRRa(R"ttest((Rcs /usr/lib64/python2.7/symtable.pyt
get_locals�s
csF|jdkr?ttf��fd�}|j|�|_n|jS(Ncs|t?t@�kS(N(R	R
(R^(tglob(s /usr/lib64/python2.7/symtable.pyR_�s(t_Function__globalsR*RR
Ra(R"Re((Rgs /usr/lib64/python2.7/symtable.pytget_globals�s
cCs4|jdkr-d�}|j|�|_n|jS(NcSs|t?t@tkS(N(R	R
R(R^((s /usr/lib64/python2.7/symtable.pyR_�s(t_Function__freesR*Ra(R"tis_free((s /usr/lib64/python2.7/symtable.pyt	get_frees�s	N(R.R/R*R`RdRjRhRaRbRfRiRl(((s /usr/lib64/python2.7/symtable.pyRys				cBseZdZd�ZRS(cCsR|jdkrKi}x!|jjD]}d||j<q"Wt|�|_n|jS(Ni(t_Class__methodsR*R0RJRR[(R"tdRX((s /usr/lib64/python2.7/symtable.pytget_methods�sN(R.R/R*RmRo(((s /usr/lib64/python2.7/symtable.pyR�scBs�eZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�ZRS(cCs6||_||_|t?t@|_|p,d|_dS(N((t
_Symbol__namet_Symbol__flagsR	R
t_Symbol__scopet_Symbol__namespaces(R"RRSRT((s /usr/lib64/python2.7/symtable.pyR#�s		cCsdj|j�S(Ns<symbol {0!r}>(R7Rp(R"((s /usr/lib64/python2.7/symtable.pyR9�scCs|jS(N(Rp(R"((s /usr/lib64/python2.7/symtable.pyRB�scCst|jtj@�S(N(RERqRR(R"((s /usr/lib64/python2.7/symtable.pyt
is_referenced�scCst|jt@�S(N(RERqR(R"((s /usr/lib64/python2.7/symtable.pytis_parameter�scCst|jttfk�S(N(RERrRR
(R"((s /usr/lib64/python2.7/symtable.pyt	is_global�scCst|jtk�S(N(RERrR
(R"((s /usr/lib64/python2.7/symtable.pytis_declared_global�scCst|jt@�S(N(RERqR(R"((s /usr/lib64/python2.7/symtable.pytis_local�scCst|jtk�S(N(RERrR(R"((s /usr/lib64/python2.7/symtable.pyRk�scCst|jt@�S(N(RERqR(R"((s /usr/lib64/python2.7/symtable.pytis_imported�scCst|jt@�S(N(RERqR(R"((s /usr/lib64/python2.7/symtable.pytis_assigned�scCs
t|j�S(s�Returns true if name binding introduces new namespace.

        If the name is used as the target of a function or class
        statement, this will be true.

        Note that a single name can be bound to multiple objects.  If
        is_namespace() is true, the name may also be bound to other
        objects, like an int or list, that does not introduce a new
        namespace.
        (RERs(R"((s /usr/lib64/python2.7/symtable.pytis_namespace�scCs|jS(s.Return a list of namespaces bound to this name(Rs(R"((s /usr/lib64/python2.7/symtable.pytget_namespaces�scCs,t|j�dkr!td�n|jdS(s�Returns the single namespace bound to this name.

        Raises ValueError if the name is bound to multiple namespaces.
        is$name is bound to multiple namespacesi(tlenRst
ValueError(R"((s /usr/lib64/python2.7/symtable.pyt
get_namespace�sN(R.R/R*R#R9RBRtRuRvRwRxRkRyRzR{R|R(((s /usr/lib64/python2.7/symtable.pyR�s											
	t__main__iitexec((,t__doc__RRRRRRRRRRR	R
RRR
RRRt__all__RRRtobjectRRRRR.tostsystopentargvtreadtsrctpathtsplittmodRPRVRUtinfoRxR{(((s /usr/lib64/python2.7/symtable.pyt<module>s$j		Q&
@)