£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
3X$                 @   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 G dd deZG dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG d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               @   sL   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   s0   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   &/usr/lib/python3.6/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   sX   |dkr| j |}nd}|dkrT|  jd7  _|| jk rTd| j| krT|  jd7  _dS )z"feed a character with known length   r   r   i   N)	get_orderr   r   r   r   )r   charZchar_lenorderr   r   r   feedF   s    
zCharDistributionAnalysis.feedc             C   sT   | j dks| j| jkr| jS | j | jkrN| j| j | j | j  }|| jk rN|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  ZS )EUCTWDistributionAnalysisc                s$   t t| j  t| _t| _t| _d S )N)	superr0   r   r   r   r   r   r   r   )r   )	__class__r   r   r   r   s    z"EUCTWDistributionAnalysis.__init__c             C   s0   |d }|dkr(d|d  |d  d S dS d S )Nr      ^   r      r    r   )r   r,   
first_charr   r   r   r!   x   s    z#EUCTWDistributionAnalysis.get_order)r-   r.   r/   r   r!   __classcell__r   r   )r2   r   r0   q   s   r0   c                   s$   e Zd Z fddZdd Z  ZS )EUCKRDistributionAnalysisc                s$   t t| j  t| _t| _t| _d S )N)	r1   r8   r   r   r   r   r   r   r   )r   )r2   r   r   r      s    z"EUCKRDistributionAnalysis.__init__c             C   s0   |d }|dkr(d|d  |d  d S dS d S )Nr      r4   r   r5   r    r   )r   r,   r6   r   r   r   r!      s    z#EUCKRDistributionAnalysis.get_order)r-   r.   r/   r   r!   r7   r   r   )r2   r   r8      s   r8   c                   s$   e Zd Z fddZdd Z  ZS )GB2312DistributionAnalysisc                s$   t t| j  t| _t| _t| _d S )N)	r1   r:   r   r   r   r	   r   r
   r   )r   )r2   r   r   r      s    z#GB2312DistributionAnalysis.__init__c             C   s>   |d |d  }}|dkr6|dkr6d|d  | d S dS d S )Nr   r   r9   r5   r4   r    r   )r   r,   r6   second_charr   r   r   r!      s    z$GB2312DistributionAnalysis.get_order)r-   r.   r/   r   r!   r7   r   r   )r2   r   r:      s   r:   c                   s$   e Zd Z fddZdd Z  ZS )Big5DistributionAnalysisc                s$   t t| j  t| _t| _t| _d S )N)	r1   r<   r   r   r   r   r   r   r   )r   )r2   r   r   r      s    z!Big5DistributionAnalysis.__init__c             C   sX   |d |d  }}|dkrP|dkr:d|d  | d d S d|d  | d S ndS d S )	Nr   r      r5      ?   @   r    r   )r   r,   r6   r;   r   r   r   r!      s    z"Big5DistributionAnalysis.get_order)r-   r.   r/   r   r!   r7   r   r   )r2   r   r<      s   r<   c                   s$   e Zd Z fddZdd Z  ZS )SJISDistributionAnalysisc                s$   t t| j  t| _t| _t| _d S )N)	r1   rA   r   r   r   r   r   r   r   )r   )r2   r   r   r      s    z!SJISDistributionAnalysis.__init__c             C   sr   |d |d  }}|dkr0|dkr0d|d  }n&|dkrR|dkrRd|d d  }ndS || d	 }|d
krnd}|S )Nr   r                     r@      r    r    r   )r   r,   r6   r;   r#   r   r   r   r!      s    z"SJISDistributionAnalysis.get_order)r-   r.   r/   r   r!   r7   r   r   )r2   r   rA      s   rA   c                   s$   e Zd Z fddZdd Z  ZS )EUCJPDistributionAnalysisc                s$   t t| j  t| _t| _t| _d S )N)	r1   rI   r   r   r   r   r   r   r   )r   )r2   r   r   r      s    z"EUCJPDistributionAnalysis.__init__c             C   s0   |d }|dkr(d|d  |d  d S dS d S )Nr      r4   r5   r   r    r   )r   r,   r"   r   r   r   r!      s    z#EUCJPDistributionAnalysis.get_order)r-   r.   r/   r   r!   r7   r   r   )r2   r   rI      s   rI   N)Z	euctwfreqr   r   r   Z	euckrfreqr   r   r   Z
gb2312freqr   r	   r
   Zbig5freqr   r   r   Zjisfreqr   r   r   objectr   r0   r8   r:   r<   rA   rI   r   r   r   r   <module>   s   I