o H_n@sXddlmZddlmZddlmZmZmZddlm Z m Z m Z m Z GdddeZ dS)) CharSetProber)CodingStateMachine)LanguageFilter ProbingState MachineState) HZ_SM_MODELISO2022CN_SM_MODELISO2022JP_SM_MODELISO2022KR_SM_MODELcsVeZdZdZdfdd ZfddZeddZed d Zd d Z d dZ Z S)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. Ncstt|j|dg|_|jtj@r"|jtt |jtt |jtj @r0|jtt |jtj @r>|jttd|_d|_d|_d|_|dS)N) lang_filter)superr __init__ coding_smr rCHINESE_SIMPLIFIEDappendrrrJAPANESEr KOREANr active_sm_count_detected_charset_detected_language_statereset)selfr  __class__3/usr/lib/python3/dist-packages/chardet/escprober.pyr*s    zEscCharSetProber.__init__csJtt||jD] }|sq d|_|q t|j|_d|_d|_dS)NT) r r rractivelenrrr)rrrrrr:s    zEscCharSetProber.resetcC|jSNrrrrr charset_nameEzEscCharSetProber.charset_namecCr r!)rr#rrrlanguageIr%zEscCharSetProber.languagecCs|jrdSdS)NgGz?gr"r#rrrget_confidenceMszEscCharSetProber.get_confidencecCs|D]L}|jD]F}|r|jsq||}|tjkr4d|_|jd8_|jdkr3tj|_|j Sq|tj krMtj |_| |_ |j|_|j Sqq|j S)NFr)rr next_staterERRORrrNOT_MErstateITS_MEFOUND_ITget_coding_state_machinerr&r)rbyte_strcr coding_staterrrfeedSs(       zEscCharSetProber.feedr!) __name__ __module__ __qualname____doc__rrpropertyr$r&r'r3 __classcell__rrrrr #s   r N) charsetproberrcodingstatemachinerenumsrrrescsmrrr r r rrrrs