a
    Oc                     @   sX   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 deZdS )   )CharSetProber)CodingStateMachine)LanguageFilterMachineStateProbingState)HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELc                       sV   e Zd ZdZd fdd	Z fddZedd Zed	d
 Zdd Z	dd Z
  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                    s   t  j|d g | _| jtj@ r@| jtt | jtt	 | jtj
@ r\| jtt | jtj@ rx| 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__ U/var/www/html/megastudio/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.pyr   .   s    zEscCharSetProber.__init__c                    sF   t    | jD ]}|sqd|_|  qt| j| _d | _d | _d S )NT)r   r   r   activelenr   r   r   )r   r   r   r   r   r   >   s    


zEscCharSetProber.resetc                 C   s   | j S Nr   r   r   r   r   charset_nameI   s    zEscCharSetProber.charset_namec                 C   s   | j S r    )r   r"   r   r   r   languageM   s    zEscCharSetProber.languagec                 C   s   | j r
dS dS )NgGz?g        r!   r"   r   r   r   get_confidenceQ   s    zEscCharSetProber.get_confidencec                 C   s   |D ]}| j D ]}|r|jsq||}|tjkrhd|_|  jd8  _| jdkrtj| _| j	    S q|tj
krtj| _| | _|j| _| j	    S qq| j	S )NFr       )r   r   Z
next_stater   ERRORr   r   NOT_MEr   stateITS_MEFOUND_ITZget_coding_state_machiner   r$   r   )r   byte_strcr   Zcoding_stater   r   r   feedT   s"    






zEscCharSetProber.feed)N)__name__
__module____qualname____doc__r   r   propertyr#   r$   r%   r.   __classcell__r   r   r   r   r   '   s   

r   N)charsetproberr   Zcodingstatemachiner   enumsr   r   r   Zescsmr   r   r	   r
   r   r   r   r   r   <module>   s   