Current File : //proc/3/root/opt/alt/python35/lib64/python3.5/lib2to3/fixes/__pycache__/fix_urllib.cpython-35.pyc
�q�\� �@stdZddlmZmZddlmZddlmZmZm Z m
Z
mZmZm
Z
ddddd d
ddd
dgfddddddddddddddddgfdd gfgd!ddd"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8gfdd9d:gfgiZed!jedd;�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)�
fixer_base)�Name�Comma�
FromImport�Newline�find_indentation�Node�symsZurllibzurllib.requestZ URLopenerZFancyURLopenerZurlretrieveZ
_urlopenerZurlopenZ
urlcleanupZpathname2urlZurl2pathnamezurllib.parseZquoteZ
quote_plusZunquoteZunquote_plusZ urlencodeZ splitattrZ splithostZ
splitnportZsplitpasswdZ splitportZ
splitqueryZsplittagZ splittypeZ splituserZ
splitvaluezurllib.errorZContentTooShortErrorZurllib2Zinstall_openerZbuild_openerZRequestZOpenerDirectorZBaseHandlerZHTTPDefaultErrorHandlerZHTTPRedirectHandlerZHTTPCookieProcessorZProxyHandlerZHTTPPasswordMgrZHTTPPasswordMgrWithDefaultRealmZAbstractBasicAuthHandlerZHTTPBasicAuthHandlerZProxyBasicAuthHandlerZAbstractDigestAuthHandlerZHTTPDigestAuthHandlerZProxyDigestAuthHandlerZHTTPHandlerZHTTPSHandlerZFileHandlerZ
FTPHandlerZCacheFTPHandlerZUnknownHandlerZURLErrorZ HTTPError�ccs�t�}x�tj�D]w\}}xh|D]`}|\}}t|�}d||fVd|||fVd|Vd|Vd||fVq)WqWdS)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�=/opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_urllib.py�
build_pattern1s
rc@sLeZdZdd�Zdd�Zdd�Zdd�Zd d
�ZdS)� FixUrllibcCsdjt��S)N�|)�joinr)�selfrrrrJszFixUrllib.build_patterncCs�|jd�}|j}g}xEt|jdd�D],}|jt|dd|�t�g�q6W|jtt|jddd|��|j|�dS)z�Transform for the basic import case. Replaces the old
import name with a comma separated list of its
replacements.
�moduleNrr�prefix���r) �getrr�value�extendrr�append�replace)r�node�resultsZ
import_mod�pref�names�namerrr�transform_importMs *(zFixUrllib.transform_importcCs�|jd�}|j}|jd�}|r�t|t�rF|d}d}x3t|jD]$}|j|dkrZ|d}PqZW|r�|jt|d|��q�|j|d�n2g}i} |d}
x�|
D]�}|j t
jkr|jd j}|jdj}n|j}d}|d
kr�xct|jD]T}||dkr8|d| kro|j
|d�| j|dg�j
|�q8Wq�Wg}
t|�}d}dd
�}x�|D]�}| |}g}x>|dd�D],}|j|||��|j
t��q�W|j||d|��t||�}|s[|jjj|�rd||_|
j
|�d}q�W|
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�memberrNrrz!This is an invalid module elementr��,TcSsz|jtjkrdt|jdjd|�|jdj�|jdj�g}ttj|�gSt|jd|�gS)Nrrrr))�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+rr,r-r�
setdefaultr rrr�parent�endswithr)rr!r"r'r#r(�new_namer�modulesZmod_dictrZas_nameZmember_nameZ new_nodesZindentation�firstr.rZeltsr$Zelt�newZnodesZnew_noderrr�transform_member]sh
%
zFixUrllib.transform_membercCs�|jd�}|jd�}d}t|t�r=|d}x3t|jD]$}|j|dkrK|d}PqKW|r�|jt|d|j��n|j|d�dS)z.Transform for calls to module members in code.�bare_with_attrr(Nrrrz!This is an invalid module element) rr/r0rrr rrr1)rr!r"Z
module_dotr(r5rrrr�
transform_dot�s
zFixUrllib.transform_dotcCs�|jd�r"|j||�n�|jd�rD|j||�nc|jd�rf|j||�nA|jd�r�|j|d�n|jd�r�|j|d�dS)Nrr'r:Zmodule_starzCannot handle star imports.Z module_asz#This module is now multiple modules)rr&r9r;r1)rr!r"rrr� transform�szFixUrllib.transformN)�__name__�
__module__�__qualname__rr&r9r;r<rrrrrHs
LrN)�__doc__Zlib2to3.fixes.fix_importsrrZlib2to3rZlib2to3.fixer_utilrrrrr r
rrrrrrrrr�<module>sF4