KŠMaèã@sUdZddlmZddlmZddddiZGdd „d ejƒ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_baseZunichrÚchrZunicodeÚstrcs:eZdZdZdZ‡fdd†Zdd„Z‡S)Ú FixUnicodeTzSTRING | 'unicode' | 'unichr'cs/tt|ƒj||ƒd|jk|_dS)NÚunicode_literals)ÚsuperrÚ start_treeZfuture_featuresr)ÚselfZtreeÚfilename)Ú __class__©ú>/opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_unicode.pyr szFixUnicode.start_treecCsè|jtjkr2|jƒ}t|j|_|S|jtjkrä|j}|j r˜|ddkr˜d|kr˜djdd„|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ú !s z(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 rr r )r rrs rN)Ú__doc__Zpgen2rÚrrZBaseFixrr r r rÚ s