
0c@_                 @   s   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z e rb d  d l m Z m Z m	 Z	 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 d   Z d S)    N)MYPY_CHECK_RUNNING)ListTupleTextzutf-8zutf-16z	utf-16-bez	utf-16-lezutf-32z	utf-32-bez	utf-32-les   coding[:=]\s*([-\w.]+)c             C   s   x@ t  D]8 \ } } |  j |  r |  t |  d  j |  Sq Wx |  j d  d d  D]r } | d d  d k r] t j |  r] t j |  } | d k	 s t  | j   d j d  } |  j |  Sq] W|  j t	 j
 d  p t j    S)	zCheck a bytes string for a BOM to correctly detect the encoding

    Fallback to locale.getpreferredencoding(False) like open() on Python3Ns   
   r         #asciiF)BOMS
startswithlendecodesplitENCODING_REsearchAssertionErrorgroupslocalegetpreferredencodingsysgetdefaultencoding)databomencodinglineresult r   ;/tmp/pip-build-jynh7p1z/pip/pip/_internal/utils/encoding.pyauto_decode   s    ! %r   )codecsr   rer   Zpip._internal.utils.typingr   Ztypingr   r   r   BOM_UTF8	BOM_UTF16BOM_UTF16_BEBOM_UTF16_LE	BOM_UTF32BOM_UTF32_BEBOM_UTF32_LEr
   compiler   r   r   r   r   r   <module>   s   