File: //lib64/python3.9/lib2to3/fixes/__pycache__/fix_urllib.cpython-39.opt-2.pyc
a
    �DOg�   �                   @   s�   d dl mZmZ d dlmZmZmZmZmZm	Z	m
Z
 dg d�fdg d�fddgfgdg d	�fdd
dgfgd�Zed
 �ed d � dd� Z
G dd� de�ZdS )�    )�
alternates�
FixImports)�Name�Comma�
FromImport�Newline�find_indentation�Node�symszurllib.request)	Z	URLopenerZFancyURLopener�urlretrieveZ
_urlopener�urlopen�
urlcleanup�pathname2url�url2pathname�
getproxieszurllib.parse)�quote�
quote_plus�unquote�unquote_plus�	urlencode�	splitattr�	splithost�
splitnport�splitpasswd�	splitport�
splitquery�splittag�	splittype�	splituser�
splitvaluezurllib.error�ContentTooShortError)r   Zinstall_openerZbuild_openerZRequestZOpenerDirectorZBaseHandlerZHTTPDefaultErrorHandlerZHTTPRedirectHandlerZHTTPCookieProcessorZProxyHandlerZHTTPPasswordMgrZHTTPPasswordMgrWithDefaultRealmZAbstractBasicAuthHandlerZHTTPBasicAuthHandlerZProxyBasicAuthHandlerZAbstractDigestAuthHandlerZHTTPDigestAuthHandlerZProxyDigestAuthHandlerZHTTPHandlerZHTTPSHandler�FileHandlerZ
FTPHandlerZCacheFTPHandlerZUnknownHandler�URLError�	HTTPError)�urllib�urllib2r%   r$   �   c                  c   sv   t � } t�� D ]b\}}|D ]T}|\}}t|�}d||f V  d|||f V  d| V  d| V  d||f V  qqd S )Nz�import_name< 'import' (module=%r
                                  | dotted_as_names< any* module=%r any* >) >
                  z�import_from< 'from' mod_member=%r 'import'
                       ( member=%s | import_as_name< member=%s 'as' any > |
                         import_as_names< members=any*  >) >
                  zIimport_from< 'from' module_star=%r 'import' star='*' >
                  ztimport_name< 'import'
                                  dotted_as_name< module_as=%r 'as' any > >
                  zKpower< bare_with_attr=%r trailer< '.' member=%s > any* >
                  )�set�MAPPING�itemsr   )ZbareZ
old_moduleZchanges�changeZ
new_module�members� r,   �0/usr/lib64/python3.9/lib2to3/fixes/fix_urllib.py�
build_pattern0   s(    �����r.   c                   @   s4   e Zd Zdd� Zdd� Zdd� Zdd� Zd	d
� ZdS )�	FixUrllibc                 C   s   d� t� �S )N�|)�joinr.   )�selfr,   r,   r-   r.   I   s    zFixUrllib.build_patternc                 C   sv   |� d�}|j}g }t|j d d� D ] }|�t|d |d�t� g� q&|�tt|j d d |d�� |�|� d S )N�module���r   ��prefix)	�getr6   r(   �value�extendr   r   �append�replace)r2   �node�resultsZ
import_mod�pref�names�namer,   r,   r-   �transform_importL   s    
 zFixUrllib.transform_importc                 C   s&  |� d�}|j}|� d�}|r�t|t�r0|d }d }t|j D ]}|j|d v r>|d } q^q>|rv|�t||d�� n| �|d� �n�g }i }	|d }
|
D ]�}|j	t
jkr�|jd j}|jd j}n
|j}d }|d	kr�t|j D ]B}||d v r�|d |	v�r|�
|d � |	�|d g ��
|� q�q�g }
t|�}d
}dd� }|D ]�}|	| }g }|d d
� D ]"}|�|||�� |�
t� � �q^|�||d
 |�� t||�}|�r�|jj�|��r�||_|
�
|� d}�qB|
�rg }|
d d
� D ]}|�|t� g� �q�|�
|
d
 � |�|� n| �|d� d S )N�
mod_member�memberr   r&