a €™ReÃ$ ã @ 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 | _| ¡ d S ©N)Ú_char_to_freq_orderÚ_table_sizeÚtypical_distribution_ratioÚ_doneÚ_total_charsÚ_freq_charsÚreset©Úself© r ú“/builddir/build/BUILDROOT/alt-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/pip/_vendor/chardet/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| |¡}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 ÚcharÚchar_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 r )r ÚENOUGH_DATA_THRESHOLDr r r r Úgot_enough_datad s z(CharDistributionAnalysis.got_enough_datac C s dS )Nr" 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 Zd Z‡ fdd„Zdd„ Z‡ ZS )ÚEUCTWDistributionAnalysisc s$ t t| ƒ ¡ t| _t| _t| _d S r ) Úsuperr3 r r r r r r r r ©Ú __class__r r r r s z"EUCTWDistributionAnalysis.__init__c C s0 |d }|dkr(d|d |d d S dS d S )Nr éÄ é^ r é¡ r" r ©r r/ Ú first_charr r r r# x s z#EUCTWDistributionAnalysis.get_order©r0 r1 r2 r r# Ú __classcell__r r r5 r r3 q s r3 c s$ e Zd Z‡ fdd„Zdd„ Z‡ ZS )ÚEUCKRDistributionAnalysisc s$ t t| ƒ ¡ t| _t| _t| _d S r ) r4 r> r r r r r r r r r5 r r r … s z"EUCKRDistributionAnalysis.__init__c C s0 |d }|dkr(d|d |d d S dS d S )Nr é° r8 r r9 r" r r: r r r r# ‹ s z#EUCKRDistributionAnalysis.get_orderr<