File: //usr/lib/python3.7/lib2to3/fixes/__pycache__/fix_urllib.cpython-37.pyc
B
µ5»a¡ ã @ sö d Z ddlmZmZ ddlmZmZmZmZm Z m
Z
mZ dddddd d
ddgfd
dddddddddddddddgfddgfgdd dd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5gfdd6d7gfgd8œZed9
ed: d; ¡ d<d=„ ZG d>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Úurllib2r r é c c s~ t ƒ } xrt ¡ D ]f\}}x\|D ]T}|\}}t|ƒ}d||f V d|||f V d| V d| V d||f V qW qW d S )Nzimport_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 ú./usr/lib/python3.7/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 sz | d¡}|j}g }x6t|j dd… D ] }| t|d |dtƒ g¡ q(W | tt|j d d |d¡ | |¡ dS )z‘Transform for the basic import case. Replaces the old
import name with a comma separated list of its
replacements.
ÚmoduleNéÿÿÿÿr )Úprefix) Úgetr r ÚvalueÚextendr r ÚappendÚreplace)r Ú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}x*t|j D ]}|j|d kr@|d }P q@W |rx| t||d¡ n| |d¡ n°g }i } |d }
x–|
D ]Ž}|j t
jkrÈ|jd j}|jd j}n
|j}d}|d
kržxPt|j D ]B}||d kræ|d | kr|
|d ¡ | |d g ¡
|¡ qæW qžW g }
t|ƒ}d}dd
„ }x–|D ]Ž}| | }g }x2|dd… D ]"}| |||ƒ¡ |
tƒ ¡ qlW | ||d |ƒ¡ t||ƒ}|rÆ|jj |¡rÌ||_|
|¡ d}qNW |
r,g }x&|
dd… D ]}| |tƒ g¡ qøW |
|
d ¡ | |¡ n| |d¡ dS )zšTransform for imports of specific module elements. Replaces
the module to be imported from with the appropriate new
module.
Ú
mod_memberÚmemberr Nr
)r z!This is an invalid module elementr é ú,Tc S sX | j tjkrHt| jd j|d| jd ¡ | jd ¡ g}ttj|ƒgS t| j|dgS )Nr )r r
r* )Útyper
Úimport_as_namer Úchildrenr Zcloner )r&