a n_@sNddlmZddlmZddlmZmZmZedgdZGdddeZ d S) ) namedtuple) CharSetProber)CharacterCategory ProbingStateSequenceLikelihoodSingleByteCharSetModel) charset_namelanguagechar_to_order_maplanguage_modeltypical_positive_ratiokeep_ascii_lettersZalphabetcsbeZdZdZdZdZdZdfdd Zfd d Ze d d Z e d dZ ddZ ddZ ZS)SingleByteCharSetProber@igffffff?g?FNcsJtt|||_||_||_d|_d|_d|_d|_ d|_ | dSN) superr__init___model _reversed _name_prober _last_order _seq_counters _total_seqs _total_char _freq_charreset)selfZmodelreversedZ name_prober __class__9/usr/lib/python3/dist-packages/chardet/sbcharsetprober.pyr3sz SingleByteCharSetProber.__init__cs:tt|d|_dgt|_d|_d|_d|_ dS)Nr) rrrrrZget_num_categoriesrrrrrrr!r"rAs zSingleByteCharSetProber.resetcCs|jr|jjS|jjSdSr)rr rr$r!r!r"r Ksz$SingleByteCharSetProber.charset_namecCs|jr|jjS|jjSdSr)rr rr$r!r!r"r Rsz SingleByteCharSetProber.languagec CsJ|jjs||}|s|jS|jj}|jj}|D]}||tj}|tj krZ|j d7_ ||j kr|j d7_ |j |j kr|jd7_|js||j |}n|||j }|j|d7<||_ q0|jj}|jtjkrD|j|jkrD|}||jkr|jd||tj|_n(||jkrD|jd|||jtj|_|jS)Nrz$%s confidence = %s, we have a winnerz9%s confidence = %s, below negative shortcut threshhold %s)rrZfilter_international_wordsstater r getrZ UNDEFINEDZCONTROLr SAMPLE_SIZErrrrrr rZ DETECTINGSB_ENOUGH_REL_THRESHOLDget_confidencePOSITIVE_SHORTCUT_THRESHOLDZloggerdebugZFOUND_ITZ_stateNEGATIVE_SHORTCUT_THRESHOLDZNOT_ME) rZbyte_strr r charorderZlm_catr Z confidencer!r!r"feedYsH       zSingleByteCharSetProber.feedcCsLd}|jdkrHd|jtj|j|jj}||j|j}|dkrHd}|S)Ng{Gz?rg?gGz?)rrrZPOSITIVErr rr)rrr!r!r"r)s z&SingleByteCharSetProber.get_confidence)FN)__name__ __module__ __qualname__r'r(r*r,rrpropertyr r r/r) __classcell__r!r!rr"r-s   0rN) collectionsrZ charsetproberrZenumsrrrrrr!r!r!r"s