VYã@sFddlmZddlmZmZmZGdd„deƒZdS)é)Ú CharSetProber)ÚCharacterCategoryÚ ProbingStateÚSequenceLikelihoodcsŽeZdZdZdZdZdZdd‡fdd†Z‡fd d †Ze d d „ƒZ e d d„ƒZ dd„Z dd„Z ‡S)ÚSingleByteCharSetProberé@igffffffî?gš™™™™™©?FNcsitt|ƒjƒ||_||_||_d|_d|_d|_d|_ d|_ |j ƒdS)N) ÚsuperrÚ__init__Ú_modelÚ _reversedÚ _name_proberÚ _last_orderÚ _seq_countersÚ _total_seqsÚ _total_charÚ _freq_charÚreset)ÚselfÚmodelÚreversedZ name_prober)Ú __class__©úM/tmp/pip-build-04bmskau/requests/requests/packages/chardet/sbcharsetprober.pyr 's        z SingleByteCharSetProber.__init__csQtt|ƒjƒd|_dgtjƒ|_d|_d|_d|_ dS)Néÿé) rrrr rZget_num_categoriesrrrr)r)rrrr5s    zSingleByteCharSetProber.resetcCs"|jr|jjS|jdSdS)NÚ charset_name)r rr )rrrrr?s  z$SingleByteCharSetProber.charset_namecCs'|jr|jjS|jjdƒSdS)NÚlanguage)r rr Úget)rrrrrFs  z SingleByteCharSetProber.languagec CsÙ|jds|j|ƒ}|s)|jS|jd}xñt|ƒD]ã\}}||}|tjkrw|jd7_||jkr|jd7_|j |jkr|j d7_ |j sç|j |j|}|jd|}n%||j|j }|jd|}|j |d7<||_ qCW|jd}|jt jkrÒ|j |jkrÒ|jƒ}||jkr›|jjd||ƒt j|_n7||jkrÒ|jjd|||jƒt j|_|jS)NZkeep_english_letterÚchar_to_order_maprZprecedence_matrixrz$%s confidence = %s, we have a winnerz9%s confidence = %s, below negative shortcut threshhold %s)r Zfilter_international_wordsÚstateÚ enumeraterZCONTROLrÚ SAMPLE_SIZErr rr rrZ DETECTINGÚSB_ENOUGH_REL_THRESHOLDÚget_confidenceÚPOSITIVE_SHORTCUT_THRESHOLDÚloggerÚdebugZFOUND_ITÚ_stateÚNEGATIVE_SHORTCUT_THRESHOLDZNOT_ME) rZbyte_strrÚiÚcÚorderrrZ confidencerrrÚfeedMsF            zSingleByteCharSetProber.feedcCsed}|jdkrad|jtj|j|jd}||j|j}|dkrad}|S)Ng{®Gáz„?rgð?Ztypical_positive_ratiog®Gáz®ï?)rrrZPOSITIVEr rr)rÚrrrrr#|s& z&SingleByteCharSetProber.get_confidence)Ú__name__Ú __module__Ú __qualname__r!r"r$r(r rÚpropertyrrr,r#rr)rrr!s   /rN)Z charsetproberrZenumsrrrrrrrrÚs