3 é3íXÃ$ ã @ sØ d dl mZmZmZ d dlmZmZmZ d dlm Z m Z mZ d dlm Z mZmZ d dlmZmZmZ G dd„ deƒZG dd „ d eƒZG d d„ deƒZG dd „ d eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é )Ú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 Zd ZdZdZdZdZdd„ Zdd„ Zd d „ Z dd„ Z d d„ Zdd„ ZdS )ÚCharDistributionAnalysisi g®Gáz®ï?g{®Gáz„?é 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| _dS )zreset analyser, clear any stateFé N)r r r )r r r r r = s zCharDistributionAnalysis.resetc C sX |dkr| j |ƒ}nd}|dkrT| jd7 _|| jk rTd| j| krT| jd7 _dS )z"feed a character with known lengthé r r i Néÿÿÿÿ)Ú get_orderr r r r )r ÚcharZchar_lenÚorderr r r ÚfeedF s zCharDistributionAnalysis.feedc C sT | j dks| j| jkr| jS | j | jkrN| j| j | j | j }|| jk rN|S | jS )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 | jkS )N)r ÚENOUGH_DATA_THRESHOLD)r r r r Úgot_enough_datad s z(CharDistributionAnalysis.got_enough_datac C s dS )Nr r r )r Úbyte_strr r r r! i s z"CharDistributionAnalysis.get_orderN) Ú__name__Ú __module__Ú__qualname__r* r' r&