ó
Đ˛Ebc           @   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   Textt   Tuples   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 Wx |  j d  d  D]o } | d d !d k rQ t j |  rQ t j |  } | d k	 s t  | 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   asciiN(   t   BOMSt
   startswitht   lent   decodet   splitt   ENCODING_REt   searcht   Nonet   AssertionErrort   groupst   localet   getpreferredencodingt   Falset   syst   getdefaultencoding(   t   datat   bomt   encodingt   linet   result(    (    s9   /tmp/pip-build-UPPWic/pip/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   (    (    (    s9   /tmp/pip-build-UPPWic/pip/pip/_internal/utils/encoding.pyt   <module>   s   