File: //lib64/python3.9/lib2to3/fixes/__pycache__/fix_import.cpython-39.opt-1.pyc
a
    �DOg�  �                   @   sZ   d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
mZ dd� ZG dd	� d	ej
�Zd
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}|r�|� � }|jtjkr(|jV  q|jtjkrNd�dd� |jD ��V  q|jtj	krl|�
|jd � q|jtjkr�|�|jddd� � qt
d��qdS )zF
    Walks over all the names imported in a dotted_as_names node.
    � c                 S   s   g | ]
}|j �qS � )�value)�.0Zchr   r   �0/usr/lib64/python3.9/lib2to3/fixes/fix_import.py�
<listcomp>   �    z$traverse_imports.<locals>.<listcomp>r   N���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                       s4   e Zd ZdZdZ� fdd�Zdd� Zdd� Z�  ZS )	�	FixImportTzj
    import_from< 'from' imp=any 'import' ['('] any [')'] >
    |
    import_name< 'import' imp=any >
    c                    s"