3 Re$ @ s d dl mZmZmZ d dlmZmZmZ d dlm Z m Z mZ d dlm Z mZmZ d dlmZmZmZ G dd deZG dd d eZG d d deZG dd d eZG dd deZG dd deZG dd deZdS ) )EUCTW_CHAR_TO_FREQ_ORDEREUCTW_TABLE_SIZE EUCTW_TYPICAL_DISTRIBUTION_RATIO)EUCKR_CHAR_TO_FREQ_ORDEREUCKR_TABLE_SIZE EUCKR_TYPICAL_DISTRIBUTION_RATIO)GB2312_CHAR_TO_FREQ_ORDERGB2312_TABLE_SIZE!GB2312_TYPICAL_DISTRIBUTION_RATIO)BIG5_CHAR_TO_FREQ_ORDERBIG5_TABLE_SIZEBIG5_TYPICAL_DISTRIBUTION_RATIO)JIS_CHAR_TO_FREQ_ORDERJIS_TABLE_SIZEJIS_TYPICAL_DISTRIBUTION_RATIOc @ sL e Zd ZdZdZdZdZdd Zdd Zd d Z dd Z d d Zdd ZdS )CharDistributionAnalysisi gGz?g{Gz? c C s0 d | _ d | _d | _d | _d | _d | _| j d S )N)_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsreset)self r /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/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| 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 charchar_lenorderr 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_THRESHOLDSURE_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' r&