File: //usr/lib/python3/dist-packages/chardet/__pycache__/escprober.cpython-310.pyc
o
    �H�_n  �                   @   sX   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZ G dd� de�Z
dS )�   )�
CharSetProber)�CodingStateMachine)�LanguageFilter�ProbingState�MachineState)�HZ_SM_MODEL�ISO2022CN_SM_MODEL�ISO2022JP_SM_MODEL�ISO2022KR_SM_MODELc                       sV   e Zd ZdZd� fdd�	Z� fdd�Zedd� �Zed	d
� �Zdd� Z	d
d� Z
�  ZS )�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 t| �j|d� g | _| jtj@ r"| j�tt	�� | j�tt
�� | jtj@ r0| j�tt�� | jtj
@ r>| j�tt�� d | _d | _d | _d | _| ��  d S )N)�lang_filter)�superr   �__init__�	coding_smr   r   �CHINESE_SIMPLIFIED�appendr   r   r   �JAPANESEr	   �KOREANr
   �active_sm_count�_detected_charset�_detected_language�_state�reset)�selfr   ��	__class__� �3/usr/lib/python3/dist-packages/chardet/escprober.pyr   *   s   zEscCharSetProber.__init__c                    sJ   t t| ���  | jD ]}|sq
d|_|��  q
t| j�| _d | _d | _d S )NT)	r
   r   r   r   �active�lenr   r   r   )r   r   r   r   r   r   :   s   
zEscCharSetProber.resetc                 C   �   | j S �N�r   �r   r   r   r   �charset_nameE   �   zEscCharSetProber.charset_namec                 C   r    r!   )r   r#   r   r   r   �languageI   r%   zEscCharSetProber.languagec                 C   s   | j rdS dS )Ng�G�z��?g        r"