§ <ˆj0'ãód—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 dS)é)Ú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„ZdS)ÚCharDistributionAnalysisig®Gáz®ï?g{®Gáz„?éÚreturnNcóš—t¦«|_d|_d|_d|_d|_d|_| ¦«dS)NrgF)ÚtupleÚ_char_to_freq_orderÚ _table_sizeÚtypical_distribution_ratioÚ_doneÚ _total_charsÚ _freq_charsÚreset©Úselfs úO/opt/cloudlinux/venv/lib64/python3.11/site-packages/chardet/chardistribution.pyÚ__init__z!CharDistributionAnalysis.__init__@sJ€õ5:±G´GˆÔ ؈Ôð +.ˆÔ'؈Œ ØˆÔØˆÔØ � Š ‰ Œ ˆ ˆ ˆ ócó0—d|_d|_d|_dS)zreset analyser, clear any stateFrN)rr r!r#s r%r"zCharDistributionAnalysis.resetOs!€ðˆŒ ؈ÔàˆÔÐÐr'ÚcharÚchar_lencóÒ—|dkr| |¦«}nd}|dkr>|xjdz c_||jkr%d|j|kr|xjdz c_dSdSdSdS)z"feed a character with known lengthééÿÿÿÿrriN)Ú get_orderr rrr!)r$r)r*Úorders r%ÚfeedzCharDistributionAnalysis.feedXs�€à �qŠ=ˆ=à—N’N 4Ñ(Ô(ˆEˆEàˆEØ �AŠ:ˆ:Ø Ð Ô  Ñ "Ð Ô à�tÔ'Ò'Ð'ؘÔ1°%Ô8Ò8Ð8ØÐ$Ô$¨Ñ)Ð$Ô$Ð$Ð$ð ˆ:ð(Ð'Ø8Ð8r'cóÌ—|jdks|j|jkr|jS|j|jkr,|j|j|jz |jzz }||jkr|S|jS)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¸Ô9TÒ%TÐ%TØ”<Ð à Ô  Ô 0Ò 0Ð 0ØÔ ØÔ" TÔ%5Ñ5¸Ô9XÑXñˆAð�4”=Ò Ð Ø�ðŒ}Ðr'có"—|j|jkS©N)r ÚENOUGH_DATA_THRESHOLDr#s r%Úgot_enough_dataz(CharDistributionAnalysis.got_enough_dataws€ðÔ  4Ô#=Ò=Ð=r'Ú_có—dS)Nr-©)r$r;s r%r.z"CharDistributionAnalysis.get_order|s €ð ˆrr'©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)ÚEUCTWDistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8)Úsuperr&r rr rrr©r$Ú __class__s €r%r&z"EUCTWDistributionAnalysis.__init__…ó7ø€Ý ‰Œ×ÒÑÔÐÝ#;ˆÔ Ý+ˆÔÝ*JˆÔ'Ð'Ð'r'Úbyte_strcóJ—|d}|dkrd|dz z|dzdz SdS)NréÄé^ré¡r-r=©r$rNÚ first_chars r%r.z#EUCTWDistributionAnalysis.get_order‹ó;€ð ˜a”[ˆ Ø ˜Ò Рؘ dÑ*Ñ+¨h°q¬kÑ9¸DÑ@Ð @؈rr'r>© r?r@rAr&rrBrCrDr.Ú __classcell__©rLs@r%rHrH„óoø€€€€€ðKðKðKðKðKðKð  %¨¨yÐ(8Ô"9ð¸cððððððððr'rHcó@‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚEUCKRDistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8©rJr&r rr rr rrKs €r%r&z"EUCKRDistributionAnalysis.__init__—rMr'rNcóJ—|d}|dkrd|dz z|dzdz SdS)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)ÚJOHABDistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8r]rKs €r%r&z"JOHABDistributionAnalysis.__init__©rMr'rNcó|—|d}d|cxkrdkr&nn#|dz|dz}tj|d¦«SdS)NréˆéÔérr-)rÚget)r$rNrTÚcodes r%r.z#JOHABDistributionAnalysis.get_order¯sX€Ø˜a”[ˆ Ø �:Ð $Ð $Ò $Ð $ Ò $Ð $Ð $Ð $Ð $Ø Ñ# h¨q¤kÑ1ˆDÝ-Ô1°$¸Ñ;Ô;Ð ;؈rr'r>rVrXs@r%rara¨soø€€€€€ðKðKðKðKðKðKð  %¨¨yÐ(8Ô"9ð¸cððððððððr'racó@‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚGB2312DistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8)rJr&rrrrrrrKs €r%r&z#GB2312DistributionAnalysis.__init__¸s7ø€Ý ‰Œ×ÒÑÔÐÝ#<ˆÔ Ý,ˆÔÝ*KˆÔ'Ð'Ð'r'rNcóZ—|d|d}}|dkr|dkrd|dz z|zdz SdS)Nrrr_rRrQr-r=©r$rNrTÚ second_chars r%r.z$GB2312DistributionAnalysis.get_order¾sI€ð #+¨1¤+¨x¸¬{�Kˆ Ø ˜$Ò Ð  [°DÒ%8Ð%8ؘ dÑ*Ñ+¨kÑ9¸DÑ@Ð @؈rr'r>rVrXs@r%rjrj·soø€€€€€ðLðLðLðLðLðLð  %¨¨yÐ(8Ô"9ð¸cððððððððr'rjcó@‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚBig5DistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8)rJr&rrrrrrrKs €r%r&z!Big5DistributionAnalysis.__init__Ês7ø€Ý ‰Œ×ÒÑÔÐÝ#:ˆÔ Ý*ˆÔÝ*IˆÔ'Ð'Ð'r'rNcó|—|d|d}}|dkr%|dkrd|dz z|zdz dzSd|dz z|zdz SdS) Nrré¤rRé�é?é@r-r=rms r%r.z"Big5DistributionAnalysis.get_orderÐsi€ð #+¨1¤+¨x¸¬{�Kˆ Ø ˜Ò РؘdÒ"Ð"ؘj¨4Ñ/Ñ0°;Ñ>ÀÑEÈÑJÐJؘ* tÑ+Ñ,¨{Ñ:¸TÑAÐ A؈rr'r>rVrXs@r%rprpÉsoø€€€€€ðJðJðJðJðJðJð  %¨¨yÐ(8Ô"9ð ¸cð ð ð ð ð ð ð ð r'rpcó@‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚSJISDistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8©rJr&rrrrrrrKs €r%r&z!SJISDistributionAnalysis.__init__Þó7ø€Ý ‰Œ×ÒÑÔÐÝ#9ˆÔ Ý)ˆÔÝ*HˆÔ'Ð'Ð'r'rNcó´—|d|d}}d|cxkrdkr nn d|dz z}nd|cxkrdkrnn d|dz dzz}nd S||zd z }|d krd }|S) Nrré�éŸé¼éàéïér-rvér=)r$rNrTrnr/s r%r.z"SJISDistributionAnalysis.get_orderäs©€ð #+¨1¤+¨x¸¬{�Kˆ Ø �:Ð %Ð %Ò %Ð % Ò %Ð %Ð %Ð %Ð %ؘ:¨Ñ,Ñ-ˆEˆEØ �ZÐ 'Ð 'Ò 'Ð ' 4Ò 'Ð 'Ð 'Ð 'Ð 'ؘ:¨Ñ,¨rÑ1Ñ2ˆEˆEà�2ؘ Ñ# dÑ*ˆØ ˜Ò Р؈E؈ r'r>rVrXs@r%rxrxÝsoø€€€€€ðIðIðIðIðIðIð  %¨¨yÐ(8Ô"9ð¸cððððððððr'rxcó@‡—eZdZdˆfd„ Zdeeefdefd„ZˆxZ S)ÚEUCJPDistributionAnalysisrNcó�•—t¦« ¦«t|_t|_t |_dSr8rzrKs €r%r&z"EUCJPDistributionAnalysis.__init__÷r{r'rNcóJ—|d}|dkrd|dz z|dzdz SdS)Nré rQrRrr-r=)r$rNr)s r%r.z#EUCJPDistributionAnalysis.get_orderýs8€ð ˜Œ{ˆØ �4Š<ˆ<ؘ ™Ñ%¨°¬ Ñ3°dÑ:Ð :؈rr'r>rVrXs@r%r…r…ösoø€€€€€ðIðIðIðIðIð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Ð1Ð1Ð1Ð1Ð1ðGðGðGðGðGñGôGðGðTððððÐ 8ñôðð$ððððÐ 8ñôðð$ ð ð ð ð Ð 8ñ ô ð ðððððÐ!9ñôðð$ððððÐ7ñôðð(ððððÐ7ñôðð2ððððÐ 8ñôðððr'