ACC SHELL

Path : /usr/lib/python/lib2to3/
File Upload :
Current File : //usr/lib/python/lib2to3/fixer_util.pyc

Ñò
sÄMc@sdZddklZddklZlZddklZddk	l
Z
d„Zd„Zd„Z
d	„Zd1d
„Zd„Zd„Zd
„Zeƒe
ƒd„Zd1d1d„Zd„Zd„Zd1d„Zd„Zd1d„Zd1d„Zd„Zd„Zd„Zd„Ze ddddddd d!d"g	ƒZ!d#„Z"d$a#d%a$d&a%e&a'd'„Z(d(„Z)d)„Z*d*„Z+d+„Z,d,„Z-d-„Z.e ei/ei0gƒZ1d1d.„Z2e ei0ei/ei3gƒZ4d/„Z5d1d0„Z6d1S(2s1Utility functions, node construction macros, etc.i(ttoken(tLeaftNode(tpython_symbols(tpatcompcCs%tti|ttidƒ|gƒS(Nu=(RtsymstargumentRRtEQUAL(tkeywordtvalue((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt
KeywordArgs	cCsttidƒS(Nu((RRtLPAR(((s(/usr/lib/python2.6/lib2to3/fixer_util.pytLParenscCsttidƒS(Nu)(RRtRPAR(((s(/usr/lib/python2.6/lib2to3/fixer_util.pytRParenscCspt|tƒp
|g}nt|tƒpd|_|g}ntti|ttidddƒg|ƒS(sBuild an assignment statementu u=tprefix(	t
isinstancetlistRRRtatomRRR(ttargettsource((s(/usr/lib/python2.6/lib2to3/fixer_util.pytAssigns
	
	cCstti|d|ƒS(sReturn a NAME leafR(RRtNAME(tnameR((s(/usr/lib/python2.6/lib2to3/fixer_util.pytName$scCs|ttitƒ|gƒgS(sA node tuple for obj.attr(RRttrailertDot(tobjtattr((s(/usr/lib/python2.6/lib2to3/fixer_util.pytAttr(scCsttidƒS(sA comma leafu,(RRtCOMMA(((s(/usr/lib/python2.6/lib2to3/fixer_util.pytComma,scCsttidƒS(sA period (.) leafu.(RRtDOT(((s(/usr/lib/python2.6/lib2to3/fixer_util.pyR0scCsOtti|iƒ|iƒgƒ}|o |idtti|ƒƒn|S(s-A parenthesised argument list, used by Call()i(RRRtclonetinsert_childtarglist(targstlparentrparentnode((s(/usr/lib/python2.6/lib2to3/fixer_util.pytArgList4s$ cCs<tti|t|ƒgƒ}|dj	o
||_n|S(sA function callN(RRtpowerR(tNoneR(t	func_nameR$RR'((s(/usr/lib/python2.6/lib2to3/fixer_util.pytCall;s

cCsttidƒS(sA newline literalu
(RRtNEWLINE(((s(/usr/lib/python2.6/lib2to3/fixer_util.pytNewlineBscCsttidƒS(sA blank lineu(RRR-(((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt	BlankLineFscCstti|d|ƒS(NR(RRtNUMBER(tnR((s(/usr/lib/python2.6/lib2to3/fixer_util.pytNumberJscCs1ttittidƒ|ttidƒgƒS(sA numeric or string subscriptu[u](RRRRRtLBRACEtRBRACE(t
index_node((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt	SubscriptMscCstti|d|ƒS(s
A string leafR(RRtSTRING(tstringR((s(/usr/lib/python2.6/lib2to3/fixer_util.pytStringSsc	Csd|_d|_d|_ttidƒ}d|_ttidƒ}d|_||||g}|oGd|_ttidƒ}d|_|itti||gƒƒntti|tti	|ƒgƒ}tti
ttidƒ|ttidƒgƒS(suA list comprehension of the form [xp for fp in it if test].

    If test is None, the "if test" part is omitted.
    uu uforuinuifu[u](
RRRRtappendRRtcomp_ift	listmakertcomp_forRR3R4(	txptfptitttesttfor_leaftin_leaft
inner_argstif_leaftinner((s(/usr/lib/python2.6/lib2to3/fixer_util.pytListCompWs$							#$	c	Csx|D]}|iƒqWttidƒtti|ddƒttidddƒtti|ƒg}tti|ƒ}|S(sO Return an import statement in the form:
        from package import name_leafsufromRu uimport(tremoveRRRRRtimport_as_namestimport_from(tpackage_namet
name_leafstleaftchildrentimp((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt
FromImportoscCsÇt|tƒo!|itƒtƒgjotSt|tƒo†t|iƒdjopt|idtƒoYt|idtƒoBt|idtƒo+|ididjo|ididjS(s(Does the node represent a tuple literal?iiiiu(u)(	RRRNRRtTruetlenRR	(R'((s(/usr/lib/python2.6/lib2to3/fixer_util.pytis_tuple‡s,cCst|tƒoot|iƒdjoYt|idtƒoBt|idtƒo+|ididjo|ididjS(s'Does the node represent a list literal?iiiÿÿÿÿu[u](RRRRRNRR	(R'((s(/usr/lib/python2.6/lib2to3/fixer_util.pytis_list“scCsttitƒ|tƒgƒS(N(RRRRR(R'((s(/usr/lib/python2.6/lib2to3/fixer_util.pytparenthesize¡stsortedRtsettanytallttupletsumtmintmaxccs6t||ƒ}x |o|Vt||ƒ}qWdS(slFollow an attribute chain.

    If you have a chain of objects where a.foo -> b, b.foo-> c, etc,
    use this to iterate over all objects in the chain. Iteration is
    terminated by getattr(x, attr) is None.

    Args:
        obj: the starting object
        attr: the name of the chaining attribute

    Yields:
        Each successive object in the chain.
    N(tgetattr(RRtnext((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt
attr_chain¨s
sefor_stmt< 'for' any 'in' node=any ':' any* >
        | comp_for< 'for' any 'in' node=any any* >
     s¥
power<
    ( 'iter' | 'list' | 'tuple' | 'sorted' | 'set' | 'sum' |
      'any' | 'all' | (any* trailer< '.' 'join' >) )
    trailer< '(' node=any ')' >
    any*
>
sN
power<
    'sorted'
    trailer< '(' arglist<node=any any*> ')' >
    any*
>
cCs©tp7titƒatitƒatitƒatantttg}xUt|t|dƒƒD];\}}h}|i	||ƒo|d|jotSqfWt
S(s Returns true if node is in an environment where all that is required
        of it is being itterable (ie, it doesn't matter if it returns a list
        or an itterator).
        See test_map_nochange in test_fixers.py for some examples and tests.
        tparentR'(t
pats_builtRtcompile_patterntp1tp0tp2RQtzipR`tmatchtFalse(R'tpatternstpatternRatresults((s(/usr/lib/python2.6/lib2to3/fixer_util.pytin_special_contextÎs
$	cCsç|i}|dj	o|itijotS|i}|ititi	fjotS|iti
jo|id|jotS|itijpG|iti
jo9|dj	o|itijp|id|jotStS(sG
    Check that something isn't an attribute or function name etc.
    iN(tprev_siblingR*ttypeRR RiRaRtfuncdeftclassdeft	expr_stmtRNt
parameterst
typedargslistRRQ(R'tprevRa((s(/usr/lib/python2.6/lib2to3/fixer_util.pytis_probably_builtinás	 	' cCsY|itijo|S|iƒ}|id}|_tti|gƒ}||_|S(N(RoRtsuiteR!RaR*R(R'RaRw((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt
make_suiteüs	cCs<x5|itijo!|ip
td‚|i}qW|S(sFind the top level namespace.s<Tree is insane! root found before file_input node was found.(RoRt
file_inputRatAssertionError(R'((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt	find_roots
cCs"t|t|ƒ|ƒ}t|ƒS(sÞ Returns true if name is imported from package at the
        top level of the tree which node belongs to.
        To cover the case of an import like 'import foo', use
        None for the package and 'foo' for the name. (tfind_bindingR{tbool(tpackageRR'tbinding((s(/usr/lib/python2.6/lib2to3/fixer_util.pytdoes_tree_importscCs|ititifjS(s0Returns true if the node is an import statement.(RoRtimport_nameRJ(R'((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt	is_importscCs½d„}t|ƒ}t|||ƒodSd}}xrt|iƒD]a\}}||ƒpqGnx3t|i|ƒD]\}}||ƒpPq{q{W||}PqGW|djojxgt|iƒD]R\}}|itijo3|io)|iditijo|d}PqÉqÉWn|djo:t
titti
dƒtti
|ddƒgƒ}	n%t|tti
|ddƒgƒ}	|	tƒg}
|i|t
ti|
ƒƒdS(s\ Works like `does_tree_import` but adds an import statement
        if it was not imported. cSs.|itijo|iot|idƒS(Ni(RoRtsimple_stmtRNR‚(R'((s(/usr/lib/python2.6/lib2to3/fixer_util.pytis_import_stmtsNiiuimportRu (R{R€t	enumerateRNRoRRƒRR7R*RRRRRPR.R"(R~RR'R„troott
insert_postoffsettidxtnode2timport_RN((s(/usr/lib/python2.6/lib2to3/fixer_util.pyttouch_imports:	


	




	"$c	Csoxh|iD]]}d}|itijoPt||idƒo|St|t|idƒ|ƒ}|o
|}q>nÆ|ititi	fjo4t|t|idƒ|ƒ}|o
|}q>nv|iti
jo³t|t|idƒ|ƒ}|o
|}q>x/t|idƒD]g\}}|iti
joH|idjo8t|t|i|dƒ|ƒ}|o
|}q‡q q Wn°|itjo!|idi|jo
|}nt|||ƒo
|}nb|itijot|||ƒ}n9|itijo%t||idƒo
|}q>n|o"|p|St|ƒo|Sq
q
WdS(	sº Returns the node which binds variable name, otherwise None.
        If optional argument package is supplied, only imports will
        be returned.
        See test cases for examples.iiÿÿÿÿiit:iiN(RNR*RoRtfor_stmtt_findR|Rxtif_stmtt
while_stmtttry_stmtR…RtCOLONR	t	_def_symst_is_import_bindingRƒRrR‚(RR'R~tchildtretR1titkid((s(/usr/lib/python2.6/lib2to3/fixer_util.pyR|HsL

##'



cCs„|g}xt|ol|iƒ}|idjo$|itjo|i|iƒq|itijo|i|jo|SqWdS(Ni(	tpopRot_block_symstextendRNRRR	R*(RR'tnodes((s(/usr/lib/python2.6/lib2to3/fixer_util.pyRss	 #
cCsQ|itijo|o|id}|itijosxä|iD]a}|itijo |idi|jo|SqE|itijo|i|jo|SqEWqM|itijo9|id}|itijo|i|jo|SqM|itijo|i|jo|Sn(|iti	jo|o%t
|idƒiƒ|jodS|id}|ot
d|ƒodS|itijot
||ƒo|S|itijo9|id}|itijo|i|jo|SqM|itijo|i|jo|S|o|itijo|SndS(s› Will reuturn node if node will import name, or node
        will import * from package.  None is returned otherwise.
        See test cases for examples. iiiÿÿÿÿiuasN(RoRRRNtdotted_as_namestdotted_as_nameR	RRRJtunicodetstripR*RRItimport_as_nametSTAR(R'RR~ROR–tlastR1((s(/usr/lib/python2.6/lib2to3/fixer_util.pyR•}sB

	#

#	#	'
#
#	#	N(7t__doc__tpgen2RtpytreeRRtpygramRRtRR
RRRR*RRRRR(R,R.R/R2R6R9RGRPRSRTRURWtconsuming_callsR`ReRdRfRiRbRmRvRxR{R€R‚RŒRqRpR”R|RR›RR•(((s(/usr/lib/python2.6/lib2to3/fixer_util.pyt<module>sV																								-*	

ACC SHELL 2018