Your IP : 3.15.3.17
���]� � @ sw d d l m Z d d l m Z m Z m Z m Z d d l m Z m Z m
Z
d d � Z Gd d � d e j � Z
d S)
� )�
fixer_base� )�dirname�join�exists�sep)�
FromImport�syms�tokenc c s� | g } x� | r� | j � } | j t j k r; | j Vq | j t j k rn d j d d � | j D� � Vq | j t j k r� | j
| j d � q | j t j k r� | j | j d d d � � q t
d � � q Wd S)N� c S s g | ] } | j � q S� )�value)�.0Zchr r �//opt/alt/python35/lib64/python3.5/fix_import.py�
<listcomp> s z$traverse_imports.<locals>.<listcomp>r r zunknown node type���)�pop�typer
�NAMEr
r Zdotted_namer �childrenZdotted_as_name�appendZdotted_as_names�extend�AssertionError)�names�pending�noder r r �traverse_imports s ! r c sF e Z d Z d Z d Z � f d d � Z d d � Z d d � Z � S) � FixImportTzj
import_from< 'from' imp=any 'import' ['('] any [')'] >
|
import_name< 'import' imp=any >
c s/ t t | � j | | � d | j k | _ 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 } | j t j k r{ x t | d � sK | j d } q, W| j | j � r� d | j | _ | j � n� d } d } x2 t | � D]$ } | j | � r� d } q� d } q� W| r� | r� | j
| d � d St d | g � } | j | _ | Sd S)N�impr
r �.FTz#absolute and local imports together)
r r r Zimport_from�hasattrr �probably_a_local_importr
Zchangedr �warningr �prefix)r! r �resultsr$ Z
have_localZ
have_absoluteZmod_name�newr r r � transform3 s,
zFixImport.transformc C s� | j d � r d S| j d d � d } t | j � } t | | � } t t t | � d � � sf d Sx4 d t d d d d
g D] } t | | � r d Sq Wd S)Nr% F� r z__init__.pyz.pyz.pycz.soz.slz.pydT)�
startswith�splitr �filenamer r r )r! Zimp_name� base_path�extr r r r'