B <_9Ynã@sXddlmZddlmZddlmZmZmZddlm Z m Z m Z m Z Gdd„deƒZ dS)é)Ú CharSetProber)ÚCodingStateMachine)ÚLanguageFilterÚ ProbingStateÚ MachineState)Ú HZ_SM_MODELÚISO2022CN_SM_MODELÚISO2022JP_SM_MODELÚISO2022KR_SM_MODELcsVeZdZdZd‡fdd„ Z‡fdd„Zedd„ƒZed d „ƒZd d „Z d d„Z ‡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. Ncs tt|ƒj|d�g|_|jtj@rD|j tt ƒ¡|j tt ƒ¡|jtj @r`|j tt ƒ¡|jtj @r||j ttƒ¡d|_d|_d|_d|_| ¡dS)N)Ú lang_filter)Úsuperr Ú__init__Ú coding_smr rZCHINESE_SIMPLIFIEDÚappendrrrZJAPANESEr 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__csNtt|ƒ ¡x"|jD]}|s qd|_| ¡qWt|jƒ|_d|_d|_dS)NT) r r rrÚactiveÚlenrrr)rr)rrrr:s   zEscCharSetProber.resetcCs|jS)N)r)rrrrÚ charset_nameEszEscCharSetProber.charset_namecCs|jS)N)r)rrrrÚlanguageIszEscCharSetProber.languagecCs|jr dSdSdS)Ng®Gáz®ï?g)r)rrrrÚget_confidenceMszEscCharSetProber.get_confidencecCsœx”|D]Œ}x†|jD]|}|r|js"q| |¡}|tjkrdd|_|jd8_|jdkrŽtj|_|j Sq|tj krtj |_|  ¡|_ |j|_|j SqWqW|j S)NFré)rrZ next_staterÚERRORrrZNOT_MErÚstateZITS_MEZFOUND_ITZget_coding_state_machinerrr)rZbyte_strÚcrZ coding_staterrrÚfeedSs"        zEscCharSetProber.feed)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrÚpropertyrrrr#Ú __classcell__rr)rrr #s  r N)Z charsetproberrZcodingstatemachinerZenumsrrrZescsmrrr r r rrrrÚs