U
    9g                     @   s   d dl mZmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZ d	d
dddgZdeeef ee
ddd
Zdeeef eeee
 dddZdS )    )ListUnion   )CharSetGroupProber)CharSetProber)
InputState)
ResultDict)UniversalDetector)VERSION__version__r	   detect
detect_allr   r
   F)byte_strshould_rename_legacyreturnc                 C   sJ   t | ts.t | ts&tdt|  t| } t|d}||  | S )aV  
    Detect the encoding of the given byte string.

    :param byte_str:     The byte sequence to examine.
    :type byte_str:      ``bytes`` or ``bytearray``
    :param should_rename_legacy:  Should we rename legacy encodings
                                  to their more modern equivalents?
    :type should_rename_legacy:   ``bool``
    1Expected object of type bytes or bytearray, got: r   )
isinstance	bytearraybytes	TypeErrortyper	   feedclose)r   r   detector r   4/tmp/pip-unpacked-wheel-j4j5orv4/chardet/__init__.pyr      s    



)r   ignore_thresholdr   r   c           	      C   s8  t | ts.t | ts&tdt|  t| } t|d}||  |  |jt	j
kr0g }g }|jD ]0}t |tr|dd |jD  qf|| qf|D ]t}|s| |jkr|jpd}| }|dr|jr|j||}|r|j| |}||| |jd qt|dkr0t|d	d
 dS |jgS )aD  
    Detect all the possible encodings of the given byte string.

    :param byte_str:          The byte sequence to examine.
    :type byte_str:           ``bytes`` or ``bytearray``
    :param ignore_threshold:  Include encodings that are below
                              ``UniversalDetector.MINIMUM_THRESHOLD``
                              in results.
    :type ignore_threshold:   ``bool``
    :param should_rename_legacy:  Should we rename legacy encodings
                                  to their more modern equivalents?
    :type should_rename_legacy:   ``bool``
    r   r   c                 s   s   | ]
}|V  qd S )Nr   ).0pr   r   r   	<genexpr>W   s     zdetect_all.<locals>.<genexpr> ziso-8859)encoding
confidencelanguager   c                 S   s
   | d  S )Nr#   r   )resultr   r   r   <lambda>q       zdetect_all.<locals>.<lambda>)key)r   r   r   r   r   r	   r   r   Zinput_stater   	HIGH_BYTEZcharset_probersr   extendprobersappendget_confidenceMINIMUM_THRESHOLDcharset_namelower
startswithZhas_win_bytesISO_WIN_MAPgetZ
LEGACY_MAPr$   lensortedr%   )	r   r   r   r   resultsr+   proberr/   lower_charset_namer   r   r   r   5   sN    






  N)F)FF)typingr   r   charsetgroupproberr   charsetproberr   enumsr   Z
resultdictr   universaldetectorr	   versionr
   r   __all__r   r   boolr   r   r   r   r   r   <module>   s*    
   
