
    Jwg              
           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 g d	Z	 dd
eeef   dede
fdZ	 	 dd
eeef   dededee
   fdZy)    )ListUnion   )CharSetGroupProber)CharSetProber)
InputState)
ResultDict)UniversalDetector)VERSION__version__)r
   detect
detect_allr   r   byte_strshould_rename_legacyreturnc                     t        | t              s2t        | t              st        dt	        |              t        |       } t        |      }|j                  |        |j                         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   detectors      G/var/www/horilla/myenv/lib/python3.12/site-packages/chardet/__init__.pyr   r      sd     h	*(E*CDNCST  X& 6JKHMM(>>    ignore_thresholdc                    t        | t              s2t        | t              st        dt	        |              t        |       } t        |      }|j                  |        |j                          |j                  t        j                  k(  rNg }g }|j                  D ]F  }t        |t              r#|j                  d |j                  D               6|j                  |       H |D ]  }|s|j!                         |j"                  kD  s#|j$                  xs d}|j'                         }|j)                  d      r(|j*                  r|j,                  j/                  ||      }|r*|j0                  j/                  |j'                         |      }|j                  ||j!                         |j2                  d        t5        |      dkD  rt7        |d 	      S |j8                  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              3       K   | ]  }|  y w)N ).0ps     r   	<genexpr>zdetect_all.<locals>.<genexpr>W   s     9Qq9s    ziso-8859)encoding
confidencelanguager   c                     | d    S )Nr(   r"   )results    r   <lambda>zdetect_all.<locals>.<lambda>q   s    vl7K6K r   )key)r   r   r   r   r   r
   r   r   input_stater   	HIGH_BYTEcharset_probersr   extendprobersappendget_confidenceMINIMUM_THRESHOLDcharset_namelower
startswithhas_win_bytesISO_WIN_MAPget
LEGACY_MAPr)   lensortedr+   )	r   r   r   r   resultsr2   proberr6   lower_charset_names	            r   r   r   5   s   $ h	*(E*CDNCST  X& 6JKHMM(NNz333$&').. 	'F&"459&..99v&		'
  	F6#8#8#:X=W=W#W%228b%1%7%7%9" &00<AWAW#+#7#7#;#;*L$L (#+#6#6#:#:$**,l$L $0&,&;&;&=$*OO	, w<!''KLLOOr   N)F)FF)typingr   r   charsetgroupproberr   charsetproberr   enumsr   
resultdictr	   universaldetectorr
   versionr   r   __all__r   r   boolr   r   r"   r   r   <module>rK      s   $  2 (  " 0 )
Q EJE9$%=A2 #!&>E9$%>> > 
*	>r   