B <$tt @ sP d dl Z ddlmZ ddlmZ ddlmZ G dd deZG dd d eZ dS ) N )PatternCompiler)pygram)does_tree_importc @ s e Zd ZdZdZdZdZdZe dZ e ZdZ dZdZdZdZdZejZdd Zdd Zd d Zdd Zdd ZdddZdd ZdddZdd Zdd Zdd Z dS )BaseFixNr ZpostF c C s || _ || _| d S )N)optionslogcompile_pattern)selfr r r 7/opt/alt/python37/lib64/python3.7/lib2to3/fixer_base.py__init__/ s zBaseFix.__init__c C s, | j d k r(t }|j| j dd\| _| _d S )NT)Z with_tree)PATTERNr r patternpattern_tree)r ZPCr r r r ; s zBaseFix.compile_patternc C s || _ d S )N)filename)r r r r r set_filenameF s zBaseFix.set_filenamec C s d|i}| j ||o|S )Nnode)r match)r r resultsr r r r M s z BaseFix.matchc C s t d S )N)NotImplementedError)r r r r r r transformY s zBaseFix.transformxxx_todo_changemec C s6 |}x || j kr$|tt| j }qW | j | |S )N) used_namesstrnextnumbersadd)r templatenamer r r new_namei s zBaseFix.new_namec C s. | j rd| _ | jd| j | j| d S )NFz### In file %s ###) first_logr appendr )r messager r r log_messaget s zBaseFix.log_messagec C s> | }| }d|_d}| |||f |r:| | d S )N zLine %d: could not convert: %s) get_linenoZcloneprefixr% )r r reasonlinenoZ for_outputmsgr r r cannot_convertz s zBaseFix.cannot_convertc C s | }| d||f d S )NzLine %d: %s)r' r% )r r r) r* r r r warning s zBaseFix.warningc C s( |j | _ | | td| _d| _d S )Nr T)r r itertoolscountr r" )r treer r r r start_tree s zBaseFix.start_treec C s d S )Nr )r r0 r r r r finish_tree s zBaseFix.finish_tree)r )N)!__name__ __module____qualname__r r r r r r. r/ r setr orderZexplicitZ run_orderZ_accept_typeZkeep_line_orderZ BM_compatibler Zpython_symbolsZsymsr r r r r r! r% r, r- r1 r2 r r r r r s2 r c s( e Zd ZdZ fddZdd Z ZS )ConditionalFixNc s t t| j| d | _d S )N)superr8 r1 _should_skip)r args) __class__r r r1 s zConditionalFix.start_treec C sJ | j d k r| j S | jd}|d }d|d d }t|||| _ | j S )N.)r: skip_onsplitjoinr )r r Zpkgr r r r should_skip s zConditionalFix.should_skip)r3 r4 r5 r? r1 rB __classcell__r r )r<