Your IP : 18.219.255.84
3
\� �@s�dZddlmZmZddlmZmZmZmZm Z m
Z
mZdddddd d
ddgfd
dddddddddddddddgfddgfgdd dd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5gfdd6d7gfgd8�Zed9j
ed:d;�d<d=�ZGd>d?�d?e�Zd@S)Az�Fix changes imports of urllib which are now incompatible.
This is rather similar to fix_imports, but because of the more
complex nature of the fixing for urllib, it has its own fixer.
�)�
alternates�
FixImports)�Name�Comma�
FromImport�Newline�find_indentation�Node�symszurllib.requestZ URLopenerZFancyURLopenerZurlretrieveZ
_urlopenerZurlopenZ
urlcleanupZpathname2urlZurl2pathnamezurllib.parseZquoteZ
quote_plusZunquoteZunquote_plusZ urlencodeZ splitattrZ splithostZ
splitnportZsplitpasswdZ splitportZ
splitqueryZsplittagZ splittypeZ splituserZ
splitvaluezurllib.errorZContentTooShortErrorZinstall_openerZbuild_openerZRequestZOpenerDirectorZBaseHandlerZHTTPDefaultErrorHandlerZHTTPRedirectHandlerZHTTPCookieProcessorZProxyHandlerZHTTPPasswordMgrZHTTPPasswordMgrWithDefaultRealmZAbstractBasicAuthHandlerZHTTPBasicAuthHandlerZProxyBasicAuthHandlerZAbstractDigestAuthHandlerZHTTPDigestAuthHandlerZProxyDigestAuthHandlerZHTTPHandlerZHTTPSHandlerZFileHandlerZ
FTPHandlerZCacheFTPHandlerZUnknownHandlerZURLErrorZ HTTPError)�urllib�urllib2rr�ccs~t�}xrtj�D]f\}}x\|D]T}|\}}t|�}d||fVd|||fVd|Vd|Vd||fVqWqWdS)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.6/lib2to3/fixes/fix_urllib.py�
build_pattern0s
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd d
�ZdS)� FixUrllibcCsdjt��S)N�|)�joinr)�selfrrrrIszFixUrllib.build_patterncCsz|jd�}|j}g}x6t|jdd�D] }|jt|d|d�t�g�q(W|jtt|jdd|d��|j|�dS)z�Transform for the basic import case. Replaces the old
import name with a comma separated list of its
replacements.
�moduleNr
r)�prefix���r) �getrr�value�extendrr�append�replace)r�node�resultsZ
import_mod�pref�names�namerrr�transform_importLs
zFixUrllib.transform_importcCs>|jd�}|j}|jd�}|r�t|t�r0|d}d}x*t|jD]}|j|dkr@|d}Pq@W|rx|jt||d��n|j|d��n�g}i} |d}
x�|
D]�}|j t
jkr�|jd j}|jdj}n
|j}d}|d
kr�xPt|jD]B}||dkr�|d| k�r|j
|d�| j|dg�j
|�q�Wq�Wg}
t|�}d}dd
�}x�|D]�}| |}g}x2|dd�D]"}|j|||��|j
t���qlW|j||d|��t||�}|�s�|jjj|��r�||_|
j
|�d}�qNW|
�r.g}x&|
dd�D]}|j|t�g��q�W|j
|
d�|j|�n|j|d�dS)z�Transform for imports of specific module elements. Replaces
the module to be imported from with the appropriate new
module.
�
mod_member�memberrNr
)rz!This is an invalid module elementr��,TcSsX|jtjkrHt|jdj|d�|jdj�|jdj�g}ttj|�gSt|j|d�gS)Nr)rr
r*)�typer
�import_as_namer�childrenrZcloner )r&rZkidsrrr�handle_name�sz/FixUrllib.transform_member.<locals>.handle_nameFzAll module elements are invalidrrrr)rr�
isinstance�listrrr!r�cannot_convertr,r
r-r.r �
setdefaultrrrr�parent�endswithr)rr"r#r(r$r)�new_namer�modulesZmod_dictrZas_name�member_nameZ new_nodesZindentation�firstr/rZeltsr%Zelt�newZnodesZnew_noderrr�transform_member\sh
zFixUrllib.transform_membercCs�|jd�}|jd�}d}t|t�r*|d}x*t|jD]}|j|dkr6|d}Pq6W|rp|jt||jd��n|j|d�dS)z.Transform for calls to module members in code.�bare_with_attrr)Nrr
)rz!This is an invalid module element) rr0r1rrr!rrr2)rr"r#Z
module_dotr)r6rrrr�
transform_dot�s
zFixUrllib.transform_dotcCsz|jd�r|j||�n^|jd�r0|j||�nF|jd�rH|j||�n.|jd�r`|j|d�n|jd�rv|j|d�dS)Nrr(r<Zmodule_starzCannot handle star imports.Z module_asz#This module is now multiple modules)rr'r;r=r2)rr"r#rrr� transform�s
zFixUrllib.transformN)�__name__�
__module__�__qualname__rr'r;r=r>rrrrrGs
LrN)�__doc__Zlib2to3.fixes.fix_importsrrZlib2to3.fixer_utilrrrrrr r
rr rrrrrr�<module>s@$
?>