a
çÂ=bn ã @ 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__© ú5/usr/lib/python3.9/site-packages/chardet/escprober.pyr * s zEscCharSetProber.__init__c sJ t t| ƒ ¡ | jD ]}|sqd|_| ¡ qt| 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 r )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¤ |D ]˜}| j D ]Œ}|r|jsq| |¡}|tjkrhd|_| jd8 _| jdkrštj| _| j S q|tj
krtj| _| ¡ | _
|j| _| j S qq| j S )NFr é )r r Z
next_stater ZERRORr 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&