File: //usr/local/lib/python3.7/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-37.pyc
B
L��g� � @ sh d dl mZmZ ddlmZ ddlmZ ddlmZm Z m
Z
ddlmZm
Z
mZmZ G dd� de�Zd S )
� )�Optional�Union� )�
CharSetProber)�CodingStateMachine)�LanguageFilter�MachineState�ProbingState)�HZ_SM_MODEL�ISO2022CN_SM_MODEL�ISO2022JP_SM_MODEL�ISO2022KR_SM_MODELc s� e Zd ZdZejfedd�� fdd�
Zdd�� fdd�Zee e
d�d d
��Zee e
d�dd��Ze
d�d
d�Zeeef ed�dd�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.
N)�lang_filter�returnc s� t � j|d� g | _| jtj@ r@| j�tt�� | j�tt �� | jtj
@ r\| j�tt�� | jtj@ rx| j�tt
�� d| _d | _d | _tj| _| �� 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__� �A/tmp/pip-unpacked-wheel-hv55ucu3/pip/_vendor/chardet/escprober.pyr 0 s zEscCharSetProber.__init__)r c sD t � �� x| jD ]}d|_|�� qW t| j�| _d | _d | _d S )NT)r r r �active�lenr r r )r r )r r r! r @ s
zEscCharSetProber.resetc C s | j S )N)r )r r r r! �charset_nameI s zEscCharSetProber.charset_namec C s | j S )N)r )r r r r! �languageM s zEscCharSetProber.languagec C s | j r
dS dS )Ng�G�z��?g )r )r r r r! �get_confidenceQ s zEscCharSetProber.get_confidence)�byte_strr c C s� x�|D ]�}x�| j D ]x}|jsq|�|�}|tjkr`d|_| jd8 _| jdkr�tj| _| j S q|tj
krtj| _|�� | _
|j| _| j S qW qW | j S )NFr r )r r"