
    Kg                     v    d dl mZmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
 ddlmZmZmZmZ  G d de          Zd	S )
    )OptionalUnion   )CharSetProber)CodingStateMachine)LanguageFilterMachineStateProbingState)HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELc                        e Zd ZdZej        fdeddf fdZd fdZede	e
         fd            Zede	e
         fd            Zdefd	Zd
eeef         defdZ xZS )EscCharSetProberz
    This CharSetProber uses a "code scheme" approach for detecting encodings,
    whereby easily recognizable escape or shift sequences are relied on to
    identify these encodings.
    lang_filterreturnNc                    t                                          |           g | _        | j        t          j        z  rX| j                            t          t                               | j                            t          t                               | j        t          j
        z  r,| j                            t          t                               | j        t          j        z  r,| j                            t          t                               d| _        d | _        d | _        t"          j        | _        |                                  d S )N)r   r   )super__init__	coding_smr   r   CHINESE_SIMPLIFIEDappendr   r   r   JAPANESEr   KOREANr   active_sm_count_detected_charset_detected_languager
   	DETECTING_statereset)selfr   	__class__s     Y/var/www/html/4nations/venv/lib/python3.11/site-packages/pip/_vendor/chardet/escprober.pyr   zEscCharSetProber.__init__0   s   [111n?? 	JN!!"4["A"ABBBN!!"45G"H"HIIIn55 	JN!!"45G"H"HIIIn33 	JN!!"45G"H"HIII 0415",

    c                     t                                                       | j        D ]}d|_        |                                 t	          | j                  | _        d | _        d | _        d S )NT)r   r    r   activelenr   r   r   )r!   r   r"   s     r#   r    zEscCharSetProber.reset@   sh     	 	I#IOO"4>22!%"&r$   c                     | j         S Nr   r!   s    r#   charset_namezEscCharSetProber.charset_nameI   s    %%r$   c                     | j         S r)   )r   r+   s    r#   languagezEscCharSetProber.languageM   s    &&r$   c                     | j         rdndS )NgGz?g        r*   r+   s    r#   get_confidencezEscCharSetProber.get_confidenceQ   s    -7tt47r$   byte_strc                    |D ]}| j         D ]}|j        s
|                    |          }|t          j        k    r?d|_        | xj        dz  c_        | j        dk    rt          j        | _        | j	        c c S n|t          j
        k    rAt          j        | _        |                                | _        |j        | _        | j	        c c S | j	        S )NFr   r   )r   r&   
next_stater	   ERRORr   r
   NOT_MEr   stateITS_MEFOUND_ITget_coding_state_machiner   r.   r   )r!   r1   cr   coding_states        r#   feedzEscCharSetProber.feedT   s     	& 	&A!^ & &	 ' (33A66<#555',I$((A-((+q00&2&9#z))))) 1 "\%888"."7DK-6-O-O-Q-QD*.7.@D+:%%%%%	 9&  zr$   )r   N)__name__
__module____qualname____doc__r   NONEr   r    propertyr   strr,   r.   floatr0   r   bytes	bytearrayr
   r<   __classcell__)r"   s   @r#   r   r   )   s         6D5H  N T       ' ' ' ' ' ' &hsm & & & X& '(3- ' ' ' X'8 8 8 8 8U5)#34         r$   r   N)typingr   r   charsetproberr   codingstatemachiner   enumsr   r	   r
   escsmr   r   r   r   r    r$   r#   <module>rN      s   8 # " " " " " " " ( ( ( ( ( ( 2 2 2 2 2 2 = = = = = = = = = =           = = = = =} = = = = =r$   