/usr/lib64/python3.9/lib2to3/__pycache__
NameSizeModeActions
btm_matcher.cpython-39.opt-1.pyc48770644editdlrm
btm_matcher.cpython-39.opt-2.pyc33060644editdlrm
btm_matcher.cpython-39.pyc48770644editdlrm
btm_utils.cpython-39.opt-1.pyc61480644editdlrm
btm_utils.cpython-39.opt-2.pyc46360644editdlrm
btm_utils.cpython-39.pyc61480644editdlrm
fixer_base.cpython-39.opt-1.pyc62550644editdlrm
fixer_base.cpython-39.opt-2.pyc35040644editdlrm
fixer_base.cpython-39.pyc62550644editdlrm
fixer_util.cpython-39.opt-1.pyc121700644editdlrm
fixer_util.cpython-39.opt-2.pyc100070644editdlrm
fixer_util.cpython-39.pyc121700644editdlrm
main.cpython-39.opt-1.pyc86710644editdlrm
main.cpython-39.opt-2.pyc69180644editdlrm
main.cpython-39.pyc86890644editdlrm
patcomp.cpython-39.opt-1.pyc53890644editdlrm
patcomp.cpython-39.opt-2.pyc48810644editdlrm
patcomp.cpython-39.pyc56050644editdlrm
pygram.cpython-39.opt-1.pyc12620644editdlrm
pygram.cpython-39.opt-2.pyc10570644editdlrm
pygram.cpython-39.pyc12620644editdlrm
pytree.cpython-39.opt-1.pyc236720644editdlrm
pytree.cpython-39.opt-2.pyc149690644editdlrm
pytree.cpython-39.pyc242950644editdlrm
refactor.cpython-39.opt-1.pyc206130644editdlrm
refactor.cpython-39.opt-2.pyc165670644editdlrm
refactor.cpython-39.pyc206430644editdlrm
__init__.cpython-39.opt-1.pyc3020644editdlrm
__init__.cpython-39.opt-2.pyc3020644editdlrm
__init__.cpython-39.pyc3020644editdlrm
__main__.cpython-39.opt-1.pyc2150644editdlrm
__main__.cpython-39.opt-2.pyc2150644editdlrm
__main__.cpython-39.pyc2150644editdlrm
Edit: /usr/lib64/python3.9/lib2to3/__pycache__/fixer_util.cpython-39.opt-1.pyc (12170B)
a ´if;ã@s�dZddlmZddlmZmZddlmZddl m Z dd„Z dd „Z d d „Z d d „ZdNdd„Zdd„Zdd„Zdd„Ze ƒe ƒfdd„ZdOdd„Zdd„Zdd„ZdPdd „Zd!d"„ZdQd#d$„ZdRd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zhd1£Z d2d3„Z!d4a"d5a#d6a$d7a%d8d9„Z&d:d;„Z'dd?„Z)d@dA„Z*dBdC„Z+dDdE„Z,dFdG„Z-ej.ej/hZ0dSdHdI„Z1ej/ej.ej2hZ3dJdK„Z4dTdLdM„Z5dS)Uz1Utility functions, node construction macros, etc.é)Útoken)ÚLeafÚNode)Úpython_symbols)ÚpatcompcCsttj|ttjdƒ|gƒS)Nú=)rÚsymsÚargumentrrÚEQUAL)ÚkeywordÚvalue©r ú*/usr/lib64/python3.9/lib2to3/fixer_util.pyÚ KeywordArgsÿrcCs ttjdƒS)Nú()rrÚLPARr r r rÚLParensrcCs ttjdƒS)Nú))rrÚRPARr r r rÚRParensrcCsHt|tƒs|g}t|tƒs&d|_|g}ttj|ttjddd�g|ƒS)zBuild an assignment statementú r©Úprefix) Ú isinstanceÚlistrrrÚatomrrr )ÚtargetÚsourcer r rÚAssigns  ÿrNcCsttj||d�S)zReturn a NAME leafr)rrÚNAME)Únamerr r rÚName$sr!cCs|ttjtƒ|gƒgS)zA node tuple for obj.attr)rrÚtrailerÚDot)ÚobjÚattrr r rÚAttr(sr&cCs ttjdƒS)z A comma leafú,)rrÚCOMMAr r r rÚComma,sr)cCs ttjdƒS)zA period (.) leafÚ.)rrÚDOTr r r rr#0sr#cCs4ttj| ¡| ¡gƒ}|r0| dttj|ƒ¡|S)z-A parenthesised argument list, used by Call()r)rrr"ÚcloneÚ insert_childÚarglist)ÚargsZlparenZrparenÚnoder r rÚArgList4sr1cCs&ttj|t|ƒgƒ}|dur"||_|S)zA function callN)rrÚpowerr1r)Ú func_namer/rr0r r rÚCall;sr4cCs ttjdƒS)zA newline literalÚ ©rrÚNEWLINEr r r rÚNewlineBsr8cCs ttjdƒS)z A blank lineÚr6r r r rÚ BlankLineFsr:cCsttj||d�S)Nr)rrÚNUMBER)Únrr r rÚNumberJsr=cCs"ttjttjdƒ|ttjdƒgƒS)zA numeric or string subscriptú[ú])rrr"rrÚLBRACEÚRBRACE)Z index_noder r rÚ SubscriptMs þrBcCsttj||d�S)z A string leafr)rrÚSTRING)Ústringrr r rÚStringSsrEc Cs®d|_d|_d|_ttjdƒ}d|_ttjdƒ}d|_||||g}|rtd|_ttjdƒ}d|_| ttj||gƒ¡ttj|ttj |ƒgƒ}ttj ttj dƒ|ttj dƒgƒS)zuA list comprehension of the form [xp for fp in it if test]. If test is None, the "if test" part is omitted. r9rÚforÚinÚifr>r?) rrrrÚappendrrZcomp_ifZ listmakerZcomp_forrr@rA) ZxpÚfpÚitÚtestZfor_leafZin_leafZ inner_argsZif_leafÚinnerr r rÚListCompWs(      þÿrNcCsV|D] }| ¡qttjdƒttj|dd�ttjddd�ttj|ƒg}ttj|ƒ}|S)zO Return an import statement in the form: from package import name_leafsÚfromrrÚimport)ÚremoverrrrrÚimport_as_namesÚ import_from)Z package_nameZ name_leafsZleafÚchildrenÚimpr r rÚ FromImportos   ý rVc Cs¤|d ¡}|jtjkr"| ¡}nttj| ¡gƒ}|d}|rNdd„|Dƒ}ttjtt|dƒt|dƒƒttj|d ¡||d ¡gƒg|ƒ}|j |_ |S) zfReturns an import statement and calls a method of the module: import module module.name()r$ÚaftercSsg|] }| ¡‘qSr )r,)Ú.0r<r r rÚ �óz!ImportAndCall..érZlparZrpar) r,Útyperr.rr2r&r!r"r)r0ÚresultsÚnamesr$Z newarglistrWÚnewr r rÚ ImportAndCall‚s*     þÿÿüÿr`cCsˆt|tƒr |jtƒtƒgkr dSt|tƒo†t|jƒdko†t|jdtƒo†t|jdtƒo†t|jdtƒo†|jdjdko†|jdjdkS)z(Does the node represent a tuple literal?Tér[rérr)rrrTrrÚlenrr ©r0r r rÚis_tupležs  ÿþýüûúrecCsXt|tƒoVt|jƒdkoVt|jdtƒoVt|jdtƒoV|jdjdkoV|jdjdkS)z'Does the node represent a list literal?rr[éÿÿÿÿr>r?)rrrcrTrr rdr r rÚis_listªs  ÿþýüûrgcCsttjtƒ|tƒgƒS©N)rrrrrrdr r rÚ parenthesize¸sri> ÚsortedÚsumÚanyrÚsetÚtupleÚallÚminÚ enumerateÚmaxccs$t||ƒ}|r |Vt||ƒ}q dS)alFollow 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)Úgetattr)r$r%Únextr r rÚ attr_chain¿s ruzefor_stmt< 'for' any 'in' node=any ':' any* > | comp_for< 'for' any 'in' node=any any* > z³ power< ( 'iter' | 'list' | 'tuple' | 'sorted' | 'set' | 'sum' | 'any' | 'all' | 'enumerate' | (any* trailer< '.' 'join' >) ) trailer< '(' node=any ')' > any* > z` power< ( 'sorted' | 'enumerate' ) trailer< '(' arglist ')' > any* > FcCspts&t t¡at t¡at t¡adatttg}t|t|dƒƒD]*\}}i}| ||¡r@|d|ur@dSq@dS)a Returns true if node is in an environment where all that is required of it is being iterable (ie, it doesn't matter if it returns a list or an iterator). See test_map_nochange in test_fixers.py for some examples and tests. TÚparentr0F) Ú pats_builtrÚcompile_patternÚp0Úp1Úp2ÚzipruÚmatch)r0ÚpatternsÚpatternrvr]r r rÚin_special_contextås    r€cCsš|j}|dur|jtjkrdS|j}|jtjtjfvr:dS|jtjkrX|j d|urXdS|jtj ks’|jtj kr–|dur„|jtj ks’|j d|ur–dSdS)zG Check that something isn't an attribute or function name etc. NFr[T) Z prev_siblingr\rr+rvrÚfuncdefÚclassdefÚ expr_stmtrTÚ parametersZ typedargslistr()r0Úprevrvr r rÚis_probably_builtinøs&  ÿþ þ ýr†cCsJ|durF|jtjkr>t|jƒdkr>|jd}|jtjkr>|jS|j}qdS)zFind the indentation of *node*.Nrbrr9) r\rÚsuitercrTrÚINDENTr rv)r0Úindentr r rÚfind_indentations  rŠcCs>|jtjkr|S| ¡}|jd}|_ttj|gƒ}||_|Srh)r\rr‡r,rvr)r0rvr‡r r rÚ make_suites r‹cCs$|jtjkr |j}|stdƒ‚q|S)zFind the top level namespace.z,root found before file_input node was found.)r\rZ file_inputrvÚ ValueErrorrdr r rÚ find_root&s   r�cCst|t|ƒ|ƒ}t|ƒS)zÞ 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. )Ú find_bindingr�Úbool)Úpackager r0Zbindingr r rÚdoes_tree_import/sr‘cCs|jtjtjfvS)z0Returns true if the node is an import statement.)r\rÚ import_namerSrdr r rÚ is_import7sr“c Cs.dd„}t|ƒ}t|||ƒr dSd}}t|jƒD]F\}}||ƒsDq2t|j|d…ƒD]\}}||ƒsVqlqV||}qzq2|dkrÆt|jƒD]8\}}|jtjkrŒ|jrŒ|jdjtjkrŒ|d}qÆqŒ|durôt tj t tj dƒt tj |dd�gƒ} nt |t tj |dd�gƒ} | tƒg} | |t tj| ƒ¡dS) z\ Works like `does_tree_import` but adds an import statement if it was not imported. cSs |jtjko|jot|jdƒS)Nr[)r\rÚ simple_stmtrTr“rdr r rÚis_import_stmt>s ÿz$touch_import..is_import_stmtNr[rrPrr)r�r‘rqrTr\rr”rrCrr’rrrVr8r-) r�r r0r•ÚrootZ insert_posÚoffsetÚidxZnode2Úimport_rTr r rÚ touch_import;s8 ÿ þ ršcCs®|jD�] }d}|jtjkrVt||jdƒr4|St|t|jdƒ|ƒ}|rR|}�n0|jtjtjfvrŠt|t|jdƒ|ƒ}|r†|}�nü|jtj k�rt|t|jdƒ|ƒ}|r¸|}nTt |jdd…ƒD]@\}}|jt j krÊ|j dkrÊt|t|j|dƒ|ƒ}|rÊ|}qÊnx|jtv�r2|jdj |k�r2|}nTt|||ƒ�rF|}n@|jtjk�rbt|||ƒ}n$|jtjk�r†t||jdƒ�r†|}|r|�s˜|St|ƒr|SqdS) zº 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.Nrrfrbraú:ér[)rTr\rZfor_stmtÚ_findrŽr‹Zif_stmtZ while_stmtZtry_stmtrqrÚCOLONr Ú _def_symsÚ_is_import_bindingr”rƒr“)r r0r�ÚchildÚretr<ÚiZkidr r rrŽisB      rŽcCsT|g}|rP| ¡}|jdkr4|jtvr4| |j¡q|jtjkr|j|kr|SqdS)Né)Úpopr\Ú _block_symsÚextendrTrrr )r r0Znodesr r rr�”sr�cCs¢|jtjkrÆ|sÆ|jd}|jtjkrx|jD]H}|jtjkrV|jdj|krt|Sq,|jtjkr,|j|kr,|Sq,nL|jtjkrª|jd}|jtjkrÄ|j|krÄ|Sn|jtjkrÄ|j|krÄ|SnØ|jtj k�rž|ròt |jdƒ  ¡|kròdS|jd}|�rt d|ƒ�rdS|jtj k�r0t ||ƒ�r0|S|jtjk�rh|jd}|jtjk�rž|j|k�rž|Sn6|jtjk�r†|j|k�r†|S|�rž|jtjk�rž|SdS)zš Will return node if node will import name, or node will import * from package. None is returned otherwise. See test cases for examples. rrbrfNraÚas)r\rr’rTZdotted_as_namesZdotted_as_namer rrrSÚstrÚstripr�rRZimport_as_nameÚSTAR)r0r r�rUr¡Úlastr<r r rr žs@          r )N)NN)N)N)N)N)N)6Ú__doc__Zpgen2rZpytreerrZpygramrrr9rrrrrr!r&r)r#r1r4r8r:r=rBrErNrVr`rergriZconsuming_callsruryrzr{rwr€r†rŠr‹r�r‘r“ršr‚r�rŸrŽr"r¦r�r r r r rÚsX           -  *