
) X
$                 @   sO  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 d Z d Z d	 Z d
 Z Gd d   d  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)   )EUCTWCharToFreqOrderEUCTW_TABLE_SIZE EUCTW_TYPICAL_DISTRIBUTION_RATIO)EUCKRCharToFreqOrderEUCKR_TABLE_SIZE EUCKR_TYPICAL_DISTRIBUTION_RATIO)GB2312CharToFreqOrderGB2312_TABLE_SIZE!GB2312_TYPICAL_DISTRIBUTION_RATIO)Big5CharToFreqOrderBIG5_TABLE_SIZEBIG5_TYPICAL_DISTRIBUTION_RATIO)JISCharToFreqOrderJIS_TABLE_SIZEJIS_TYPICAL_DISTRIBUTION_RATIO)wrap_ordi   gGz?g{Gz?   c               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)CharDistributionAnalysisc             C   s)   d  |  _  d  |  _ d  |  _ |  j   d  S)N)_mCharToFreqOrder_mTableSize_mTypicalDistributionRatioreset)self r   Z/home/ubuntu/projects/ifolica/build/requests/requests/packages/chardet/chardistribution.py__init__/   s    			z!CharDistributionAnalysis.__init__c             C   s   d |  _  d |  _ d |  _ d S)zreset analyser, clear any stateF    N)Z_mDone_mTotalChars_mFreqChars)r   r   r   r   r   ;   s    		zCharDistributionAnalysis.resetc             C   s}   | d k r |  j  |  } n d } | d k ry |  j d 7_ | |  j k  ry d |  j | k rv |  j d 7_ qv qy n  d S)z"feed a character with known length   r   r   i   N)	get_orderr   r   r   r   )r   aBufZaCharLenorderr   r   r   feedD   s    zCharDistributionAnalysis.feedc             C   si   |  j  d k s |  j t k r" t S|  j  |  j k re |  j |  j  |  j |  j } | t k  re | Sn  t S)z(return confidence based on existing datar   )r   r   MINIMUM_DATA_THRESHOLDSURE_NOr   SURE_YES)r   rr   r   r   get_confidenceR   s    z'CharDistributionAnalysis.get_confidencec             C   s   |  j  t k S)N)r   ENOUGH_DATA_THRESHOLD)r   r   r   r   got_enough_datab   s    z(CharDistributionAnalysis.got_enough_datac             C   s   d S)Nr   r    r   )r   r"   r   r   r   r!   g   s    z"CharDistributionAnalysis.get_orderN)	__name__
__module____qualname__r   r   r$   r)   r+   r!   r   r   r   r   r   .   s   	r   c               @   s(   e  Z d  Z d d   Z d d   Z d S)EUCTWDistributionAnalysisc             C   s,   t  j |   t |  _ t |  _ t |  _ d  S)N)r   r   r   r   r   r   r   r   )r   r   r   r   r   p   s    		z"EUCTWDistributionAnalysis.__init__c             C   sB   t  | d  } | d k r: d | d t  | d  d Sd Sd  S)Nr      ^   r      r    )r   )r   r"   
first_charr   r   r   r!   v   s    z#EUCTWDistributionAnalysis.get_orderN)r,   r-   r.   r   r!   r   r   r   r   r/   o   s   r/   c               @   s(   e  Z d  Z d d   Z d d   Z d S)EUCKRDistributionAnalysisc             C   s,   t  j |   t |  _ t |  _ t |  _ d  S)N)r   r   r   r   r   r   r   r   )r   r   r   r   r      s    		z"EUCKRDistributionAnalysis.__init__c             C   sB   t  | d  } | d k r: d | d t  | d  d Sd Sd  S)Nr      r1   r   r2   r    )r   )r   r"   r3   r   r   r   r!      s    z#EUCKRDistributionAnalysis.get_orderN)r,   r-   r.   r   r!   r   r   r   r   r4      s   r4   c               @   s(   e  Z d  Z d d   Z d d   Z d S)GB2312DistributionAnalysisc             C   s,   t  j |   t |  _ t |  _ t |  _ d  S)N)r   r   r   r   r	   r   r
   r   )r   r   r   r   r      s    		z#GB2312DistributionAnalysis.__init__c             C   sU   t  | d  t  | d  } } | d k rM | d k rM d | d | d Sd Sd  S)Nr   r   r5   r2   r1   r    )r   )r   r"   r3   second_charr   r   r   r!      s    !z$GB2312DistributionAnalysis.get_orderN)r,   r-   r.   r   r!   r   r   r   r   r6      s   r6   c               @   s(   e  Z d  Z d d   Z d d   Z d S)Big5DistributionAnalysisc             C   s,   t  j |   t |  _ t |  _ t |  _ d  S)N)r   r   r   r   r   r   r   r   )r   r   r   r   r      s    		z!Big5DistributionAnalysis.__init__c             C   sp   t  | d  t  | d  } } | d k rh | d k rQ d | d | d d Sd | d | d Sn d Sd  S)	Nr   r      r2      ?   @   r    )r   )r   r"   r3   r7   r   r   r   r!      s    !z"Big5DistributionAnalysis.get_orderN)r,   r-   r.   r   r!   r   r   r   r   r8      s   r8   c               @   s(   e  Z d  Z d d   Z d d   Z d S)SJISDistributionAnalysisc             C   s,   t  j |   t |  _ t |  _ t |  _ d  S)N)r   r   r   r   r   r   r   r   )r   r   r   r   r      s    		z!SJISDistributionAnalysis.__init__c             C   s   t  | d  t  | d  } } | d k rJ | d k rJ d | d } n1 | d k rw | d k rw d | d d } n d S| | d	 } | d
 k r d } n  | S)Nr   r                     r<      r    r    )r   )r   r"   r3   r7   r#   r   r   r   r!      s    !	z"SJISDistributionAnalysis.get_orderN)r,   r-   r.   r   r!   r   r   r   r   r=      s   r=   c               @   s(   e  Z d  Z d d   Z d d   Z d S)EUCJPDistributionAnalysisc             C   s,   t  j |   t |  _ t |  _ t |  _ d  S)N)r   r   r   r   r   r   r   r   )r   r   r   r   r      s    		z"EUCJPDistributionAnalysis.__init__c             C   sB   t  | d  } | d k r: d | d t  | d  d Sd Sd  S)Nr      r1   r2   r   r    )r   )r   r"   charr   r   r   r!      s    z#EUCJPDistributionAnalysis.get_orderN)r,   r-   r.   r   r!   r   r   r   r   rE      s   rE   N)!Z	euctwfreqr   r   r   Z	euckrfreqr   r   r   Z
gb2312freqr   r	   r
   Zbig5freqr   r   r   Zjisfreqr   r   r   compatr   r*   r'   r&   r%   r   r/   r4   r6   r8   r=   rE   r   r   r   r   <module>   s    A