o
     JAf                      @   s   	 d dl mZmZ d dlmZmZmZmZmZm	Z	m
Z
 dg dfdg dfddgfgdg d	fdd
dgfgdZed ed d  dd ZG dd deZdS )    )
alternates
FixImports)NameComma
FromImportNewlinefind_indentationNodesymszurllib.request)	Z	URLopenerZFancyURLopenerurlretrieveZ
_urlopenerurlopen
urlcleanuppathname2urlurl2pathname
getproxieszurllib.parse)quote
quote_plusunquoteunquote_plus	urlencode	splitattr	splithost
splitnportsplitpasswd	splitport
splitquerysplittag	splittype	splituser
splitvaluezurllib.errorContentTooShortError)r   Zinstall_openerZbuild_openerZRequestZOpenerDirectorZBaseHandlerZHTTPDefaultErrorHandlerZHTTPRedirectHandlerZHTTPCookieProcessorZProxyHandlerZHTTPPasswordMgrZHTTPPasswordMgrWithDefaultRealmZAbstractBasicAuthHandlerZHTTPBasicAuthHandlerZProxyBasicAuthHandlerZAbstractDigestAuthHandlerZHTTPDigestAuthHandlerZProxyDigestAuthHandlerZHTTPHandlerZHTTPSHandlerFileHandlerZ
FTPHandlerZCacheFTPHandlerZUnknownHandlerURLError	HTTPError)urlliburllib2r%   r$      c                  c   sx    t  } t D ]1\}}|D ]*}|\}}t|}d||f V  d|||f V  d| V  d| V  d||f V  qqd S )Nzimport_name< 'import' (module=%r
                                  | dotted_as_names< any* module=%r any* >) >
                  zimport_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   )ZbareZ
old_moduleZchangeschangeZ
new_modulemembers r,   //usr/lib/python3.10/lib2to3/fixes/fix_urllib.pybuild_pattern0   s.   r.   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )	FixUrllibc                 C   s   d t S )N|)joinr.   )selfr,   r,   r-   r.   I   s   zFixUrllib.build_patternc                 C   sx   	 | d}|j}g }t|j d d D ]}|t|d |dt g q|tt|j d d |d || d S )Nmoduler   prefix)	getr6   r(   valueextendr   r   appendreplace)r2   noderesultsZ
import_modprefnamesnamer,   r,   r-   transform_importL   s   
 zFixUrllib.transform_importc                 C   s   	 | d}|j}| d}|rEt|tr|d }d }t|j D ]}|j|d v r/|d } nq |r=|t||d d S | |d d S g }i }	|d }
|
D ]D}|j	t
jkrd|jd j}|jd j}n|j}d }|d	krt|j D ] }||d v r|d |	vr||d  |	|d g | qrqOg }t|}d
}dd }|D ]A}|	| }g }|d d D ]}|||| |t  q|||d | t||}|r|jj|r||_|| d}q|rg }|d d D ]
}||t g q||d  || d S | |d d S )N
mod_membermemberr   r&   r5   !This is an invalid module elementr+      ,Tc                 S   sX   | j tjkr$t| jd j|d| jd  | jd  g}ttj|gS t| j|dgS )Nr   r5   r&   rE   )typer
   import_as_namer   childrenr8   Zcloner	   )r@   r6   Zkidsr,   r,   r-   handle_name   s   z/FixUrllib.transform_member.<locals>.handle_namer4   FzAll module elements are invalid)r7   r6   
isinstancelistr(   r8   r;   r   cannot_convertrG   r
   rH   rI   r:   
setdefaultr   r9   r   r   parentendswithr   )r2   r<   r=   rB   r>   rC   new_namer*   modulesZmod_dictr+   Zas_namemember_nameZ	new_nodesZindentationfirstrJ   r3   eltsr?   eltnewZnodesZnew_noder,   r,   r-   transform_member\   sn   




zFixUrllib.transform_memberc                 C   s   	 | d}| d}d }t|tr|d }t|j D ]}|j|d v r*|d } nq|r9|t||jd d S | |d d S )Nbare_with_attrrC   r   r&   r5   rD   )	r7   rK   rL   r(   r8   r;   r   r6   rM   )r2   r<   r=   Z
module_dotrC   rQ   r*   r,   r,   r-   transform_dot   s    


zFixUrllib.transform_dotc                 C   s   | dr| || d S | dr| || d S | dr'| || d S | dr4| |d d S | drA| |d d S d S )Nr3   rB   rY   Zmodule_starzCannot handle star imports.Z	module_asz#This module is now multiple modules)r7   rA   rX   rZ   rM   )r2   r<   r=   r,   r,   r-   	transform   s   




zFixUrllib.transformN)__name__
__module____qualname__r.   rA   rX   rZ   r[   r,   r,   r,   r-   r/   G   s    Lr/   N)Zlib2to3.fixes.fix_importsr   r   Zlib2to3.fixer_utilr   r   r   r   r   r	   r
   r(   r:   r.   r/   r,   r,   r,   r-   <module>   s0    $!