\dRdZddlmZddlmZdddZGddejZd 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)unichrunicodec,eZdZdZdZfdZdZxZS) FixUnicodeTzSTRING | 'unicode' | 'unichr'cvtt|||d|jv|_dS)Nunicode_literals)superr start_treefuture_featuresr )selftreefilename __class__s *..\python\lib\lib2to3\fixes\fix_unicode.pyrzFixUnicode.start_trees9 j$**4::: 2d6J Jc|jtjkr-|}t|j|_|S|jtjkr|j}|js@|ddvr6d|vr2dd| dD}|ddvr |dd}||jkr|S|}||_|SdS)Nz'"\z\\cbg|],}|dddd-S)z\uz\\uz\Uz\\U)replace).0vs r z(FixUnicode.transform.. sF"""IIeV,,44UFCC"""ruU) typerNAMEclone_mappingvalueSTRINGr joinsplit)rnoderesultsnewvals r transformzFixUnicode.transforms 9 " "**,,C ,CIJ Y%, & &*C( SVu__jj"" YYu--"""1v~~!""gdj   **,,CCIJ' &r)__name__ __module__ __qualname__ BM_compatiblePATTERNrr, __classcell__)rs@rr r sVM-GKKKKKrr N)__doc__pgen2rrr#BaseFixr rrr8sy% 0 0#r