B
{AYM<£Pzã @ sV d dl mZ ddlmZmZmZmZ d dlmZm Z m
Z
dd„ ZG dd„ dejƒZ
d S )
é )Ú
fixer_baseé )ÚdirnameÚjoinÚexistsÚsep)Ú
FromImportÚsymsÚtokenc c s¢ | g}x–|rœ| ¡ }|jtjkr*|jV q|jtjkrPd dd„ |jD ƒ¡V q|jtj krn|
|jd ¡ q|jtjkr’| |jd d d… ¡ qt
dƒ‚qW d S )NÚ c S s g | ]
}|j ‘qS © )Úvalue)Ú.0Zchr r ú=/opt/alt/python37/lib64/python3.7/lib2to3/fixes/fix_import.pyú
s z$traverse_imports..r éþÿÿÿzunknown node type)ÚpopÚtyper
ÚNAMEr
r Zdotted_namer ÚchildrenZdotted_as_nameÚappendZdotted_as_namesÚextendÚAssertionError)ÚnamesZpendingÚnoder r r Útraverse_imports s
r c s4 e Zd ZdZdZ‡ fdd„Zdd„ Zdd„ Z‡ ZS ) Ú FixImportTzj
import_from< 'from' imp=any 'import' ['('] any [')'] >
|
import_name< 'import' imp=any >
c s" t t| ƒ ||¡ d|jk| _d S )NZabsolute_import)Úsuperr Ú
start_treeZfuture_featuresÚskip)ÚselfZtreeÚname)Ú __class__r r r / s zFixImport.start_treec C s¼ | j r
d S |d }|jtjkrZxt|dƒs6|jd }q W | |j¡r¸d|j |_| ¡ n^d}d}x$t |ƒD ]}| |¡r€d}qld}qlW |r |rœ|
|d¡ d S td|gƒ}|j|_|S d S )NÚimpr
r Ú.FTz#absolute and local imports together)
r r r Zimport_fromÚhasattrr Úprobably_a_local_importr
Zchangedr Zwarningr Úprefix)r r Úresultsr# Z
have_localZ
have_absoluteZmod_nameÚnewr r r Ú transform3 s,
zFixImport.transformc C sv | d¡rdS | dd¡d }t| jƒ}t||ƒ}ttt|ƒdƒƒsHdS x(dtddd d
gD ]}t|| ƒrZdS qZW dS )Nr$ Fé r z__init__.pyz.pyz.pycz.soz.slz.pydT)Ú
startswithÚsplitr Úfilenamer r r )r Zimp_nameÚ base_pathZextr r r r&