
    @[h                     f    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 )   )CharSetProber)CodingStateMachine)LanguageFilterMachineStateProbingState)HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELc                   f     e Zd ZdZd	 fd	Z fdZed             Zed             Zd Z	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.
    Nc                    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 | _        d | _        |                                  d S )N)lang_filter)super__init__	coding_smr   r   CHINESE_SIMPLIFIEDappendr   r   r	   JAPANESEr
   KOREANr   active_sm_count_detected_charset_detected_language_statereset)selfr   	__class__s     l/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/pip/_vendor/chardet/escprober.pyr   zEscCharSetProber.__init__.   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#!%"&

    c                     t                                                       | j        D ] }|sd|_        |                                 !t	          | j                  | _        d | _        d | _        d S )NT)r   r   r   activelenr   r   r   )r   r   r   s     r   r   zEscCharSetProber.reset>   ss     	 	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   c                    |D ]}| j         D ]}|r|j        s|                    |          }|t          j        k    r?d|_        | xj        dz  c_        | j        dk    rt          j        | _        | j	        c c S p|t          j
        k    rAt          j        | _        |                                | _        |j        | _        | j	        c c S | j	        S )NFr       )r   r!   
next_stater   ERRORr   r   NOT_MEr   stateITS_MEFOUND_ITget_coding_state_machiner   r)   r   )r   byte_strcr   coding_states        r   feedzEscCharSetProber.feedT   s    	& 	&A!^ & &	  	(8 (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$   )__name__
__module____qualname____doc__r   r   propertyr'   r)   r+   r8   __classcell__)r   s   @r   r   r   '   s               	' 	' 	' 	' 	' & & X& ' ' X'8 8 8      r   r   N)charsetproberr   codingstatemachiner   enumsr   r   r   escsmr   r	   r
   r   r    r   r   <module>rD      s   8 ) ( ( ( ( ( 2 2 2 2 2 2 = = = = = = = = = =           ? ? ? ? ?} ? ? ? ? ?r   