<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3

  \¸  ã               @   sV   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G d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V  q|jtjkrPdjdd„ |jD ƒƒV  q|jtj	krn|j
|jd ƒ q|jtjkr’|j|jd d d… ƒ qtdƒ‚qW d S )NÚ c             S   s   g | ]
}|j ‘qS © )Úvalue)Ú.0Zchr   r   ú0/usr/lib64/python3.6/lib2to3/fixes/fix_import.pyú
<listcomp>   s    z$traverse_imports.<locals>.<listcomp>r   r   zunknown node typeéþÿÿÿ)ÚpopÚtyper
   ÚNAMEr   r	   Zdotted_namer   ÚchildrenZdotted_as_nameÚappendZdotted_as_namesÚextendÚAssertionError)ÚnamesÚpendingÚnoder   r   r   Útraverse_imports   s    
r   c                   s4   e Zd ZdZdZ‡ fdd„Zdd„ Zdd„ Z‡  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 )NZabsolute_import)Úsuperr   Ú
start_treeZfuture_featuresÚskip)ÚselfZtreeÚname)Ú	__class__r   r   r   /   s    zFixImport.start_treec             C   s¼   | j r
d S |d }|jtjkrZxt|dƒs6|jd }q W | j|jƒr¸d|j |_|jƒ  n^d}d}x$t	|ƒD ]}| j|ƒr€d}qld}qlW |r |rœ| j
|dƒ d S td|gƒ}|j|_|S d S )NÚimpr   r   Ú.FTz#absolute and local imports together)r    r   r	   Zimport_fromÚhasattrr   Úprobably_a_local_importr   Zchangedr   Zwarningr   Úprefix)r!   r   Zresultsr$   Z
have_localZhave_absoluteZmod_nameÚnewr   r   r   Ú	transform3   s,    

zFixImport.transformc             C   sv   |j dƒrdS |jddƒd }t| jƒ}t||ƒ}ttt|ƒdƒƒsHdS x(dtddd	d
gD ]}t|| ƒrZdS qZW dS )Nr%   Fé   r   z__init__.pyz.pyz.pycz.soz.slz.pydT)Ú
startswithÚsplitr   Úfilenamer   r   r   )r!   Zimp_nameÚ	base_pathZextr   r   r   r'   U   s    


z!FixImport.probably_a_local_import)	Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZPATTERNr   r*   r'   Ú__classcell__r   r   )r#   r   r   &   s
   "r   N)r   r   Zos.pathr   r   r   r   Z
fixer_utilr   r	   r
   r   ZBaseFixr   r   r   r   r   Ú<module>   s   