
    <6h0'                     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   gGz?g{Gz?   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    i/var/www/panel.atabookie.online/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=NN4(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9T9T%T<< 0 00  ""T%5%559X9X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*ui/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*+hqk9D@@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[
:$$  #hqk1D-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9D@@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"j4/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2E#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<%3d::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'   