a XC?h��@s<dZddlmZddlmZddd�ZGdd�dej�Zd S) z�Fixer 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)ZunichrZunicodecs,eZdZdZdZ�fdd�Zdd�Z�ZS)� FixUnicodeTzSTRING | 'unicode' | 'unichr'cs"tt|��||�d|jv|_dS)N�unicode_literals)�superr� start_treeZfuture_featuresr)�selfZtree�filename�� __class__��>/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_unicode.pyr szFixUnicode.start_treecCs�|jtjkr$|��}t|j|_|S|jtjkr�|j}|jsj|ddvrjd|vrjd�dd�|� d�D��}|ddvr�|dd�}||jkr�|S|��}||_|SdS) N�z'"�\z\\cSs g|]}|�dd��dd��qS)z\uz\\uz\Uz\\U)�replace)�.0�vrrr� s�z(FixUnicode.transform..ZuU�) �typer�NAMEZclone�_mapping�value�STRINGr�join�split)r ZnodeZresults�new�valrrr� transforms"    �   zFixUnicode.transform)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNr r � __classcell__rrr rrs rN)�__doc__Zpgen2r�rrZBaseFixrrrrr�s