ó s®¸Qc@s›dZddlZdd„Zdd„Zdejfd„ƒYZdejfd „ƒYZd ejfd „ƒYZd ejfd „ƒYZd„Z dS(s Python 'utf-8-sig' Codec This work similar to UTF-8 with the following changes: * On encoding/writing a UTF-8 encoded BOM will be prepended/written as the first three bytes. * On decoding/reading if the first three bytes are a UTF-8 encoded BOM, these bytes will be skipped. iÿÿÿÿNtstrictcCs'tjtj||ƒdt|ƒfS(Ni(tcodecstBOM_UTF8t utf_8_encodetlen(tinputterrors((s)/sys/lib/python2.7/encodings/utf_8_sig.pytencodescCsUd}|d tjkr,|d}d}ntj||tƒ\}}|||fS(Nii(RRt utf_8_decodetTrue(RRtprefixtoutputtconsumed((s)/sys/lib/python2.7/encodings/utf_8_sig.pytdecodes   tIncrementalEncodercBs;eZdd„Zed„Zd„Zd„Zd„ZRS(RcCs tjj||ƒd|_dS(Ni(RRt__init__tfirst(tselfR((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRscCsK|jr0d|_tjtj||jƒdStj||jƒdSdS(Ni(RRRRR(RRtfinal((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRs  cCstjj|ƒd|_dS(Ni(RRtresetR(R((s)/sys/lib/python2.7/encodings/utf_8_sig.pyR%scCs|jS(N(R(R((s)/sys/lib/python2.7/encodings/utf_8_sig.pytgetstate)scCs ||_dS(N(R(Rtstate((s)/sys/lib/python2.7/encodings/utf_8_sig.pytsetstate,s(t__name__t __module__RtFalseRRRR(((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRs     tIncrementalDecodercBs&eZdd„Zd„Zd„ZRS(RcCs tjj||ƒt|_dS(N(RtBufferedIncrementalDecoderRR R(RR((s)/sys/lib/python2.7/encodings/utf_8_sig.pyR0scCsœ|jr‰t|ƒdkr=tjj|ƒr1dSd|_q‰d|_|d tjkr‰tj|d||ƒ\}}||dfSntj|||ƒS(Niui(ui(RRRRt startswithtNoneR(RRRRR R ((s)/sys/lib/python2.7/encodings/utf_8_sig.pyt_buffer_decode4s   cCstjj|ƒt|_dS(N(RRRR R(R((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRDs(RRRRR(((s)/sys/lib/python2.7/encodings/utf_8_sig.pyR/s  t StreamWritercBseZd„Zdd„ZRS(cCs2tjj|ƒy |`Wntk r-nXdS(N(RRRRtAttributeError(R((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRIs   RcCstj|_t||ƒS(N(RRR(RRR((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRPs (RRRR(((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRHs t StreamReadercBseZd„Zdd„ZRS(cCs2tjj|ƒy |`Wntk r-nXdS(N(RR!RR R (R((s)/sys/lib/python2.7/encodings/utf_8_sig.pyRUs   RcCst|ƒdkr+tjj|ƒrtdSnI|d tjkrttj|_tj|d|ƒ\}}||dfStj|_tj||ƒS(Niui(ui(RRRRRR (RRRR R ((s)/sys/lib/python2.7/encodings/utf_8_sig.pyR \s  (RRRR (((s)/sys/lib/python2.7/encodings/utf_8_sig.pyR!Ts cCs4tjdddtdtdtdtdtdtƒS( Ntnames utf-8-sigRR tincrementalencodertincrementaldecodert streamreadert streamwriter(Rt CodecInfoRR RRR!R(((s)/sys/lib/python2.7/encodings/utf_8_sig.pyt getregentryls ( t__doc__RRR RRRRR!R((((s)/sys/lib/python2.7/encodings/utf_8_sig.pyt s