Ë Ÿ•ÇéGÈ`-ãó2—ddlmZmZddlmZmZmZddlmZm Z m Z ddl m Z m Z mZddlmZmZmZddlmZmZmZddlmZGd „d «ZGd „d e«ZGd „de«ZGd„de«ZGd„de«ZGd„de«ZGd„de«ZGd„de«Z y)é)ÚTupleÚUnioné)ÚBIG5_CHAR_TO_FREQ_ORDERÚBIG5_TABLE_SIZEÚBIG5_TYPICAL_DISTRIBUTION_RATIO)ÚEUCKR_CHAR_TO_FREQ_ORDERÚEUCKR_TABLE_SIZEÚ EUCKR_TYPICAL_DISTRIBUTION_RATIO)ÚEUCTW_CHAR_TO_FREQ_ORDERÚEUCTW_TABLE_SIZEÚ EUCTW_TYPICAL_DISTRIBUTION_RATIO)ÚGB2312_CHAR_TO_FREQ_ORDERÚGB2312_TABLE_SIZEÚ!GB2312_TYPICAL_DISTRIBUTION_RATIO)ÚJIS_CHAR_TO_FREQ_ORDERÚJIS_TABLE_SIZEÚJIS_TYPICAL_DISTRIBUTION_RATIO)ÚJOHAB_TO_EUCKR_ORDER_TABLEcó|—eZdZdZdZdZdZdd„Zdd„Zd e e e fd e ddfd „Z defd „Zdefd „Zde e e fde fd„Zy)ÚCharDistributionAnalysisig®Gáz®ï?g{®Gáz„?éÚreturnNcóˆ—t«|_d|_d|_d|_d|_d|_|j«y)NrgF)ÚtupleÚ_char_to_freq_orderÚ _table_sizeÚtypical_distribution_ratioÚ_doneÚ _total_charsÚ _freq_charsÚreset©Úselfs ú=/usr/lib/python3.12/site-packages/chardet/chardistribution.pyÚ__init__z!CharDistributionAnalysis.__init__@s@€ô5:³GˆÔ ؈Ôð +.ˆÔ'؈Œ ØˆÔØˆÔØ � ‰ � ócó.—d|_d|_d|_y)zreset analyser, clear any stateFrN)rr r!r#s r%r"zCharDistributionAnalysis.resetOs€ðˆŒ ؈ÔàˆÕr'ÚcharÚchar_lencóÜ—|dk(r|j|«}nd}|dk\rN|xjdz c_||jkr)d|j|kDr|xjdz c_yyyy)z"feed a character with known lengthééÿÿÿÿrriN)Ú get_orderr rrr!)r$r)r*Úorders r%ÚfeedzCharDistributionAnalysis.feedXsu€à �qŠ=à—N‘N 4Ó(‰EàˆEØ �AŠ:Ø × Ò  Ñ "Õ à�t×'Ñ'Ò'ؘ×1Ñ1°%Ñ8Ò8Ø×$Ò$¨Ñ)Ö$ð9ð(ð r'có<—|jdks|j|jkr |jS|j|jk7rD|j|j|jz |jzz }||j kr|S|j S)z(return confidence based on existing datar)r r!ÚMINIMUM_DATA_THRESHOLDÚSURE_NOrÚSURE_YES)r$Úrs r%Úget_confidencez'CharDistributionAnalysis.get_confidencefs‘€ð × Ñ  Ò ! T×%5Ñ%5¸×9TÑ9TÒ%TØ—<‘<Ð à × Ñ  × 0Ñ 0Ò 0Ø× Ñ Ø×"Ñ" T×%5Ñ%5Ñ5¸×9XÑ9XÑXñˆAð�4—=‘=Ò Ø�ð�}‰}Ðr'có4—|j|jkDS©N)r ÚENOUGH_DATA_THRESHOLDr#s r%Úgot_enough_dataz(CharDistributionAnalysis.got_enough_dataws€ð× Ñ  4×#=Ñ#=Ñ=Ð=r'Ú_có—y)Nr-©)r$r;s r%r.z"CharDistributionAnalysis.get_order|s€ð r'©rN)Ú__name__Ú __module__Ú __qualname__r9r4r3r2r&r"rÚbytesÚ bytearrayÚintr0Úfloatr6Úboolr:r.r=r'r%rr:s{„Ø ÐØ€HØ€GØÐó óð *˜˜u iÐ/Ñ0ð *¸Cð *ÀDó *ð óð"> ó>ð ˜5 ¨ Ð!1Ñ2ð°sôr'rcó:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚEUCTWDistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8)Úsuperr&r rr rrr©r$Ú __class__s €r%r&z"EUCTWDistributionAnalysis.__init__…ó&ø€Ü ‰ÑÔÜ#;ˆÔ Ü+ˆÔÜ*JˆÕ'r'Úbyte_strcó:—|d}|dk\rd|dz z|dzdz Sy)NréÄé^ré¡r-r=©r$rNÚ first_chars r%r.z#EUCTWDistributionAnalysis.get_order‹ó6€ð ˜a‘[ˆ Ø ˜Ò ؘ dÑ*Ñ+¨h°q©kÑ9¸DÑ@Ð @Ør'r>© r?r@rAr&rrBrCrDr.Ú __classcell__©rLs@r%rHrH„ó&ø„õKð  %¨¨yÐ(8Ñ"9ð¸c÷r'rHcó:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚEUCKRDistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8©rJr&r rr rr rrKs €r%r&z"EUCKRDistributionAnalysis.__init__—rMr'rNcó:—|d}|dk\rd|dz z|dzdz Sy)Nré°rQrrRr-r=rSs r%r.z#EUCKRDistributionAnalysis.get_order�rUr'r>rVrXs@r%r[r[–rYr'r[có:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚJOHABDistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8r]rKs €r%r&z"JOHABDistributionAnalysis.__init__©rMr'rNcól—|d}d|cxkrdkr$ny|dz|dz}tj|d«Sy)NréˆéÔérr-)rÚget)r$rNrTÚcodes r%r.z#JOHABDistributionAnalysis.get_order¯sH€Ø˜a‘[ˆ Ø �:Ô $ Ô $ðð Ñ# h¨q¡kÑ1ˆDÜ-×1Ñ1°$¸Ó;Ð ;Ør'r>rVrXs@r%rara¨s&ø„õKð  %¨¨yÐ(8Ñ"9ð¸c÷r'racó:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚGB2312DistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8)rJr&rrrrrrrKs €r%r&z#GB2312DistributionAnalysis.__init__¸s&ø€Ü ‰ÑÔÜ#<ˆÔ Ü,ˆÔÜ*KˆÕ'r'rNcóH—|d|d}}|dk\r|dk\rd|dz z|zdz Sy)Nrrr_rRrQr-r=©r$rNrTÚ second_chars r%r.z$GB2312DistributionAnalysis.get_order¾sA€ð #+¨1¡+¨x¸©{�Kˆ Ø ˜$Ò  [°DÒ%8ؘ dÑ*Ñ+¨kÑ9¸DÑ@Ð @Ør'r>rVrXs@r%rjrj·s&ø„õLð  %¨¨yÐ(8Ñ"9ð¸c÷r'rjcó:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚBig5DistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8)rJr&rrrrrrrKs €r%r&z!Big5DistributionAnalysis.__init__Ês&ø€Ü ‰ÑÔÜ#:ˆÔ Ü*ˆÔÜ*IˆÕ'r'rNcój—|d|d}}|dk\r$|dk\rd|dz z|zdz dzSd|dz z|zdz Sy) Nrré¤rRé�é?é@r-r=rms r%r.z"Big5DistributionAnalysis.get_orderÐsa€ð #+¨1¡+¨x¸©{�Kˆ Ø ˜Ò ؘdÒ"ؘj¨4Ñ/Ñ0°;Ñ>ÀÑEÈÑJÐJؘ* tÑ+Ñ,¨{Ñ:¸TÑAÐ AØr'r>rVrXs@r%rprpÉs&ø„õJð  %¨¨yÐ(8Ñ"9ð ¸c÷ r'rpcó:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚSJISDistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8©rJr&rrrrrrrKs €r%r&z!SJISDistributionAnalysis.__init__Þó&ø€Ü ‰ÑÔÜ#9ˆÔ Ü)ˆÔÜ*HˆÕ'r'rNcóœ—|d|d}}d|cxkrdkr nn d|dz z}nd|cxkrdkrny d|dz dzz}ny ||zd z }|d kDrd }|S) Nrré�éŸé¼éàéïér-rvér=)r$rNrTrnr/s r%r.z"SJISDistributionAnalysis.get_orderäs}€ð #+¨1¡+¨x¸©{�Kˆ Ø �:Ô % Õ %ؘ:¨Ñ,Ñ-‰EØ �ZÔ ' 4Ô 'ðð˜:¨Ñ,¨rÑ1Ñ2‰EàØ˜ Ñ# dÑ*ˆØ ˜Ò ؈E؈ r'r>rVrXs@r%rxrxÝs&ø„õIð  %¨¨yÐ(8Ñ"9ð¸c÷r'rxcó:‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚEUCJPDistributionAnalysisrcód•—t‰|�«t|_t|_t |_yr8rzrKs €r%r&z"EUCJPDistributionAnalysis.__init__÷r{r'rNcó:—|d}|dk\rd|dz z|dzdz Sy)Nré rQrRrr-r=)r$rNr)s r%r.z#EUCJPDistributionAnalysis.get_orderýs4€ð ˜‰{ˆØ �4Š<ؘ ™Ñ%¨°© Ñ3°dÑ:Ð :Ør'r>rVrXs@r%r…r…ös&ø„õIð  %¨¨yÐ(8Ñ"9ð¸c÷r'r…N)!ÚtypingrrÚbig5freqrrrÚ euckrfreqr r r Ú euctwfreqr r rÚ gb2312freqrrrÚjisfreqrrrÚ johabfreqrrrHr[rarjrprxr…r=r'r%Úr�s©ð÷8 ÷ñ÷ ñ÷ ñ÷ ñ÷ ñõ 2÷GñGôTÐ 8ôô$Ð 8ôô$ Ð 8ô ôÐ!9ôô$Ð7ôô(Ð7ôô2Ð 8õr'