ó
b]c           @   sÛ   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z e re d  d l m Z m Z m	 Z	 n  e  j
 d f e  j d f e  j d f e  j d f e  j d f e  j d	 f e  j d
 f g Z e j d ƒ Z d „  Z d S(   iÿÿÿÿN(   t   MYPY_CHECK_RUNNING(   t   Listt   Tuplet   Texts   utf-8s   utf-16s	   utf-16-bes	   utf-16-les   utf-32s	   utf-32-bes	   utf-32-les   coding[:=]\s*([-\w.]+)c         C   sÎ   x: t  D]2 \ } } |  j | ƒ r |  t | ƒ j | ƒ Sq Wxl |  j d ƒ d  D]W } | d d !d k rQ t j | ƒ rQ t j | ƒ j ƒ  d j d ƒ } |  j | ƒ SqQ W|  j t j	 t
 ƒ pÊ t j ƒ  ƒ S(   sŠ   Check a bytes string for a BOM to correctly detect the encoding

    Fallback to locale.getpreferredencoding(False) like open() on Python3s   
i   i    i   t   #t   ascii(   t   BOMSt
   startswitht   lent   decodet   splitt   ENCODING_REt   searcht   groupst   localet   getpreferredencodingt   Falset   syst   getdefaultencoding(   t   datat   bomt   encodingt   line(    (    s;   lib/python2.7/site-packages/pip/_internal/utils/encoding.pyt   auto_decode   s    ""(   t   codecsR   t   reR   t   pip._internal.utils.typingR    t   typingR   R   R   t   BOM_UTF8t	   BOM_UTF16t   BOM_UTF16_BEt   BOM_UTF16_LEt	   BOM_UTF32t   BOM_UTF32_BEt   BOM_UTF32_LER   t   compileR   R   (    (    (    s;   lib/python2.7/site-packages/pip/_internal/utils/encoding.pyt   <module>   s   