ó
è¾bc           @   s›   d  Z  d d l Z d d „ Z d d „ Z d e j f d „  ƒ  YZ d e j f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z	 d S(   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ÿÿÿÿNt   strictc         C   s'   t  j t  j |  | ƒ d t |  ƒ f S(   Ni    (   t   codecst   BOM_UTF8t   utf_8_encodet   len(   t   inputt   errors(    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   encode   s    c         C   sU   d } |  d  t  j k r, |  d }  d } n  t  j |  | t ƒ \ } } | | | f S(   Ni    i   (   R   R   t   utf_8_decodet   True(   R   R   t   prefixt   outputt   consumed(    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   decode   s    
	t   IncrementalEncoderc           B   s;   e  Z d  d „ Z e d „ Z d „  Z d „  Z d „  Z RS(   R    c         C   s    t  j j |  | ƒ d |  _ d  S(   Ni   (   R   R   t   __init__t   first(   t   selfR   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR      s    c         C   sK   |  j  r0 d |  _  t j t j | |  j ƒ d St j | |  j ƒ d Sd  S(   Ni    (   R   R   R   R   R   (   R   R   t   final(    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR      s    		c         C   s   t  j j |  ƒ d |  _ d  S(   Ni   (   R   R   t   resetR   (   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   %   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   getstate)   s    c         C   s   | |  _  d  S(   N(   R   (   R   t   state(    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   setstate,   s    (   t   __name__t
   __module__R   t   FalseR   R   R   R   (    (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR      s
   		t   IncrementalDecoderc           B   s&   e  Z d  d „ Z d „  Z d „  Z RS(   R    c         C   s    t  j j |  | ƒ t |  _ d  S(   N(   R   t   BufferedIncrementalDecoderR   R	   R   (   R   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   0   s    c         C   sœ   |  j  r‰ t | ƒ d k  r= t j j | ƒ r1 d Sd  |  _  q‰ d  |  _  | d  t j k r‰ t j | d | | ƒ \ } } | | d f Sn  t j | | | ƒ S(   Ni   u    i    (   u    i    (   R   R   R   R   t
   startswitht   NoneR   (   R   R   R   R   R   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   _buffer_decode4   s    		c         C   s   t  j j |  ƒ t |  _ d  S(   N(   R   R   R   R	   R   (   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   D   s    (   R   R   R   R   R   (    (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   /   s   	t   StreamWriterc           B   s   e  Z d  „  Z d d „ Z RS(   c         C   s2   t  j j |  ƒ y
 |  ` Wn t k
 r- n Xd  S(   N(   R   R   R   R   t   AttributeError(   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   I   s
    
R    c         C   s   t  j |  _ t | | ƒ S(   N(   R   R   R   (   R   R   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   P   s    (   R   R   R   R   (    (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   H   s   	t   StreamReaderc           B   s   e  Z d  „  Z d d „ Z RS(   c         C   s2   t  j j |  ƒ y
 |  ` Wn t k
 r- n Xd  S(   N(   R   R!   R   R   R    (   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   U   s
    
R    c         C   s   t  | ƒ d k  r+ t j j | ƒ rt d SnI | d  t j k rt t j |  _ t j | d | ƒ \ } } | | d f St j |  _ t j | | ƒ S(   Ni   u    i    (   u    i    (   R   R   R   R   R   R   (   R   R   R   R   R   (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR   \   s    (   R   R   R   R   (    (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyR!   T   s   	c           C   s4   t  j d d d t d t d t d t d t d t ƒ S(	   Nt   names	   utf-8-sigR   R   t   incrementalencodert   incrementaldecodert   streamreadert   streamwriter(   R   t	   CodecInfoR   R   R   R   R!   R   (    (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   getregentryl   s    	(
   t   __doc__R   R   R   R   R   R   R   R!   R(   (    (    (    s)   /usr/lib/python2.7/encodings/utf_8_sig.pyt   <module>	   s   