o
    Š�bc4  ã                   @   s@  d Z ddlmZ ddlmZmZ i 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"“i d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“¥dDdEdFdGdHdIdJdJdJdKdLdLdMdNdOœ¥ZdPdQ„ ZefdRdS„ZG dTdU„ dUej	ƒZ
dVS )Wz/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.serverzhttp.clientzhtml.entitieszhtml.parserzhttp.cookieszhttp.cookiejarzhttp.serverÚ
subprocessÚcollectionszurllib.parsezurllib.robotparser)ÚSimpleXMLRPCServerÚhttplibÚhtmlentitydefsÚ
HTMLParserÚCookieÚ	cookielibÚBaseHTTPServerÚSimpleHTTPServerÚCGIHTTPServerÚcommandsÚ
UserStringÚUserListÚurlparseÚrobotparserc                 C   s   dd  tt| ƒ¡ d S )Nú(ú|ú))ÚjoinÚmapr   )Úmembers© rJ   ú0/usr/lib/python3.10/lib2to3/fixes/fix_imports.pyÚ
alternates=   s   rL   c                 c   sV   � d  dd„ | D ƒ¡}t|  ¡ ƒ}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)ÚmappingÚmod_listÚ
bare_namesrJ   rJ   rK   Úbuild_patternA   s   €þýýrT   c                       sT   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‡  ZS )Ú
FixImportsTé   c                 C   s   d  t| jƒ¡S )NrE   )rG   rT   rQ   ©ÚselfrJ   rJ   rK   rT   `   s   zFixImports.build_patternc                    s   |   ¡ | _tt| ƒ ¡  d S ©N)rT   ÚPATTERNÚsuperrU   Úcompile_patternrW   ©Ú	__class__rJ   rK   r\   c   s   
zFixImports.compile_patternc                    sH   t t| ƒj‰ ˆ |ƒ}|r"d|vr t‡ fdd„t|dƒD ƒƒr dS |S dS )NÚbare_with_attrc                 3   s   � | ]}ˆ |ƒV  qd S rY   rJ   )rM   Úobj©ÚmatchrJ   rK   Ú	<genexpr>q   s   € z#FixImports.match.<locals>.<genexpr>ÚparentF)r[   rU   rb   Úanyr   )rX   ÚnodeÚresultsr]   ra   rK   rb   j   s   ÿzFixImports.matchc                    s   t t| ƒ ||¡ i | _d S rY   )r[   rU   Ú
start_treeÚreplace)rX   ÚtreeÚfilenamer]   rJ   rK   rh   v   s   
zFixImports.start_treec                 C   s¬   |  d¡}|r9|j}| j| }| t||jd�¡ d|v r"|| j|< d|v r5|  |¡}|r7|  ||¡ d S d S d S |d d }| j  |j¡}|rT| t||jd�¡ d S d S )NÚmodule_name)ÚprefixÚname_importÚmultiple_importsr_   é    )ÚgetÚvaluerQ   ri   r   rm   rb   Ú	transform)rX   rf   rg   Ú
import_modÚmod_nameÚnew_nameÚ	bare_namerJ   rJ   rK   rs   z   s$   



ùÿzFixImports.transform)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚkeep_line_orderÚMAPPINGrQ   Ú	run_orderrT   r\   rb   rh   rs   Ú__classcell__rJ   rJ   r]   rK   rU   U   s    rU   N)Ú__doc__Ú r   Ú
fixer_utilr   r   r}   rL   rT   ÚBaseFixrU   rJ   rJ   rJ   rK   Ú<module>   s°    ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåãâá à!ß"Þ#Ï5