й¼]"ã@slddlZddlmZddlmZddlmZGdd„deƒZGdd „d eƒZ dS) éNé)ÚPatternCompiler)Úpygram)Údoes_tree_importc@sýeZdZdZdZdZdZdZej dƒZ e ƒZ dZ dZdZdZdZdZejZdd„Zdd „Zd d „Zd d „Zdd„Zddd„Zdd„Zddd„Zdd„Zdd„Zdd„Z dS)ÚBaseFixNrZpostFécCs ||_||_|jƒdS)N)ÚoptionsÚlogÚcompile_pattern)Úselfrr ©r ú//opt/alt/python35/lib64/python3.5/fixer_base.pyÚ__init__/s  zBaseFix.__init__cCs@|jdk r<tƒ}|j|jddƒ\|_|_dS)NZ with_treeT)ÚPATTERNrr ÚpatternÚ pattern_tree)r ÚPCr r r r ;s zBaseFix.compile_patterncCs ||_dS)N)Úfilename)r rr r r Ú set_filenameFszBaseFix.set_filenamecCs%d|i}|jj||ƒo$|S)NÚnode)rÚmatch)r rÚresultsr r r rMs z BaseFix.matchcCs tƒ‚dS)N)ÚNotImplementedError)r rrr r r Ú transformYszBaseFix.transformZxxx_todo_changemecCsI|}x,||jkr4|tt|jƒƒ}q W|jj|ƒ|S)N)Ú used_namesÚstrÚnextÚnumbersÚadd)r ÚtemplateÚnamer r r Únew_nameis zBaseFix.new_namecCs=|jr)d|_|jjd|jƒ|jj|ƒdS)NFz### In file %s ###)Ú first_logr Úappendr)r Úmessager r r Ú log_messagets  zBaseFix.log_messagecCsU|jƒ}|jƒ}d|_d}|j|||fƒ|rQ|j|ƒdS)NÚzLine %d: could not convert: %s)Ú get_linenoZcloneÚprefixr%)r rÚreasonÚlinenoZ for_outputÚmsgr r r Úcannot_convertzs   zBaseFix.cannot_convertcCs'|jƒ}|jd||fƒdS)Nz Line %d: %s)r'r%)r rr)r*r r r Úwarning‰s zBaseFix.warningcCs8|j|_|j|ƒtjdƒ|_d|_dS)NrT)rrÚ itertoolsÚcountrr")r Útreerr r r Ú start_tree“s  zBaseFix.start_treecCsdS)Nr )r r0rr r r Ú finish_treeŸszBaseFix.finish_tree)!Ú__name__Ú __module__Ú __qualname__rrrrrr.r/rÚsetrÚorderZexplicitZ run_orderZ _accept_typeZkeep_line_orderZ BM_compatiblerZpython_symbolsZsymsrr rrrr!r%r,r-r1r2r r r r rs2       rcs4eZdZdZ‡fdd†Zdd„Z‡S)ÚConditionalFixNcs#tt|ƒj|Œd|_dS)N)Úsuperr8r1Ú _should_skip)r Úargs)Ú __class__r r r1¯szConditionalFix.start_treecCsg|jdk r|jS|jjdƒ}|d}dj|dd…ƒ}t|||ƒ|_|jS)NÚ.réÿÿÿÿr>)r:Úskip_onÚsplitÚjoinr)r rZpkgr r r r Ú should_skip³s zConditionalFix.should_skip)r3r4r5r?r1rBr r )r<r r8©s r8) r.Zpatcomprr&rZ fixer_utilrÚobjectrr8r r r r Ús ›