î j fèã@sWdZddlmZddlmZidd6dd6ZGdd „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_baseÚchrZunichrÚstrZunicodecs: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/python34/lib64/python3.4/lib2to3/fixes/fix_unicode.pyr szFixUnicode.start_treecCsî|jtjkr2|jƒ}t|j|_|S|jtjkrê|j}|j r›|ddkr›d|kr›djdd„|j dƒDƒƒ}n|ddkr¾|dd…}n||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