U nÏ aÃ$ã@sØddlmZmZmZddlmZmZmZddlm Z m Z m Z ddl m Z mZmZddlmZmZmZGdd„deƒZGdd „d eƒZGd d „d eƒZGd d „d eƒZGdd„deƒZGdd„deƒZGdd„deƒZdS)é)ÚEUCTW_CHAR_TO_FREQ_ORDERÚEUCTW_TABLE_SIZEÚ EUCTW_TYPICAL_DISTRIBUTION_RATIO)ÚEUCKR_CHAR_TO_FREQ_ORDERÚEUCKR_TABLE_SIZEÚ EUCKR_TYPICAL_DISTRIBUTION_RATIO)ÚGB2312_CHAR_TO_FREQ_ORDERÚGB2312_TABLE_SIZEÚ!GB2312_TYPICAL_DISTRIBUTION_RATIO)ÚBIG5_CHAR_TO_FREQ_ORDERÚBIG5_TABLE_SIZEÚBIG5_TYPICAL_DISTRIBUTION_RATIO)ÚJIS_CHAR_TO_FREQ_ORDERÚJIS_TABLE_SIZEÚJIS_TYPICAL_DISTRIBUTION_RATIOc@sLeZdZdZdZdZdZdd„Zdd„Zd d „Z d d „Z d d„Z dd„Z dS)ÚCharDistributionAnalysisig®Gáz®ï?g{®Gáz„?écCs0d|_d|_d|_d|_d|_d|_| ¡dS©N)Ú_char_to_freq_orderÚ _table_sizeÚtypical_distribution_ratioÚ_doneÚ _total_charsÚ _freq_charsÚreset©Úself©rúeC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\chardet\chardistribution.pyÚ__init__.sz!CharDistributionAnalysis.__init__cCsd|_d|_d|_dS)zreset analyser, clear any stateFéN)rrrrrrrr=szCharDistributionAnalysis.resetcCsX|dkr| |¡}nd}|dkrT|jd7_||jkrTd|j|krT|jd7_dS)z"feed a character with known lengthééÿÿÿÿr riN)Ú get_orderrrrr)rÚcharÚchar_lenÚorderrrrÚfeedFs  zCharDistributionAnalysis.feedcCsT|jdks|j|jkr|jS|j|jkrN|j|j|j|j}||jkrN|S|jS)z(return confidence based on existing datar )rrÚMINIMUM_DATA_THRESHOLDÚSURE_NOrÚSURE_YES)rÚrrrrÚget_confidenceTs ÿ z'CharDistributionAnalysis.get_confidencecCs |j|jkSr)rÚENOUGH_DATA_THRESHOLDrrrrÚgot_enough_datadsz(CharDistributionAnalysis.got_enough_datacCsdS)Nr"r)rÚbyte_strrrrr#isz"CharDistributionAnalysis.get_orderN) Ú__name__Ú __module__Ú __qualname__r-r*r)r(rrr'r,r.r#rrrrr(s rcs$eZdZ‡fdd„Zdd„Z‡ZS)ÚEUCTWDistributionAnalysiscs$tt|ƒ ¡t|_t|_t|_dSr) Úsuperr3rrrrrrrr©Ú __class__rrrrsz"EUCTWDistributionAnalysis.__init__cCs0|d}|dkr(d|d|ddSdSdS)Nr éÄé^ré¡r"r©rr/Ú first_charrrrr#xsz#EUCTWDistributionAnalysis.get_order©r0r1r2rr#Ú __classcell__rrr5rr3qs r3cs$eZdZ‡fdd„Zdd„Z‡ZS)ÚEUCKRDistributionAnalysiscs$tt|ƒ ¡t|_t|_t|_dSr) r4r>rrrrrrrrr5rrr…sz"EUCKRDistributionAnalysis.__init__cCs0|d}|dkr(d|d|ddSdSdS)Nr é°r8rr9r"rr:rrrr#‹sz#EUCKRDistributionAnalysis.get_orderr<rrr5rr>„s r>cs$eZdZ‡fdd„Zdd„Z‡ZS)ÚGB2312DistributionAnalysiscs$tt|ƒ ¡t|_t|_t|_dSr) r4r@rrrr rr rrr5rrr˜sz#GB2312DistributionAnalysis.__init__cCs>|d|d}}|dkr6|dkr6d|d|dSdSdS)Nr rr?r9r8r"r©rr/r;Ú second_charrrrr#žsz$GB2312DistributionAnalysis.get_orderr<rrr5rr@—s r@cs$eZdZ‡fdd„Zdd„Z‡ZS)ÚBig5DistributionAnalysiscs$tt|ƒ ¡t|_t|_t|_dSr) r4rCrr rr rr rrr5rrr«sz!Big5DistributionAnalysis.__init__cCsX|d|d}}|dkrP|dkr:d|d|ddSd|d|dSndSdS) Nr ré¤r9éé?é@r"rrArrrr#±s z"Big5DistributionAnalysis.get_orderr<rrr5rrCªs rCcs$eZdZ‡fdd„Zdd„Z‡ZS)ÚSJISDistributionAnalysiscs$tt|ƒ ¡t|_t|_t|_dSr) r4rHrrrrrrrrr5rrrÁsz!SJISDistributionAnalysis.__init__cCsr|d|d}}|dkr0|dkr0d|d}n&|dkrR|dkrRd|dd}nd S||d }|d krnd }|S) Nr rééŸé¼éàéïér"rGér)rr/r;rBr&rrrr#Çs z"SJISDistributionAnalysis.get_orderr<rrr5rrHÀs rHcs$eZdZ‡fdd„Zdd„Z‡ZS)ÚEUCJPDistributionAnalysiscs$tt|ƒ ¡t|_t|_t|_dSr) r4rPrrrrrrrrr5rrrÚsz"EUCJPDistributionAnalysis.__init__cCs0|d}|dkr(d|d|ddSdSdS)Nr é r8r9rr"r)rr/r$rrrr#àsz#EUCJPDistributionAnalysis.get_orderr<rrr5rrPÙs rPN)Ú euctwfreqrrrÚ euckrfreqrrrÚ gb2312freqrr r Úbig5freqr r r ÚjisfreqrrrÚobjectrr3r>r@rCrHrPrrrrÚsI