VYnã@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_MODELcsyeZdZdZd‡fdd†Z‡fdd†Zedd„ƒZed d „ƒZd d „Z d d„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|ƒjd|ƒg|_|jtj@r^|jjtt ƒƒ|jjtt ƒƒ|jtj @r„|jjtt ƒƒ|jtj @rª|jjttƒƒd|_d|_d|_d|_|jƒdS)NÚ lang_filter)Úsuperr Ú__init__Ú coding_smr rZCHINESE_SIMPLIFIEDÚappendrrrZJAPANESEr ZKOREANr Úactive_sm_countÚ_detected_charsetÚ_detected_languageÚ_stateÚreset)Úselfr )Ú __class__©úG/tmp/pip-build-04bmskau/requests/requests/packages/chardet/escprober.pyr*s     zEscCharSetProber.__init__csktt|ƒjƒx-|jD]"}|s,qd|_|jƒ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_confidenceMs zEscCharSetProber.get_confidencecCsØxÎ|D]Æ}x½|jD]²}| s|j r1q|j|ƒ}|tjkrŒd|_|jd8_|jdkrÉtj|_|j Sq|tj krtj |_|j ƒ|_ |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) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrÚpropertyrrrr#rr)rrr #s   r N)Z charsetproberrZcodingstatemachinerZenumsrrrZescsmrrr r r rrrrÚs"