관리-도구
편집 파일: fix_import.cpython-34.pyc
� i f� � @ s} d Z 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)z�Fixer for import statements. If spam is being imported from the local directory, this import: from spam import eggs Becomes: from .spam import eggs And this import: import spam Becomes: from . import spam � )� 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) zF Walks over all the names imported in a dotted_as_names node. � c S s g | ] } | j � q S� )�value)�.0Zchr r �=/opt/alt/python34/lib64/python3.4/lib2to3/fixes/fix_import.py� <listcomp> s z$traverse_imports.<locals>.<listcomp>r Nr 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 � rd | j | _ | j � qn� d } d } x2 t | � D]$ } | j | � r� d } q� d } q� W| r� | r� | j | d � n 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 Zwarningr �prefix)r! r Zresultsr$ 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_pathZextr r r r'