B � f4�1@s�dZddlmZddlmZmZddddddd d d d d d d ddddddddddddddddddd d!d"d"d#d$d%d&d'd(d(d(d)d*d*d+d,d-�0Zd.d/�Zefd0d1�ZGd2d3�d3ej �Z d4S)5z/Fix incompatible imports and module references.�)� fixer_base)�Name� attr_chain�io�pickle�builtins�copyregZqueueZ socketserverZ configparser�reprlibztkinter.filedialogztkinter.simpledialogztkinter.colorchooserztkinter.commondialogztkinter.dialogz tkinter.dndz tkinter.fontztkinter.messageboxztkinter.scrolledtextztkinter.constantsz tkinter.tixz tkinter.ttkZtkinterZ _markupbase�winreg�_threadZ _dummy_threadzdbm.bsdzdbm.dumbzdbm.ndbmzdbm.gnuz xmlrpc.clientz xmlrpc.serverz http.clientz html.entitiesz html.parserz http.cookieszhttp.cookiejarz http.server� subprocess� collectionsz urllib.parsezurllib.robotparser)0�StringIOZ cStringIOZcPickleZ __builtin__Zcopy_regZQueueZ SocketServerZ ConfigParser�reprZ FileDialogZ tkFileDialogZ SimpleDialogZtkSimpleDialogZtkColorChooserZtkCommonDialogZDialogZTkdndZtkFontZ tkMessageBoxZ ScrolledTextZ TkconstantsZTixZttkZTkinterZ markupbase�_winregZthreadZ dummy_threadZdbhashZdumbdbmZdbmZgdbmZ xmlrpclibZDocXMLRPCServerZSimpleXMLRPCServerZhttplibZhtmlentitydefsZ HTMLParserZCookieZ cookielibZBaseHTTPServerZSimpleHTTPServerZ CGIHTTPServerZcommands� UserString�UserListZurlparseZ robotparsercCsdd�tt|��dS)N�(�|�))�join�mapr)�members�r�>/opt/alt/python37/lib64/python3.7/lib2to3/fixes/fix_imports.py� alternates=srccsTd�dd�|D��}t|���}d||fVd|Vd||fVd|VdS)Nz | cSsg|] }d|�qS)zmodule_name='%s'r)�.0�keyrrr� Bsz!build_pattern..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* >)rr�keys)�mappingZmod_listZ bare_namesrrr� build_patternAs   r!csTeZdZdZdZeZdZdd�Z�fdd�Z �fdd�Z �fd d �Z d d �Z �Z S) � FixImportsT�cCsd�t|j��S)Nr)rr!r )�selfrrrr!`szFixImports.build_patterncs|��|_tt|���dS)N)r!ZPATTERN�superr"�compile_pattern)r$)� __class__rrr&cs zFixImports.compile_patterncsHtt|�j��|�}|rDd|kr@t�fdd�t|d�D��r@dS|SdS)N�bare_with_attrc3s|]}�|�VqdS)Nr)r�obj)�matchrr� qsz#FixImports.match..�parentF)r%r"r*�anyr)r$�node�results)r')r*rr*js zFixImports.matchcstt|��||�i|_dS)N)r%r"� start_tree�replace)r$Ztree�filename)r'rrr0vszFixImports.start_treecCs�|�d�}|rh|j}|j|}|�t||jd��d|krD||j|<d|kr�|�|�}|r�|�||�n2|dd}|j�|j�}|r�|�t||jd��dS)NZ module_name)�prefixZ name_importZmultiple_importsr(�)�get�valuer r1rr3r*� transform)r$r.r/Z import_modZmod_name�new_nameZ bare_namerrrr7zs     zFixImports.transform)�__name__� __module__� __qualname__Z BM_compatibleZkeep_line_order�MAPPINGr Z run_orderr!r&r*r0r7� __classcell__rr)r'rr"Us  r"N) �__doc__�rZ fixer_utilrrr<rr!ZBaseFixr"rrrr�sj