3 \��@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|�j||�d|jk|_dS)N�unicode_literals)�superr� start_treeZfuture_featuresr)�selfZtree�filename)� __class__��1/usr/lib64/python3.6/lib2to3/fixes/fix_unicode.pyr szFixUnicode.start_treecCs�|jtjkr$|j�}t|j|_|S|jtjkr�|j}|j rl|ddkrld|krldjdd�|j d�D��}|ddkr�|dd�}||jkr�|S|j�}||_|SdS) N�z'"�\z\\cSs g|]}|jdd�jdd��qS)z\uz\\uz\Uz\\U)�replace)�.0�vr r r� !sz(FixUnicode.transform..ZuU�) �typer�NAMEZclone�_mapping�value�STRINGr�join�split)r ZnodeZresults�new�valr r r� transforms"      zFixUnicode.transform)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNr r� __classcell__r r )r rrs rN)�__doc__Zpgen2r�rrZBaseFixrr r r r� s