o
0i @ sX d dl mZ ddlmZmZmZmZ d dlmZm Z m
Z
dd ZG dd dejZ
d S )
)
fixer_base )dirnamejoinexistssep)
FromImportsymstokenc c s | g}|rR| }|jtjkr|jV n8|jtjkr)ddd |jD V n%|jtj kr8|
|jd n|jtjkrJ||jd d d nt
d|sd S d S )N c S s g | ]}|j qS )value).0Zchr r ?/opt/alt/python310/lib64/python3.10/lib2to3/fixes/fix_import.py
s z$traverse_imports..r zunknown node type)poptyper
NAMEr
r Zdotted_namer childrenZdotted_as_nameappendZdotted_as_namesextendAssertionError)namesZpendingnoder r r traverse_imports s
r c s4 e Zd ZdZdZ fddZdd Zdd Z ZS ) FixImportTzj
import_from< 'from' imp=any 'import' ['('] any [')'] >
|
import_name< 'import' imp=any >
c s" t t| || d|jv | _d S )NZabsolute_import)superr
start_treeZfuture_featuresskip)selfZtreename __class__r r r / s zFixImport.start_treec C s | j rd S |d }|jtjkr2t|ds|jd }t|dr| |jr0d|j |_| d S d S d}d}t |D ]}| |rDd}q:d}q:|rS|rQ|
|d d S td|g}|j|_|S )Nimpr
r .FTz#absolute and local imports together)
r r r Zimport_fromhasattrr probably_a_local_importr
Zchangedr Zwarningr prefix)r r Zresultsr$ Z
have_localZ
have_absoluteZmod_namenewr r r transform3 s0
zFixImport.transformc C st | drdS |ddd }t| j}t||}ttt|ds$dS dtddd d
fD ]}t|| r7 dS q,dS )Nr% F r z__init__.pyz.pyz.pycz.soz.slz.pydT)
startswithsplitr filenamer r r )r Zimp_name base_pathZextr r r r' U s
z!FixImport.probably_a_local_import) __name__
__module____qualname__Z
BM_compatibleZPATTERNr r* r'
__classcell__r r r" r r &