a lj$ @ 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 | _| d S N)_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsresetself r H/usr/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 charZchar_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 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&