a DOg@s<dZddlmZddlmZdddZGdddejZd S) 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_basechrstr)ZunichrZunicodecs,eZdZdZdZfddZddZZS) FixUnicodeTzSTRING | 'unicode' | 'unichr'cs"tt|||d|jv|_dS)Nunicode_literals)superr start_treeZfuture_featuresr)selfZtreefilename __class__>/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_unicode.pyr szFixUnicode.start_treecCs|jtjkr$|}t|j|_|S|jtjkr|j}|jsj|ddvrjd|vrjddd| dD}|ddvr|dd}||jkr|S|}||_|SdS) Nz'"\z\\cSs g|]}|ddddqS)z\uz\\uz\Uz\\U)replace).0vrrr sz(FixUnicode.transform..ZuU) typerNAMEZclone_mappingvalueSTRINGrjoinsplit)r ZnodeZresultsnewvalrrr transforms"       zFixUnicode.transform)__name__ __module__ __qualname__Z BM_compatibleZPATTERNr r __classcell__rrr rrs rN)__doc__Zpgen2rrrZBaseFixrrrrrs