o ?Og"@sR ddlZddlmZddlmZddlmZGdddeZGdd d eZ dS) N)PatternCompiler)pygram)does_tree_importc@seZdZ dZdZdZdZdZe dZ e Z dZ dZdZdZdZdZejZddZdd Zd d Zd d ZddZdddZddZdddZddZddZddZ dS)BaseFixNrZpostFcCs ||_||_|dSN)optionslogcompile_pattern)selfr r r 9/opt/alt/python310/lib64/python3.10/lib2to3/fixer_base.py__init__/s zBaseFix.__init__cCs2 |jdurt}|j|jdd\|_|_dSdS)NT)Z with_tree)PATTERNrr pattern pattern_tree)r ZPCr r rr ;s zBaseFix.compile_patterncCs ||_dSr)filename)r rr r r set_filenameFs zBaseFix.set_filenamecCs d|i}|j||o |S)Nnode)rmatchr rZresultsr r rrMsz BaseFix.matchcCs tr)NotImplementedErrorrr r r transformYs zBaseFix.transformxxx_todo_changemecCs< |}||jvr|tt|j}||jvs|j||Sr) used_namesstrnextnumbersadd)r templatenamer r rnew_nameis  zBaseFix.new_namecCs.|jrd|_|jd|j|j|dS)NFz### In file %s ###) first_logr appendr)r messager r r log_messagetszBaseFix.log_messagecCsD |}|}d|_d}||||f|r ||dSdS)NzLine %d: could not convert: %s) get_linenoZcloneprefixr&)r rreasonlinenoZ for_outputmsgr r rcannot_convertzszBaseFix.cannot_convertcCs |}|d||fdS)Nz Line %d: %s)r(r&)r rr*r+r r rwarningszBaseFix.warningcCs* |j|_||td|_d|_dS)NrT)rr itertoolscountrr#r Ztreerr r r start_trees    zBaseFix.start_treecCs dSrr r1r r r finish_treeszBaseFix.finish_tree)rr)!__name__ __module__ __qualname__rrrr rr/r0rsetrZorderZexplicitZ run_orderZ _accept_typeZkeep_line_orderZ BM_compatiblerZpython_symbolsZsymsrr rrrr"r&r-r.r2r3r r r rrs6      rcs*eZdZ dZfddZddZZS)ConditionalFixNcstt|j|d|_dSr)superr8r2 _should_skip)r args __class__r rr2s zConditionalFix.start_treecCsJ|jdur|jS|jd}|d}d|dd}t||||_|jS)N.)r:skip_onsplitjoinr)r rZpkgr!r r r should_skips  zConditionalFix.should_skip)r4r5r6r@r2rC __classcell__r r r<rr8s  r8) r/Zpatcomprr'rZ fixer_utilrobjectrr8r r r rs