
    Q?h0'                     2   S SK JrJr  SSKJrJrJr  SSKJrJ	r	J
r
  SSKJrJrJr  SSKJrJrJr  SSKJrJrJr  SSKJr   " S	 S
5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r g)    )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                       \ rS rSrSrSrSrSrSS jrSS	 jr	S
\
\\4   S\SS4S jrS\4S jrS\4S jrS\
\\4   S\4S jrSrg)CharDistributionAnalysis:   i   gGz?g{Gz?   returnNc                     [        5       U l        SU l        SU l        SU l        SU l        SU l        U R                  5         g )Nr   g        F)tuple_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsresetselfs    J/var/www/html/env/lib/python3.13/site-packages/chardet/chardistribution.py__init__!CharDistributionAnalysis.__init__@   s@     5:G 
 +.'


    c                 .    SU l         SU l        SU l        g)zreset analyser, clear any stateFr   N)r    r!   r"   r$   s    r&   r#   CharDistributionAnalysis.resetO   s     
r)   charchar_lenc                     US:X  a  U R                  U5      nOSnUS:  aO  U =R                  S-  sl        X0R                  :  a*  SU R                  U   :  a  U =R                  S-  sl        gggg)z"feed a character with known length   r   r   i   N)	get_orderr!   r   r   r"   )r%   r,   r-   orders       r&   feedCharDistributionAnalysis.feedX   ss    q=NN4(EEA:"'''11%88$$)$ 9 ( r)   c                 B   U R                   S::  d  U R                  U R                  ::  a  U R                  $ U R                   U R                  :w  aD  U R                  U R                   U R                  -
  U R                  -  -  nXR
                  :  a  U$ U R
                  $ )z(return confidence based on existing datar   )r!   r"   MINIMUM_DATA_THRESHOLDSURE_NOr   SURE_YES)r%   rs     r&   get_confidence'CharDistributionAnalysis.get_confidencef   s     !T%5%59T9T%T<< 0 00  ""T%5%559X9XXA ==  }}r)   c                 4    U R                   U R                  :  $ N)r!   ENOUGH_DATA_THRESHOLDr$   s    r&   got_enough_data(CharDistributionAnalysis.got_enough_dataw   s       4#=#===r)   _c                     g)Nr0    )r%   rA   s     r&   r1   "CharDistributionAnalysis.get_order|   s    
 r)   )r   r    r"   r   r!   r   r   N)__name__
__module____qualname____firstlineno__r>   r8   r7   r6   r'   r#   r   bytes	bytearrayintr3   floatr:   boolr?   r1   __static_attributes__rC   r)   r&   r   r   :   s{     HG*ui/0 *C *D * "> >
5	!12 s r)   r   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )EUCTWDistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   )superr'   r   r   r   r   r   r   r%   	__class__s    r&   r'   "EUCTWDistributionAnalysis.__init__   &    #; +*J'r)   byte_strc                 <    US   nUS:  a  SUS-
  -  US   -   S-
  $ g)Nr      ^   r      r0   rC   r%   rY   
first_chars      r&   r1   #EUCTWDistributionAnalysis.get_order   6    
 a[
d*+hqk9D@@r)   r   r   r   rE   rF   rG   rH   rI   r'   r   rJ   rK   rL   r1   rO   __classcell__rV   s   @r&   rQ   rQ      +    K%y(8"9 c  r)   rQ   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )EUCKRDistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   rT   r'   r	   r   r
   r   r   r   rU   s    r&   r'   "EUCKRDistributionAnalysis.__init__   rX   r)   rY   c                 <    US   nUS:  a  SUS-
  -  US   -   S-
  $ g)Nr      r\   r   r]   r0   rC   r^   s      r&   r1   #EUCKRDistributionAnalysis.get_order   ra   r)   rb   rE   rc   re   s   @r&   rh   rh      rf   r)   rh   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )JOHABDistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   rk   rU   s    r&   r'   "JOHABDistributionAnalysis.__init__   rX   r)   rY   c                 r    US   nSUs=::  a  S:  a%  O  gUS-  US   -   n[         R                  " US5      $ g)Nr            r   r0   )r   get)r%   rY   r_   codes       r&   r1   #JOHABDistributionAnalysis.get_order   sH    a[
:$$  #hqk1D-11$;;r)   rb   rE   rc   re   s   @r&   rq   rq      s+    K%y(8"9 c  r)   rq   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )GB2312DistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   )rT   r'   r   r   r   r   r   r   rU   s    r&   r'   #GB2312DistributionAnalysis.__init__   s&    #< ,*K'r)   rY   c                 J    US   US   p2US:  a  US:  a  SUS-
  -  U-   S-
  $ g)Nr   r   rn   r]   r\   r0   rC   r%   rY   r_   second_chars       r&   r1   $GB2312DistributionAnalysis.get_order   s?    
 #+1+x{K$[D%8d*+k9D@@r)   rb   rE   rc   re   s   @r&   r}   r}      s+    L%y(8"9 c  r)   r}   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )Big5DistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   )rT   r'   r   r   r   r   r   r   rU   s    r&   r'   !Big5DistributionAnalysis.__init__   s&    #: **I'r)   rY   c                 l    US   US   p2US:  a%  US:  a  SUS-
  -  U-   S-
  S-   $ SUS-
  -  U-   S-
  $ g)	Nr   r      r]      ?   @   r0   rC   r   s       r&   r1   "Big5DistributionAnalysis.get_order   s_    
 #+1+x{Kd"j4/0;>EJJ*t+,{:TAAr)   rb   rE   rc   re   s   @r&   r   r      s+    J
%y(8"9 
c 
 
r)   r   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )SJISDistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   rT   r'   r   r   r   r   r   r   rU   s    r&   r'   !SJISDistributionAnalysis.__init__   &    #9 )*H'r)   rY   c                     US   US   p2SUs=::  a  S::  a  O  O	SUS-
  -  nOSUs=::  a  S::  a  O  g	SUS-
  S-   -  nOg	XC-   S
-
  nUS:  a  S	nU$ )Nr   r                     r0   r      rC   )r%   rY   r_   r   r2   s        r&   r1   "SJISDistributionAnalysis.get_order   sy    
 #+1+x{K:%%:,-EZ'4'  :,r12E#d*Er)   rb   rE   rc   re   s   @r&   r   r      s+    I%y(8"9 c  r)   r   c                   H   ^  \ rS rSrSU 4S jjrS\\\4   S\4S jr	Sr
U =r$ )EUCJPDistributionAnalysis   r   c                 d   > [         TU ]  5         [        U l        [        U l        [        U l        g r=   r   rU   s    r&   r'   "EUCJPDistributionAnalysis.__init__   r   r)   rY   c                 <    US   nUS:  a  SUS-
  -  US   -   S-
  $ g)Nr      r\   r]   r   r0   rC   )r%   rY   r,   s      r&   r1   #EUCJPDistributionAnalysis.get_order   s4    
 {4<%3d::r)   rb   rE   rc   re   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   rQ   rh   rq   r}   r   r   r   rC   r)   r&   <module>r      s   8   
 
 
 
 
 2G GT 8 $ 8 $ 8 !9 $7 (7 2 8 r)   