�
��Vc4 c sR � d Z ddlmZ ddlmZmZ i dd�dd�dd�d d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd �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��ZdP� ZefdQ�Z G dR� dSej � � Z
dTS )Uz/Fix incompatible imports and module references.i )�
fixer_base)�Name�
attr_chainZStringIOZioZ cStringIOZcPickleZpickleZ__builtin__ZbuiltinsZcopy_regZcopyregZQueueZqueueZSocketServerZsocketserverZConfigParserZconfigparser�reprZreprlibZ
FileDialogztkinter.filedialogZtkFileDialogZSimpleDialogztkinter.simpledialogZtkSimpleDialogZtkColorChooserztkinter.colorchooserZtkCommonDialogztkinter.commondialogZDialogztkinter.dialogZTkdndztkinter.dndZtkFontztkinter.fontZtkMessageBoxztkinter.messageboxZScrolledTextztkinter.scrolledtextZTkconstantsztkinter.constantsZTixztkinter.tixZttkztkinter.ttkZTkinterZtkinterZ
markupbaseZ_markupbaseZ_winregZwinregZthreadZ_threadZdummy_threadZ
_dummy_threadZdbhashzdbm.bsdZdumbdbmzdbm.dumbZdbmzdbm.ndbmZgdbmzdbm.gnuZ xmlrpclibz
xmlrpc.clientZDocXMLRPCServerz
xmlrpc.serverzhttp.clientz
html.entitieszhtml.parserzhttp.cookieszhttp.cookiejarzhttp.serverZ
subprocessZcollectionszurllib.parsezurllib.robotparser)ZSimpleXMLRPCServerZhttplibZhtmlentitydefsZ
HTMLParserZCookieZ cookielibZBaseHTTPServerZSimpleHTTPServerZ
CGIHTTPServerZcommandsZ
UserStringZUserListZurlparseZrobotparserc s^ � dd� t t | � � � � z dz S )Nz(�|z))�joinZmapr )Zmembers� �2/usr/lib64/python3.11/lib2to3/fixes/fix_imports.py�
alternatesr = s( � �����#�d�G�,�,�-�-�-��3�3� c # s� K � d� d� | D � � � � }t | � � � � � }d|�d|�d�V � d|z V � d|�d|�d �V � d
|z V � d S )Nz | c s � g | ]}d |z ��S )zmodule_name='%s'� )�.0Zkeys r z
<listcomp>z!build_pattern.<locals>.<listcomp>B s � �G�G�G��-��3�G�G�Gr z$name_import=import_name< 'import' ((z;) |
multiple_imports=dotted_as_names< any* (z) 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< (zg) 'as' any > |
multiple_imports=dotted_as_names<
any* dotted_as_name< (z!) 'as' any > any* >) >
z3power< bare_with_attr=(%s) trailer<'.' any > any* >)r r Zkeys)�mappingZmod_listZ
bare_namess r �
build_patternr
A s� � � � ��z�z�G�G�w�G�G�G�H�H�H��G�L�L�N�N�+�+�J�J� ���8�8�8�%� %� %� %�� �� � � � � ���8�8�8�%� %� %� %� @�*�
L�L�L�L�L�Lr c sN � � e Zd ZdZdZeZdZd� Z� fd�Z � fd�Z
� fd�Zd� Z� xZ
S )�
FixImportsTi c sP � d� t | j � � � � S )Nr )r r
r )�selfr r r
zFixImports.build_pattern` s � ��x�x�
�d�l�3�3�4�4�4r c s� �� | � � � | _ t t | � � � � � d S �N)r
ZPATTERN�superr �compile_pattern)r � __class__s �r r zFixImports.compile_patternc s: �� � �)�)�+�+���
�j�$���/�/�1�1�1�1�1r c s� ��� t t | � � j � �|� � }|r1d|vr+t �fd�t |d� � D � � � � rdS |S dS )N�bare_with_attrc 3 s. �K � | ]} �|� � V � �d S r r
)r Zobj�matchs �r z <genexpr>z#FixImports.match.<locals>.<genexpr>q s+ �� � � �I�I�s���c�
�
�I�I�I�I�I�Ir ZparentF)r r r Zanyr )r �node�resultsr r s @�r r zFixImports.matchj sx ��� ��j�$�'�'�-���%��+�+��� � �w�.�
��I�I�I�I�j��x�.H�.H�I�I�I�I�I�
��u��N��ur c sh �� t t | � � � ||� � i | _ d S r )r r �
start_tree�replace)r ZtreeZfilenamer s �r r zFixImports.start_treev s. �� �
�j�$���*�*�4��:�:�:�����r c s� � |� d� � }|r�|j }| j | }|� t ||j �� � � � d|v r
|| j |<