3 ¥íX¾ã@s`ddlmZddlmZddlmZddlmZddlm Z ddl m Z m Z Gdd„deƒZ d S) é)ÚMultiByteCharSetProber)ÚCodingStateMachine)ÚSJISDistributionAnalysis)ÚSJISContextAnalysis)Ú SJIS_SM_MODEL)Ú ProbingStateÚ MachineStatecsPeZdZ‡fdd„Z‡fdd„Zedd„ƒZedd„ƒZd d „Zd d „Z ‡Z S) Ú SJISProbercs4tt|ƒjƒttƒ|_tƒ|_tƒ|_ |j ƒdS)N) Úsuperr Ú__init__rrÚ coding_smrÚdistribution_analyzerrÚcontext_analyzerÚreset)Úself)Ú __class__©ú /usr/lib/python3.6/sjisprober.pyr %s  zSJISProber.__init__cstt|ƒjƒ|jjƒdS)N)r r rr)r)rrrr,szSJISProber.resetcCs|jjS)N)rÚ charset_name)rrrrr0szSJISProber.charset_namecCsdS)NZJapaneser)rrrrÚlanguage4szSJISProber.languagecCsL�xtt|ƒƒD]ò}|jj||ƒ}|tjkrP|jjd|j|j |ƒt j |_ Pq|tj krft j|_ Pq|tjkr|jjƒ}|dkr¾|d|jd<|jj|jd|d…|ƒ|jj|j|ƒq|jj||d||d|…|ƒ|jj||d|d…|ƒqW|d|jd<|jt jk�rF|jjƒ�rF|jƒ|jk�rFt j|_ |jS)Nz!%s %s prober hit error at byte %séréééÿÿÿÿ)ÚrangeÚlenr Z next_staterZERRORZloggerÚdebugrrrZNOT_MEZ_stateZITS_MEZFOUND_ITZSTARTZget_current_charlenZ _last_charrÚfeedr ÚstateZ DETECTINGZgot_enough_dataÚget_confidenceZSHORTCUT_THRESHOLD)rZbyte_strÚiZ coding_stateZchar_lenrrrr8s6      zSJISProber.feedcCs|jjƒ}|jjƒ}t||ƒS)N)rrr Úmax)rZ context_confZ distrib_confrrrrYs  zSJISProber.get_confidence) Ú__name__Ú __module__Ú __qualname__r rÚpropertyrrrrÚ __classcell__rr)rrr $s     !r N)ZmbcharsetproberrZcodingstatemachinerZchardistributionrZjpcntxrZmbcssmrZenumsrrr rrrrÚs