
    daf                     T    d Z ddlmZ ddlmZ dddZ G d dej                        Zy	)
zFixer for unicode.

* Changes unicode to str and unichr to chr.

* If "...\u..." is not unicode literal change it into "...\\u...".

* Change u"..." into "...".

   )token)
fixer_basechrstr)unichrunicodec                   ,     e Zd ZdZdZ fdZd Z xZS )
FixUnicodeTzSTRING | 'unicode' | 'unichr'c                 T    t         t        |   ||       d|j                  v | _        y )Nunicode_literals)superr
   
start_treefuture_featuresr   )selftreefilename	__class__s      4/root/Python-3.12.4/Lib/lib2to3/fixes/fix_unicode.pyr   zFixUnicode.start_tree   s'    j$*4: 2d6J6J J    c           	      $   |j                   t        j                  k(  r*|j                         }t        |j
                     |_        |S |j                   t        j                  k(  r|j
                  }| j                  sY|d   dv rRd|v rNdj                  |j                  d      D cg c]$  }|j                  dd      j                  dd      & c}      }|d   d	v r|d
d  }||j
                  k(  r|S |j                         }||_        |S y c c}w )N    z'"\z\\z\uz\\uz\Uz\\UuU   )typer   NAMEclone_mappingvalueSTRINGr   joinsplitreplace)r   noderesultsnewvalvs         r   	transformzFixUnicode.transform   s    99

"**,C ,CIJYY%,,&**C((SVu_jj YYu-" IIeV,44UFC"  1v~!"gdjj **,CCIJ '"s   &)D)__name__
__module____qualname__BM_compatiblePATTERNr   r)   __classcell__)r   s   @r   r
   r
      s    M-GKr   r
   N)__doc__pgen2r    r   r   BaseFixr
    r   r   <module>r5      s.     %0## r   