
Kh$                 @   s*  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 Gd d   d e  Z Gd d	   d	 e  Z Gd
 d   d e  Z Gd d   d e  Z Gd d   d e  Z Gd d   d e  Z Gd d   d e  Z d S)   )EUCTW_CHAR_TO_FREQ_ORDEREUCTW_TABLE_SIZE EUCTW_TYPICAL_DISTRIBUTION_RATIO)EUCKR_CHAR_TO_FREQ_ORDEREUCKR_TABLE_SIZE EUCKR_TYPICAL_DISTRIBUTION_RATIO)GB2312_CHAR_TO_FREQ_ORDERGB2312_TABLE_SIZE!GB2312_TYPICAL_DISTRIBUTION_RATIO)BIG5_CHAR_TO_FREQ_ORDERBIG5_TABLE_SIZEBIG5_TYPICAL_DISTRIBUTION_RATIO)JIS_CHAR_TO_FREQ_ORDERJIS_TABLE_SIZEJIS_TYPICAL_DISTRIBUTION_RATIOc               @   sp   e  Z d  Z d Z d Z d Z d Z d d   Z d d   Z d	 d
   Z	 d d   Z
 d d   Z d d   Z d S)CharDistributionAnalysisi   gGz?g{Gz?   c             C   sD   d  |  _  d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ |  j   d  S)N)_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsreset)self r   T/mod/web/acousticsspace/venv/lib/python3.5/site-packages/chardet/chardistribution.py__init__.   s    						z!CharDistributionAnalysis.__init__c             C   s   d |  _  d |  _ d |  _ d S)zreset analyser, clear any stateF    N)r   r   r   )r   r   r   r   r   =   s    		zCharDistributionAnalysis.resetc             C   st   | d k r |  j  |  } n d } | d k rp |  j d 7_ | |  j k  rp d |  j | k rp |  j d 7_ d S)z"feed a character with known length   r   r   i   N)	get_orderr   r   r   r   )r   charchar_lenorderr   r   r   feedF   s    zCharDistributionAnalysis.feedc             C   sr   |  j  d k s! |  j |  j k r( |  j S|  j  |  j k rk |  j |  j  |  j |  j } | |  j k  rk | S|  j S)z(return confidence based on existing datar   )r   r   MINIMUM_DATA_THRESHOLDSURE_NOr   SURE_YES)r   rr   r   r   get_confidenceT   s    !z'CharDistributionAnalysis.get_confidencec             C   s   |  j  |  j k S)N)r   ENOUGH_DATA_THRESHOLD)r   r   r   r   got_enough_datad   s    z(CharDistributionAnalysis.got_enough_datac             C   s   d S)Nr   r    r   )r   byte_strr   r   r   r!   i   s    z"CharDistributionAnalysis.get_orderN)__name__
__module____qualname__r+   r(   r'   r&   r   r   r%   r*   r,   r!   r   r   r   r   r   (   s   	r   c                   s.   e  Z d  Z   f d d   Z d d   Z   S)EUCTWDistributionAnalysisc                s2   t  t |   j   t |  _ t |  _ t |  _ d  S)N)	superr1   r   r   r   r   r   r   r   )r   )	__class__r   r   r   r   s    		z"EUCTWDistributionAnalysis.__init__c             C   s6   | d } | d k r. d | d | d d Sd Sd  S)Nr      ^   r      r    r   )r   r-   
first_charr   r   r   r!   x   s    
z#EUCTWDistributionAnalysis.get_order)r.   r/   r0   r   r!   r   r   )r3   r   r1   q   s   r1   c                   s.   e  Z d  Z   f d d   Z d d   Z   S)EUCKRDistributionAnalysisc                s2   t  t |   j   t |  _ t |  _ t |  _ d  S)N)	r2   r8   r   r   r   r   r   r   r   )r   )r3   r   r   r      s    		z"EUCKRDistributionAnalysis.__init__c             C   s6   | d } | d k r. d | d | d d Sd Sd  S)Nr      r5   r   r6   r    r   )r   r-   r7   r   r   r   r!      s    
z#EUCKRDistributionAnalysis.get_order)r.   r/   r0   r   r!   r   r   )r3   r   r8      s   r8   c                   s.   e  Z d  Z   f d d   Z d d   Z   S)GB2312DistributionAnalysisc                s2   t  t |   j   t |  _ t |  _ t |  _ d  S)N)	r2   r:   r   r   r   r	   r   r
   r   )r   )r3   r   r   r      s    		z#GB2312DistributionAnalysis.__init__c             C   sI   | d | d } } | d k rA | d k rA d | d | d Sd Sd  S)Nr   r   r9   r6   r5   r    r   )r   r-   r7   second_charr   r   r   r!      s    z$GB2312DistributionAnalysis.get_order)r.   r/   r0   r   r!   r   r   )r3   r   r:      s   r:   c                   s.   e  Z d  Z   f d d   Z d d   Z   S)Big5DistributionAnalysisc                s2   t  t |   j   t |  _ t |  _ t |  _ d  S)N)	r2   r<   r   r   r   r   r   r   r   )r   )r3   r   r   r      s    		z!Big5DistributionAnalysis.__init__c             C   sd   | d | d } } | d k r\ | d k rE d | d | d d Sd | d | d Sn d Sd  S)	Nr   r      r6      ?   @   r    r   )r   r-   r7   r;   r   r   r   r!      s    z"Big5DistributionAnalysis.get_order)r.   r/   r0   r   r!   r   r   )r3   r   r<      s   r<   c                   s.   e  Z d  Z   f d d   Z d d   Z   S)SJISDistributionAnalysisc                s2   t  t |   j   t |  _ t |  _ t |  _ d  S)N)	r2   rA   r   r   r   r   r   r   r   )r   )r3   r   r   r      s    		z!SJISDistributionAnalysis.__init__c             C   s   | d | d } } | d k r> | d k r> d | d } n1 | d k rk | d k rk d | d d } n d S| | d	 } | d
 k r d } | S)Nr   r                     r@      r    r    r   )r   r-   r7   r;   r$   r   r   r   r!      s    z"SJISDistributionAnalysis.get_order)r.   r/   r0   r   r!   r   r   )r3   r   rA      s   rA   c                   s.   e  Z d  Z   f d d   Z d d   Z   S)EUCJPDistributionAnalysisc                s2   t  t |   j   t |  _ t |  _ t |  _ d  S)N)	r2   rI   r   r   r   r   r   r   r   )r   )r3   r   r   r      s    		z"EUCJPDistributionAnalysis.__init__c             C   s6   | d } | d k r. d | d | d d Sd Sd  S)Nr      r5   r6   r   r    r   )r   r-   r"   r   r   r   r!      s    
z#EUCJPDistributionAnalysis.get_order)r.   r/   r0   r   r!   r   r   )r3   r   rI      s   rI   N)	euctwfreqr   r   r   	euckrfreqr   r   r   
gb2312freqr   r	   r
   big5freqr   r   r   jisfreqr   r   r   objectr   r1   r8   r:   r<   rA   rI   r   r   r   r   <module>   s   I