B
<_9Yn ã @ 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@ rD| j tt ƒ¡ | j tt
ƒ¡ | jtj@ r`| j ttƒ¡ | jtj
@ r|| j ttƒ¡ d | _d | _d | _d | _| ¡ d S )N)Úlang_filter)Úsuperr Ú__init__Ú coding_smr r ZCHINESE_SIMPLIFIEDÚappendr r r ZJAPANESEr ZKOREANr
Úactive_sm_countÚ_detected_charsetÚ_detected_languageÚ_stateÚreset)Úselfr )Ú __class__© úB/opt/alt/python37/lib/python3.7/site-packages/chardet/escprober.pyr * s zEscCharSetProber.__init__c sN t t| ƒ ¡ x"| jD ]}|s qd|_| ¡ qW 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 s | j S )N)r )r r r r Úcharset_nameE s zEscCharSetProber.charset_namec C s | j S )N)r )r r r r ÚlanguageI s zEscCharSetProber.languagec C s | j r
dS dS d S )Ng®Gáz®ï?g )r )r r r r Úget_confidenceM s zEscCharSetProber.get_confidencec C sœ x”|D ]Œ}x†| j D ]|}|r|js"q| |¡}|tjkrdd|_| jd8 _| jdkrŽtj| _| j S q|tj
krtj| _| ¡ | _
|j| _| j S qW qW | j S )NFr é )r r Z
next_stater ÚERRORr r ZNOT_MEr ÚstateZITS_MEZFOUND_ITZget_coding_state_machiner r r )r Zbyte_strÚcr Zcoding_stater r r ÚfeedS s"
zEscCharSetProber.feed)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r r Úpropertyr r r r# Ú
__classcell__r r )r r r # s r N)Z
charsetproberr Zcodingstatemachiner Zenumsr r r Zescsmr r r r
r r r r r Ú