
    4pf                      ^    d Z ddlmZ ddlmZmZ ddlmZmZm	Z	 ddiZ
 G d de	          Zd	S )
zCFix UserDict.

Incomplete!

TODO: base this on fix_urllib perhaps?
    )
fixer_base)Name
attr_chain)
alternatesbuild_pattern
FixImportsUserDictcollectionsc                   N     e Zd ZdZdZeZdZd Z fdZ	 fdZ
 fdZd Z xZS )FixUserdictT   c                 P    d                     t          | j                            S )N|)joinr   mapping)selfs    ^/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/libfuturize/fixes/fix_UserDict.pyr   zFixUserdict.build_pattern5   s    xxdl33444    c                     |                                  | _        t          t          |                                            d S N)r   PATTERNsuperr   compile_pattern)r   	__class__s    r   r   zFixUserdict.compile_pattern8   s:     ))++j$//11111r   c                     t          t          |           j         |          }|r1d|vr+t          fdt	          |d          D                       rdS |S dS )Nbare_with_attrc              3   .   K   | ]} |          V  d S r    ).0objmatchs     r   	<genexpr>z$FixUserdict.match.<locals>.<genexpr>F   s+      IIsc

IIIIIIr   parentF)r   r   r!   anyr   )r   noderesultsr!   r   s      @r   r!   zFixUserdict.match?   sv    j$''-%++ 	  w..IIIIjx.H.HIIIII /uNur   c                 h    t          t          |                               ||           i | _        d S r   )r   r   
start_treereplace)r   treefilenamer   s      r   r(   zFixUserdict.start_treeK   s.    j$**4:::r   c                    |                     d          }|r|j        }t          | j        |                   }|                    t          ||j                             d|v r
|| j        |<   d|v r/|                     |          }|r|                     ||           d S d S d S |d         d         }| j                             |j                  }|r+|                    t          ||j                             d S d S )Nmodule_name)prefixname_importmultiple_importsr   r   )	getvalueunicoder   r)   r   r.   r!   	transform)r   r%   r&   
import_modmod_namenew_name	bare_names          r   r4   zFixUserdict.transformO   s/   [[//
 	K!'Ht|H566HtHZ5FGGGHHH'' *2X&!W,,
 **T** 2NN411111 -,2 2   01!4I|''	88H K!!$x	8H"I"I"IJJJJJK Kr   )__name__
__module____qualname__BM_compatiblekeep_line_orderMAPPINGr   	run_orderr   r   r!   r(   r4   __classcell__)r   s   @r   r   r   *   s        MOG I5 5 52 2 2 2 2
 
 
 
 
    K K K K K K Kr   r   N)__doc__lib2to3r   lib2to3.fixer_utilr   r   lib2to3.fixes.fix_importsr   r   r   r>   r   r   r   r   <module>rE      s           / / / / / / / / K K K K K K K K K K 8<K <K <K <K <K* <K <K <K <K <Kr   