Ë
    äØjj0'  ã                   ó2  — d dl mZmZ ddlmZmZmZ ddlmZm	Z	m
Z
 ddlmZmZmZ ddlmZmZmZ ddlmZmZmZ ddlmZ  G d	„ d
«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      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                   ó|   — e Zd ZdZdZdZdZdd„Zdd„Zd	e	e
ef   d
eddfd„Zdefd„Zdefd„Zde	e
ef   defd„Zy)ÚCharDistributionAnalysisi   g®Gáz®ï?g{®Gáz„?é   ÚreturnNc                 óˆ   — t        «       | _        d| _        d| _        d| _        d| _        d| _        | j                  «        y )Nr   g        F)ÚtupleÚ_char_to_freq_orderÚ_table_sizeÚtypical_distribution_ratioÚ_doneÚ_total_charsÚ_freq_charsÚreset©Úselfs    úf/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/chardet/chardistribution.pyÚ__init__z!CharDistributionAnalysis.__init__@   s@   € ô 5:³GˆÔ ØˆÔð
 +.ˆÔ'ØˆŒ
ØˆÔØˆÔØ�
‰
�ó    c                 ó.   — d| _         d| _        d| _        y)zreset analyser, clear any stateFr   N)r   r    r!   r#   s    r%   r"   zCharDistributionAnalysis.resetO   s   € ð ˆŒ
ØˆÔàˆÕr'   ÚcharÚchar_lenc                 óÜ   — |dk(  r| j                  |«      }nd}|dk\  rN| xj                  dz  c_        || j                  k  r)d| j                  |   kD  r| xj                  dz  c_        yyyy)z"feed a character with known lengthé   éÿÿÿÿr   r   i   N)Ú	get_orderr    r   r   r!   )r$   r)   r*   Úorders       r%   ÚfeedzCharDistributionAnalysis.feedX   su   € à�qŠ=à—N‘N 4Ó(‰EàˆEØ�AŠ:Ø×Ò Ñ"Õà�t×'Ñ'Ò'Ø˜×1Ñ1°%Ñ8Ò8Ø×$Ò$¨Ñ)Ö$ð 9ð (ð r'   c                 ó<  — | j                   dk  s| j                  | j                  k  r| j                  S | j                   | j                  k7  rD| j                  | j                   | j                  z
  | j                  z  z  }|| j
                  k  r|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_confidencef   s‘   € ð ×Ñ Ò! T×%5Ñ%5¸×9TÑ9TÒ%TØ—<‘<Ðà×Ñ × 0Ñ 0Ò0Ø× Ñ Ø×"Ñ" T×%5Ñ%5Ñ5¸×9XÑ9XÑXñˆAð �4—=‘=Ò Ø�ð �}‰}Ðr'   c                 ó4   — | j                   | j                  kD  S ©N)r    ÚENOUGH_DATA_THRESHOLDr#   s    r%   Úgot_enough_dataz(CharDistributionAnalysis.got_enough_dataw   s   € ð × Ñ  4×#=Ñ#=Ñ=Ð=r'   Ú_c                  ó   — y)Nr-   © )r$   r;   s     r%   r.   z"CharDistributionAnalysis.get_order|   s   € ð
 r'   ©r   N)Ú__name__Ú
__module__Ú__qualname__r9   r4   r3   r2   r&   r"   r   ÚbytesÚ	bytearrayÚintr0   Úfloatr6   Úboolr:   r.   r=   r'   r%   r   r   :   s{   „ Ø ÐØ€HØ€GØÐóóð*˜˜u iÐ/Ñ0ð *¸Cð *ÀDó *ð ó ð"> ó >ð
˜5 ¨	Ð!1Ñ2ð °sô r'   r   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚEUCTWDistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   )Úsuperr&   r   r   r   r   r   r   ©r$   Ú	__class__s    €r%   r&   z"EUCTWDistributionAnalysis.__init__…   ó&   ø€ Ü‰ÑÔÜ#;ˆÔ Ü+ˆÔÜ*JˆÕ'r'   Úbyte_strc                 ó:   — |d   }|dk\  rd|dz
  z  |d   z   dz
  S y)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@   rA   r&   r   rB   rC   rD   r.   Ú__classcell__©rL   s   @r%   rH   rH   „   ó&   ø„ õKð %¨¨yÐ(8Ñ"9ð ¸c÷ r'   rH   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚEUCKRDistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   ©rJ   r&   r	   r   r
   r   r   r   rK   s    €r%   r&   z"EUCKRDistributionAnalysis.__init__—   rM   r'   rN   c                 ó:   — |d   }|dk\  rd|dz
  z  |d   z   dz
  S y)Nr   é°   rQ   r   rR   r-   r=   rS   s      r%   r.   z#EUCKRDistributionAnalysis.get_order�   rU   r'   r>   rV   rX   s   @r%   r[   r[   –   rY   r'   r[   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚJOHABDistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   r]   rK   s    €r%   r&   z"JOHABDistributionAnalysis.__init__©   rM   r'   rN   c                 ól   — |d   }d|cxk  rdk  r$n y|dz  |d   z   }t        j                  |d«      S y)Nr   éˆ   éÔ   é   r   r-   )r   Úget)r$   rN   rT   Úcodes       r%   r.   z#JOHABDistributionAnalysis.get_order¯   sH   € Ø˜a‘[ˆ
Ø�:Ô$ Ô$ð ð  Ñ# h¨q¡kÑ1ˆDÜ-×1Ñ1°$¸Ó;Ð;Ør'   r>   rV   rX   s   @r%   ra   ra   ¨   s&   ø„ õKð %¨¨yÐ(8Ñ"9ð ¸c÷ r'   ra   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚGB2312DistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   )rJ   r&   r   r   r   r   r   r   rK   s    €r%   r&   z#GB2312DistributionAnalysis.__init__¸   s&   ø€ Ü‰ÑÔÜ#<ˆÔ Ü,ˆÔÜ*KˆÕ'r'   rN   c                 óH   — |d   |d   }}|dk\  r|dk\  rd|dz
  z  |z   dz
  S y)Nr   r   r_   rR   rQ   r-   r=   ©r$   rN   rT   Úsecond_chars       r%   r.   z$GB2312DistributionAnalysis.get_order¾   sA   € ð
 #+¨1¡+¨x¸©{�Kˆ
Ø˜$Ò [°DÒ%8Ø˜ dÑ*Ñ+¨kÑ9¸DÑ@Ð@Ør'   r>   rV   rX   s   @r%   rj   rj   ·   s&   ø„ õLð %¨¨yÐ(8Ñ"9ð ¸c÷ r'   rj   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚBig5DistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   )rJ   r&   r   r   r   r   r   r   rK   s    €r%   r&   z!Big5DistributionAnalysis.__init__Ê   s&   ø€ Ü‰ÑÔÜ#:ˆÔ Ü*ˆÔÜ*IˆÕ'r'   rN   c                 ój   — |d   |d   }}|dk\  r$|dk\  rd|dz
  z  |z   dz
  dz   S d|dz
  z  |z   dz
  S y)	Nr   r   é¤   rR   é�   é?   é@   r-   r=   rm   s       r%   r.   z"Big5DistributionAnalysis.get_orderÐ   sa   € ð
 #+¨1¡+¨x¸©{�Kˆ
Ø˜ÒØ˜dÒ"Ø˜j¨4Ñ/Ñ0°;Ñ>ÀÑEÈÑJÐJØ˜* tÑ+Ñ,¨{Ñ:¸TÑAÐAØr'   r>   rV   rX   s   @r%   rp   rp   É   s&   ø„ õJð
 %¨¨yÐ(8Ñ"9ð 
¸c÷ 
r'   rp   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚSJISDistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   ©rJ   r&   r   r   r   r   r   r   rK   s    €r%   r&   z!SJISDistributionAnalysis.__init__Þ   ó&   ø€ Ü‰ÑÔÜ#9ˆÔ Ü)ˆÔÜ*HˆÕ'r'   rN   c                 óœ   — |d   |d   }}d|cxk  rdk  rn n	d|dz
  z  }nd|cxk  rdk  rn y	d|dz
  dz   z  }ny	||z   d
z
  }|dkD  rd	}|S )Nr   r   é�   éŸ   é¼   éà   éï   é   r-   rv   é   r=   )r$   rN   rT   rn   r/   s        r%   r.   z"SJISDistributionAnalysis.get_orderä   s}   € ð
 #+¨1¡+¨x¸©{�Kˆ
Ø�:Ô% Õ%Ø˜:¨Ñ,Ñ-‰EØ�ZÔ' 4Ô'ð ð ˜:¨Ñ,¨rÑ1Ñ2‰EàØ˜Ñ# dÑ*ˆØ˜ÒØˆEØˆr'   r>   rV   rX   s   @r%   rx   rx   Ý   s&   ø„ õIð %¨¨yÐ(8Ñ"9ð ¸c÷ r'   rx   c                   ó:   ‡ — e Zd Zdˆ fd„Zdeeef   defd„Zˆ xZ	S )ÚEUCJPDistributionAnalysisr   c                 ód   •— t         ‰| �  «        t        | _        t        | _        t        | _        y r8   rz   rK   s    €r%   r&   z"EUCJPDistributionAnalysis.__init__÷   r{   r'   rN   c                 ó:   — |d   }|dk\  rd|dz
  z  |d   z   dz
  S y)Nr   é    rQ   rR   r   r-   r=   )r$   rN   r)   s      r%   r.   z#EUCJPDistributionAnalysis.get_orderý   s4   € ð
 ˜‰{ˆØ�4Š<Ø˜ ™Ñ%¨°©Ñ3°dÑ:Ð:Ør'   r>   rV   rX   s   @r%   r…   r…   ö   s&   ø„ õIð %¨¨yÐ(8Ñ"9ð ¸c÷ r'   r…   N)!Útypingr   r   Úbig5freqr   r   r   Ú	euckrfreqr	   r
   r   Ú	euctwfreqr   r   r   Ú
gb2312freqr   r   r   Újisfreqr   r   r   Ú	johabfreqr   r   rH   r[   ra   rj   rp   rx   r…   r=   r'   r%   ú<module>r�      s©   ð÷8  ÷ñ ÷
ñ ÷
ñ ÷
ñ ÷
ñ õ
 2÷Gñ GôTÐ 8ô ô$Ð 8ô ô$Ð 8ô ôÐ!9ô ô$Ð7ô ô(Ð7ô ô2Ð 8õ r'   