
„Æ.^4  ã            `   @   sŠ  d  Z  d d l m Z d d l m Z m Z d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dD dF dG dH dI dJ dK dL dM dN dO dP dQ dR dQ dS dQ dT dU dV dW dX dW dY dZ d[ d\ i0 Z d] d^ „  Z e d_ d` „ Z Gda db „  db e j	 ƒ Z
 dc S)dz/Fix incompatible imports and module references.é   )Ú
fixer_base)ÚNameÚ
attr_chainÚStringIOÚioÚ	cStringIOÚcPickleÚpickleÚ__builtin__ÚbuiltinsÚcopy_regÚcopyregÚQueueÚqueueÚSocketServerÚsocketserverÚConfigParserÚconfigparserÚreprÚreprlibÚ
FileDialogztkinter.filedialogÚtkFileDialogÚSimpleDialogztkinter.simpledialogÚtkSimpleDialogÚtkColorChooserztkinter.colorchooserÚtkCommonDialogztkinter.commondialogÚDialogztkinter.dialogÚTkdndztkinter.dndÚtkFontztkinter.fontÚtkMessageBoxztkinter.messageboxÚScrolledTextztkinter.scrolledtextÚTkconstantsztkinter.constantsÚTixztkinter.tixÚttkztkinter.ttkÚTkinterÚtkinterÚ
markupbaseÚ_markupbaseÚ_winregÚwinregÚthreadÚ_threadÚdummy_threadÚ_dummy_threadÚdbhashzdbm.bsdÚdumbdbmzdbm.dumbÚdbmzdbm.ndbmÚgdbmzdbm.gnuÚ	xmlrpclibzxmlrpc.clientÚDocXMLRPCServerzxmlrpc.serverÚSimpleXMLRPCServerÚhttplibzhttp.clientÚhtmlentitydefszhtml.entitiesÚ
HTMLParserzhtml.parserÚCookiezhttp.cookiesÚ	cookielibzhttp.cookiejarÚBaseHTTPServerzhttp.serverÚSimpleHTTPServerÚCGIHTTPServerÚcommandsÚ
subprocessÚ
UserStringÚcollectionsÚUserListÚurlparsezurllib.parseÚrobotparserzurllib.robotparserc             C   s   d d j  t t |  ƒ ƒ d S)Nú(ú|ú))ÚjoinÚmapr   )Úmembers© rJ   úP/build/toolchain/mac32/python-3.5.2-openssl1.0.2u-1/lib/python3.5/fix_imports.pyÚ
alternates=   s    rL   c             c   sb   d j  d d „  |  Dƒ ƒ } t |  j ƒ  ƒ } d | | f Vd | Vd | | f Vd | Vd  S)Nz | c             S   s   g  |  ] } d  | ‘ q S)zmodule_name='%s'rJ   )Ú.0ÚkeyrJ   rJ   rK   ú
<listcomp>B   s   	 z!build_pattern.<locals>.<listcomp>zyname_import=import_name< 'import' ((%s) |
               multiple_imports=dotted_as_names< any* (%s) any* >) >
          z›import_from< 'from' (%s) 'import' ['(']
              ( any | import_as_name< any 'as' any > |
                import_as_names< any* >)  [')'] >
          z´import_name< 'import' (dotted_as_name< (%s) 'as' any > |
               multiple_imports=dotted_as_names<
                 any* dotted_as_name< (%s) 'as' any > any* >) >
          z3power< bare_with_attr=(%s) trailer<'.' any > any* >)rG   rL   Úkeys)ÚmappingZmod_listZ
bare_namesrJ   rJ   rK   Úbuild_patternA   s    	rR   c                   sv   e  Z d  Z d Z d Z e Z d Z d d „  Z ‡  f d d †  Z	 ‡  f d d †  Z
 ‡  f d	 d
 †  Z d d „  Z ‡  S)Ú
FixImportsTé   c             C   s   d j  t |  j ƒ ƒ S)NrE   )rG   rR   rQ   )ÚselfrJ   rJ   rK   rR   `   s    zFixImports.build_patternc                s&   |  j  ƒ  |  _ t t |  ƒ j ƒ  d  S)N)rR   ZPATTERNÚsuperrS   Úcompile_pattern)rU   )Ú	__class__rJ   rK   rW   c   s    zFixImports.compile_patternc                sd   t  t |  ƒ j ‰  ˆ  | ƒ } | r` d | k r\ t ‡  f d d †  t | d ƒ Dƒ ƒ r\ d S| Sd S)NÚbare_with_attrc             3   s   |  ] } ˆ  | ƒ Vq d  S)NrJ   )rM   Úobj)ÚmatchrJ   rK   ú	<genexpr>q   s    z#FixImports.match.<locals>.<genexpr>ÚparentF)rV   rS   r[   Úanyr   )rU   ÚnodeÚresults)rX   )r[   rK   r[   j   s    (zFixImports.matchc                s&   t  t |  ƒ j | | ƒ i  |  _ d  S)N)rV   rS   Ú
start_treeÚreplace)rU   ZtreeÚfilename)rX   rJ   rK   ra   v   s    zFixImports.start_treec             C   sÝ   | j  d ƒ } | r” | j } |  j | } | j t | d | j ƒƒ d | k r` | |  j | <d | k rÙ |  j | ƒ } | rÙ |  j | | ƒ nE | d d } |  j j  | j ƒ } | rÙ | j t | d | j ƒƒ d  S)NÚmodule_nameÚprefixZname_importZmultiple_importsrY   é    )ÚgetÚvaluerQ   rb   r   re   r[   Ú	transform)rU   r_   r`   Z
import_modZmod_nameÚnew_nameZ	bare_namerJ   rJ   rK   ri   z   s    	zFixImports.transform)Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZkeep_line_orderÚMAPPINGrQ   Z	run_orderrR   rW   r[   ra   ri   rJ   rJ   )rX   rK   rS   U   s   rS   N)Ú__doc__Ú r   Z
fixer_utilr   r   rn   rL   rR   ZBaseFixrS   rJ   rJ   rJ   rK   Ú<module>   sj   