Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/
Upload File :
Current File : //usr/lib/python2.7/symtable.pyc


|_c@sdZddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddlZdddddgZd	Zd
ddYZeZdefdYZdefd
YZdefdYZdefdYZedkrddlZddlZeej dj!Z"ee"ej#j$ej dddZ%x?e%j&D].Z'e%j(e'Z)e)Ge)j*Ge)j+GHqWndS(s2Interface to the compiler's internal symbol tablesiN(tUSEt
DEF_GLOBALt	DEF_LOCALt	DEF_PARAMt
DEF_IMPORTt	DEF_BOUNDtOPT_IMPORT_STARtOPT_EXECt
OPT_BARE_EXECt	SCOPE_OFFt
SCOPE_MASKtFREEtGLOBAL_IMPLICITtGLOBAL_EXPLICITtCELLtLOCALtsymtabletSymbolTabletClasstFunctiontSymbolcCsLtj|||}x'|jD]}|jdkr"Pq"q"Wt||S(Nttop(t	_symtableRt
itervaluestnamet_newSymbolTable(tcodetfilenametcompile_typetrawR((s/usr/lib/python2.7/symtable.pyRs
tSymbolTableFactorycBs#eZdZdZdZRS(cCstj|_dS(N(tweakreftWeakValueDictionaryt_SymbolTableFactory__memo(tself((s/usr/lib/python2.7/symtable.pyt__init__scCsK|jtjkrt||S|jtjkr>t||St||S(N(ttypeRt
TYPE_FUNCTIONRt
TYPE_CLASSRR(R"ttableR((s/usr/lib/python2.7/symtable.pytnews


cCsQ||f}|jj|d}|dkrM|j||}|j|<n|S(N(R!tgettNoneR((R"R'Rtkeytobj((s/usr/lib/python2.7/symtable.pyt__call__s
 (t__name__t
__module__R#R(R-(((s/usr/lib/python2.7/symtable.pyRs		cBseZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZRS(cCs||_||_i|_dS(N(t_tablet	_filenamet_symbols(R"t	raw_tableR((s/usr/lib/python2.7/symtable.pyR#*s		cCsm|jtkrd}nd|jj}|jjdkrMdj||jSdj||jj|jSdS(Nts%s tglobals<{0}SymbolTable for module {1}>s<{0}SymbolTable for {1} in {2}>(t	__class__RR.R0RtformatR1(R"tkind((s/usr/lib/python2.7/symtable.pyt__repr__/s			cCs||jjtjkrdS|jjtjkr2dS|jjtjkrKdS|jjdksxtdj|jjdS(	Ntmoduletfunctiontclassiiisunexpected type: {0}(iii(R0R$RtTYPE_MODULER%R&tAssertionErrorR7(R"((s/usr/lib/python2.7/symtable.pytget_type<scCs
|jjS(N(R0tid(R"((s/usr/lib/python2.7/symtable.pytget_idFscCs
|jjS(N(R0R(R"((s/usr/lib/python2.7/symtable.pytget_nameIscCs
|jjS(N(R0tlineno(R"((s/usr/lib/python2.7/symtable.pyt
get_linenoLscCs&t|jjtjko"|jjS(N(tboolR0R$RR%t	optimized(R"((s/usr/lib/python2.7/symtable.pytis_optimizedOscCst|jjS(N(RER0tnested(R"((s/usr/lib/python2.7/symtable.pyt	is_nestedSscCst|jjS(N(RER0tchildren(R"((s/usr/lib/python2.7/symtable.pythas_childrenVscCst|jjttB@S(s"Return true if the scope uses exec(RER0RFRR(R"((s/usr/lib/python2.7/symtable.pythas_execYscCst|jjt@S(s&Return true if the scope uses import *(RER0RFR(R"((s/usr/lib/python2.7/symtable.pythas_import_star]scCs|jjjS(N(R0tsymbolstkeys(R"((s/usr/lib/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/lib/python2.7/symtable.pytlookupds cCs&g|jD]}|j|^q
S(N(RPRU(R"tident((s/usr/lib/python2.7/symtable.pytget_symbolslscCs8g|jjD]'}|j|kr
t||j^q
S(N(R0RJRRR1(R"Rtst((s/usr/lib/python2.7/symtable.pyt__check_childrenoscCs)g|jjD]}t||j^q
S(N(R0RJRR1(R"RX((s/usr/lib/python2.7/symtable.pytget_childrents(R.R/R#R9R?RARBRDRGRIRKRLRMRPRURWRQRZ(((s/usr/lib/python2.7/symtable.pyR(s 		
	
												cBsMeZdZdZdZdZdZdZdZ	dZ
dZRS(cCs9tg|jD]"}||jj|r|^qS(N(ttupleRPR0RN(R"t	test_funcRV((s/usr/lib/python2.7/symtable.pyt__idents_matchingscCs.|jdkr'|jd|_n|jS(NcSs|t@S(N(R(tx((s/usr/lib/python2.7/symtable.pyt<lambda>s(t_Function__paramsR*t_Function__idents_matching(R"((s/usr/lib/python2.7/symtable.pytget_parametersscsF|jdkr?ttffd}|j||_n|jS(Ncs|t?t@kS(N(R	R
(R^(tlocs(s/usr/lib/python2.7/symtable.pyR_s(t_Function__localsR*RRRa(R"ttest((Rcs/usr/lib/python2.7/symtable.pyt
get_localss
csF|jdkr?ttffd}|j||_n|jS(Ncs|t?t@kS(N(R	R
(R^(tglob(s/usr/lib/python2.7/symtable.pyR_s(t_Function__globalsR*RR
Ra(R"Re((Rgs/usr/lib/python2.7/symtable.pytget_globalss
cCs4|jdkr-d}|j||_n|jS(NcSs|t?t@tkS(N(R	R
R(R^((s/usr/lib/python2.7/symtable.pyR_s(t_Function__freesR*Ra(R"tis_free((s/usr/lib/python2.7/symtable.pyt	get_freess	N(R.R/R*R`RdRjRhRaRbRfRiRl(((s/usr/lib/python2.7/symtable.pyRys				cBseZdZdZRS(cCsR|jdkrKi}x!|jjD]}d||j<q"Wt||_n|jS(Ni(t_Class__methodsR*R0RJRR[(R"tdRX((s/usr/lib/python2.7/symtable.pytget_methodssN(R.R/R*RmRo(((s/usr/lib/python2.7/symtable.pyRscBseZddZdZdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZRS(cCs6||_||_|t?t@|_|p,d|_dS(N((t
_Symbol__namet_Symbol__flagsR	R
t_Symbol__scopet_Symbol__namespaces(R"RRSRT((s/usr/lib/python2.7/symtable.pyR#s		cCsdj|jS(Ns<symbol {0!r}>(R7Rp(R"((s/usr/lib/python2.7/symtable.pyR9scCs|jS(N(Rp(R"((s/usr/lib/python2.7/symtable.pyRBscCst|jtj@S(N(RERqRR(R"((s/usr/lib/python2.7/symtable.pyt
is_referencedscCst|jt@S(N(RERqR(R"((s/usr/lib/python2.7/symtable.pytis_parameterscCst|jttfkS(N(RERrRR
(R"((s/usr/lib/python2.7/symtable.pyt	is_globalscCst|jtkS(N(RERrR
(R"((s/usr/lib/python2.7/symtable.pytis_declared_globalscCst|jt@S(N(RERqR(R"((s/usr/lib/python2.7/symtable.pytis_localscCst|jtkS(N(RERrR(R"((s/usr/lib/python2.7/symtable.pyRkscCst|jt@S(N(RERqR(R"((s/usr/lib/python2.7/symtable.pytis_importedscCst|jt@S(N(RERqR(R"((s/usr/lib/python2.7/symtable.pytis_assignedscCs
t|jS(sReturns 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/lib/python2.7/symtable.pytis_namespacescCs|jS(s.Return a list of namespaces bound to this name(Rs(R"((s/usr/lib/python2.7/symtable.pytget_namespacesscCs,t|jdkr!tdn|jdS(sReturns 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/lib/python2.7/symtable.pyt
get_namespacesN(R.R/R*R#R9RBRtRuRvRwRxRkRyRzR{R|R(((s/usr/lib/python2.7/symtable.pyRs											
	t__main__iitexec((,t__doc__RRRRRRRRRRR	R
RRR
RRRt__all__RRRtobjectRRRRR.tostsystopentargvtreadtsrctpathtsplittmodRPRVRUtinfoRxR{(((s/usr/lib/python2.7/symtable.pyt<module>s$j		Q&
@)