
    fXf0'                     d   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 dS )    )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dS )CharDistributionAnalysisi   gGz?g{Gz?   returnNc                     t                      | _        d| _        d| _        d| _        d| _        d| _        |                                  d S )Nr   g        F)tuple_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsresetselfs    ]/var/www/html/Qu*py/bism/lib/python3.11/site-packages/pip/_vendor/chardet/chardistribution.py__init__z!CharDistributionAnalysis.__init__@   sJ     5:GG 
 +.'


    c                 0    d| _         d| _        d| _        dS )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|                      |          }nd}|dk    r>| xj        dz  c_        || j        k     r%d| j        |         k    r| xj        dz  c_        dS dS dS dS )z"feed a character with known length   r   r   i   N)	get_orderr    r   r   r!   )r$   r)   r*   orders       r%   feedzCharDistributionAnalysis.feedX   s    q==NN4((EEEA::"t'''1%888$$)$$$$ : ('88r'   c                     | j         dk    s| j        | j        k    r| j        S | j         | j        k    r,| 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9T%T%T< 000 "T%559XXA 4=   }r'   c                 "    | j         | j        k    S N)r    ENOUGH_DATA_THRESHOLDr#   s    r%   got_enough_dataz(CharDistributionAnalysis.got_enough_dataw   s      4#===r'   _c                     dS )Nr-    )r$   r;   s     r%   r.   z"CharDistributionAnalysis.get_order|   s	    
 rr'   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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   )superr&   r   r   r   r   r   r   r$   	__class__s    r%   r&   z"EUCTWDistributionAnalysis.__init__   7    #; +*J'''r'   byte_strc                 J    |d         }|dk    rd|dz
  z  |d         z   dz
  S dS )Nr      ^   r      r-   r=   r$   rN   
first_chars      r%   r.   z#EUCTWDistributionAnalysis.get_order   ;    
 a[
d*+hqk9D@@rr'   r>   
r?   r@   rA   r&   r   rB   rC   rD   r.   __classcell__rL   s   @r%   rH   rH      o        K K K K K 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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   rJ   r&   r	   r   r
   r   r   r   rK   s    r%   r&   z"EUCKRDistributionAnalysis.__init__   rM   r'   rN   c                 J    |d         }|dk    rd|dz
  z  |d         z   dz
  S dS )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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   r]   rK   s    r%   r&   z"JOHABDistributionAnalysis.__init__   rM   r'   rN   c                 |    |d         }d|cxk    rdk     r&n n#|dz  |d         z   }t          j        |d          S dS )Nr            r   r-   )r   get)r$   rN   rT   codes       r%   r.   z#JOHABDistributionAnalysis.get_order   sX    a[
:$$$$$$$$$#hqk1D-1$;;;rr'   r>   rV   rX   s   @r%   ra   ra      so        K K K K K 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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   )rJ   r&   r   r   r   r   r   r   rK   s    r%   r&   z#GB2312DistributionAnalysis.__init__   s7    #< ,*K'''r'   rN   c                 Z    |d         |d         }}|dk    r|dk    rd|dz
  z  |z   dz
  S dS )Nr   r   r_   rR   rQ   r-   r=   r$   rN   rT   second_chars       r%   r.   z$GB2312DistributionAnalysis.get_order   sI    
 #+1+x{K
$[D%8%8d*+k9D@@rr'   r>   rV   rX   s   @r%   rj   rj      so        L L L L L 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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   )rJ   r&   r   r   r   r   r   r   rK   s    r%   r&   z!Big5DistributionAnalysis.__init__   s7    #: **I'''r'   rN   c                 |    |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 dS )	Nr   r      rR      ?   @   r-   r=   rm   s       r%   r.   z"Big5DistributionAnalysis.get_order   si    
 #+1+x{K
d""j4/0;>EJJ*t+,{:TAArr'   r>   rV   rX   s   @r%   rp   rp      so        J J J J J 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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   rJ   r&   r   r   r   r   r   r   rK   s    r%   r&   z!SJISDistributionAnalysis.__init__   7    #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 nd|dz
  dz   z  }nd	S ||z   d
z
  }|dk    rd	}|S )Nr   r                     r-   rv      r=   )r$   rN   rT   rn   r/   s        r%   r.   z"SJISDistributionAnalysis.get_order   s    
 #+1+x{K
:%%%%%%%%%:,-EEZ''''4''''':,r12EE2#d*Er'   r>   rV   rX   s   @r%   rx   rx      so        I I I I I 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   Nc                     t                                                       t          | _        t          | _        t          | _        d S r8   rz   rK   s    r%   r&   z"EUCJPDistributionAnalysis.__init__   r{   r'   rN   c                 J    |d         }|dk    rd|dz
  z  |d         z   dz
  S dS )Nr      rQ   rR   r   r-   r=   )r$   rN   r)   s      r%   r.   z#EUCJPDistributionAnalysis.get_order   s8    
 {4<<%3d::rr'   r>   rV   rX   s   @r%   r   r      so        I I I I I 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 1 1 1 1 1G G G G G G G GT     8   $     8   $     8       !9   $    7   (    7   2     8     r'   