a ljn @ sX d dl mZ d dlmZ d dlmZmZmZ d dlm Z m Z mZmZ G dd deZ dS ) ) CharSetProber)CodingStateMachine)LanguageFilterProbingStateMachineState)HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELc sV e Zd ZdZd fdd Z fddZedd 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| jtt | jtt | jtj@ r`| jtt | jtj @ r|| jtt d | _d | _d | _d | _| d S )N)lang_filter)superr __init__ coding_smr r ZCHINESE_SIMPLIFIEDappendr r r ZJAPANESEr ZKOREANr active_sm_count_detected_charset_detected_language_statereset)selfr __class__ A/usr/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.pyr * s zEscCharSetProber.__init__c sJ t t| | jD ]}|sqd|_| qt| j| _d | _d | _d S )NT) r r r r activelenr r r )r r r r r r : s zEscCharSetProber.resetc C s | j S Nr 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 )NgGz?g r r r r r get_confidenceM s zEscCharSetProber.get_confidencec C s |D ]}| j D ]}|r|jsq||}|tjkrhd|_| jd8 _| jdkrtj| _| 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_strcr Zcoding_stater r r feedS s" zEscCharSetProber.feed)N)__name__ __module____qualname____doc__r r propertyr r! r" r&