3
‡Œði„!  ã            T   @   sÐ   d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 dæZdçdèdédêdëdìdídîdïedð dñedò edó dôdõdËœZdöd÷dødùdúdûdüdýdÔœZdÕZdÖZd×ZdØZdÙZdÚZdÛZdÜZdÝZdÞZdßdà„ Zdádâ„ ZG dãdä„ däejƒZdåS )þz
Fixer for complicated imports
é    )Ú
fixer_base)ÚNameÚStringÚ
FromImportÚNewlineÚComma)Útouch_import_topÚACTIVEÚALLÚANCHORÚARCÚBASELINEÚBEVELÚBOTHÚBOTTOMÚBROWSEÚBUTTÚCASCADEÚCENTERÚCHARÚCHECKBUTTONÚCHORDÚCOMMANDÚCURRENTÚDISABLEDÚDOTBOXÚEÚENDÚEWÚ	EXCEPTIONÚEXTENDEDÚFALSEÚFIRSTÚFLATÚGROOVEÚHIDDENÚ
HORIZONTALÚINSERTÚINSIDEÚLASTÚLEFTÚMITERÚMOVETOÚMULTIPLEÚNÚNEÚNOÚNONEÚNORMALÚNSÚNSEWÚNUMERICÚNWÚOFFÚONÚOUTSIDEÚPAGESÚPIESLICEÚ
PROJECTINGÚRADIOBUTTONÚRAISEDÚREADABLEÚRIDGEÚRIGHTÚROUNDÚSÚSCROLLÚSEÚSELÚ	SEL_FIRSTÚSEL_LASTÚ	SEPARATORÚSINGLEÚSOLIDÚSUNKENÚSWÚStringTypesÚTOPÚTRUEÚ
TclVersionÚ	TkVersionÚ	UNDERLINEÚUNITSÚVERTICALÚWÚWORDÚWRITABLEÚXÚYÚYESÚwantobjectsÚAbstractBasicAuthHandlerÚAbstractDigestAuthHandlerÚAbstractHTTPHandlerÚBaseHandlerÚCacheFTPHandlerÚ
FTPHandlerÚFileHandlerÚHTTPBasicAuthHandlerÚHTTPCookieProcessorÚHTTPDefaultErrorHandlerÚHTTPDigestAuthHandlerÚ	HTTPErrorÚHTTPErrorProcessorÚHTTPHandlerÚHTTPPasswordMgrÚHTTPPasswordMgrWithDefaultRealmÚHTTPRedirectHandlerÚHTTPSHandlerÚOpenerDirectorÚProxyBasicAuthHandlerÚProxyDigestAuthHandlerÚProxyHandlerÚRequestÚStringIOÚURLErrorÚUnknownHandlerÚ
addinfourlÚbuild_openerÚinstall_openerÚparse_http_listÚparse_keqv_listÚrandombytesÚrequest_hostÚurlopenÚContentTooShortErrorÚFancyURLopenerÚ	URLopenerÚbasejoinÚ	ftperrorsÚ
getproxiesÚgetproxies_environmentÚ	localhostÚpathname2urlÚquoteÚ
quote_plusÚ	splitattrÚ	splithostÚ
splitnportÚsplitpasswdÚ	splitportÚ
splitqueryÚsplittagÚ	splittypeÚ	splituserÚ
splitvalueÚthishostÚunquoteÚunquote_plusÚunwrapÚurl2pathnameÚ
urlcleanupÚ	urlencodeÚurlretrieveÚparse_qsÚ	parse_qslÚ	urldefragÚurljoinÚurlparseÚurlsplitÚ
urlunparseÚ
urlunsplitÚndbmÚgnuÚdumbÚerrorÚopenÚwhichdbÚBaseHTTPRequestHandlerÚ
HTTPServerÚCGIHTTPRequestHandlerÚSimpleHTTPRequestHandlerÚ
FileDialogÚLoadFileDialogÚSaveFileDialogÚdialogstatesÚtestÚ	DirectoryÚOpenÚSaveAsÚ_DialogÚaskdirectoryÚaskopenfileÚaskopenfilenameÚaskopenfilenamesÚaskopenfilesÚasksaveasfileÚasksaveasfilenameÚSimpleDialogÚaskfloatÚ
askintegerÚ	askstringÚDialogÚCGIXMLRPCRequestHandlerÚSimpleXMLRPCDispatcherÚSimpleXMLRPCRequestHandlerÚSimpleXMLRPCServerÚlist_public_methodsÚremove_duplicatesÚresolve_dotted_attributeÚDocCGIXMLRPCRequestHandlerÚDocXMLRPCRequestHandlerÚDocXMLRPCServerÚServerHTMLDocÚXMLRPCDocGenerator)Úurllib2Úurllibr    ÚdbmÚanydbmr©   ÚBaseHTTPServerÚCGIHTTPServerÚSimpleHTTPServerr®   ÚtkFileDialogr¾   ÚtkSimpleDialogrÆ   rÌ   rÏ   rÐ   rÒ   rÔ   rÕ   rÓ   rÖ   r×   )zurllib.requestzurllib.errorzurllib.parsezdbm.__init__zhttp.serverztkinter.filedialogztkinter.simpledialogzxmlrpc.serverz	name='%s'z	attr='%s'z
using='%s'z$dotted_name=dotted_name< %s '.' %s >z?pow=power< %s trailer< '.' %s > trailer< '.' using=any > any* >z-pow=power< %s trailer< '.' using=any > any* >zœfrom_import=import_from< 'from' %s 'import' (import_as_name< using=any 'as' renamed=any> | in_list=import_as_names< using=any* > | using='*' | using=NAME) >zSname_import=import_name< 'import' (%s | in_list=dotted_as_names< imp_list=any* >) >z8name_import_rename=dotted_as_name< %s 'as' renamed=any >zµfrom_import_rename=import_from< 'from' %s 'import' (%s | import_as_name< %s 'as' renamed=any > | in_list=import_as_names< any* (%s | import_as_name< %s 'as' renamed=any >) any* >) >c              C   sN   dd„ t D ƒ} ddjdd„ | D ƒƒ }|d7 }|djdd„ | D ƒƒd 7 }|S )zI
    Builds a pattern for all toplevel names
    (urllib, http, etc)
    c             S   s   g | ]}|j d ƒ‘qS )Ú.)Úsplit)Ú.0Úmod© rÜ   úB/tmp/pip-build-6m2fasei/future/libpasteurize/fixes/fix_imports2.pyú
<listcomp>‰   s    z*all_modules_subpattern.<locals>.<listcomp>z( z | c             S   s(   g | ] }t t|d   t|d  f ‘qS )r   é   )Údotted_nameÚsimple_nameÚsimple_attr)rÚ   rÛ   rÜ   rÜ   rÝ   rÞ   Š   s   c             S   s$   g | ]}|d  dkrt |d  ‘qS )rß   Ú__init__r   )rá   )rÚ   rÛ   rÜ   rÜ   rÝ   rÞ   �   s    z ))ÚMAPPINGÚjoin)Znames_dot_attrsÚretrÜ   rÜ   rÝ   Úall_modules_subpattern„   s    rç   c       	      c   s¢   t tƒ  V  x�| jƒ D ]„\}}|jdƒ\}}t| }t| }t||f }t| V  t||f V  |dkr|t| V  t	| V  t
| V  t|||||f V  qW dS )zÞ
    mapping1: A dict mapping py3k modules to all possible py2k replacements
    mapping2: A dict mapping py2k modules to the things they do
    This builds a HUGE pattern to match all ways that things can be imported
    rØ   rã   N)Úfrom_importrç   ÚitemsrÙ   rá   râ   rà   Úname_importÚpower_twonameÚpower_onenameÚname_import_renameÚfrom_import_rename)	Zmapping1Zmapping2Zpy3kZpy2kÚnameÚattrZs_nameZs_attrZd_namerÜ   rÜ   rÝ   Úbuild_import_pattern‘   s    



rñ   c               @   s(   e Zd ZdZdjeeeƒƒZdd„ Z	dS )ÚFixImports2é   z | 
c             C   s   t dd|ƒ d S )NÚfutureZstandard_library)r   )ÚselfÚnodeÚresultsrÜ   rÜ   rÝ   Ú	transform­   s    zFixImports2.transformN)
Ú__name__Ú
__module__Ú__qualname__Z	run_orderrå   rñ   rä   Ú
PY2MODULESZPATTERNrø   rÜ   rÜ   rÜ   rÝ   rò   §   s   rò   N)Tr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   )"r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   )r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r~   r›   )rœ   r�   rž   rŸ   r    r¡   r¢   r£   )r¤   r¥   r¦   )r§   r¨   )r©   )rª   r«   )r¬   )r­   )r®   r¯   r°   r±   r²   )r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   )r¾   )r¿   rÀ   rÁ   rÂ   )rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   )rÊ   rË   rÌ   rÍ   rÎ   )rÏ   rÐ   )rÏ   rÐ   )rÏ   rÐ   r    )rÒ   r©   )rÔ   rÕ   rÓ   )rÖ   r®   )r×   r¾   )rÌ   rÆ   )Ú__doc__Zlib2to3r   Zlib2to3.fixer_utilr   r   r   r   r   Zlibfuturize.fixer_utilr   ZTK_BASE_NAMESrü   rä   rá   râ   Zsimple_usingrà   rë   rì   rè   rê   rí   rî   rç   rñ   ZBaseFixrò   rÜ   rÜ   rÜ   rÝ   Ú<module>   s¦                                           