3 \" ã @ sP d dl Z ddlmZ ddlmZ ddlmZ G dd„ deƒZG dd „ d eƒZ dS ) é Né )ÚPatternCompiler)Úpygram)Údoes_tree_importc @ sª e Zd ZdZdZdZdZdZej dƒZ eƒ ZdZ dZdZdZdZdZejZdd„ Zdd „ Zd d„ Zdd „ Zdd„ Zddd„Zdd„ Zddd„Zdd„ Zdd„ Zdd„ Z dS )ÚBaseFixNr ZpostFé c C s || _ || _| jƒ d S )N)ÚoptionsÚlogÚcompile_pattern)Úselfr r © r ú*/usr/lib64/python3.6/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 ÚpatternÚpattern_tree)r ÚPCr 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 j||ƒo|S )NÚnode)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.transformÚxxx_todo_changemec C s6 |}x || j kr$|tt| jƒƒ }qW | j j|ƒ |S )N)Ú used_namesÚstrÚnextÚnumbersÚadd)r ÚtemplateÚnamer r r Únew_namei s zBaseFix.new_namec C s. | j rd| _ | jjd| j ƒ | jj|ƒ d S )NFz### In file %s ###)Ú first_logr Úappendr )r Úmessager r r Úlog_messaget s zBaseFix.log_messagec C s> |j ƒ }|jƒ }d|_d}| j|||f ƒ |r:| j|ƒ d S )NÚ zLine %d: could not convert: %s)Ú get_linenoZcloneÚprefixr&