U ʗRe% @ s d dl mZmZmZ d dlmZmZmZ d dlm Z m Z mZ d dlm Z mZmZ d dlmZmZmZ d dlmZ G dd dZG d d d eZG dd deZG d d deZG dd deZG dd deZG dd deZG dd deZdS ) )BIG5_CHAR_TO_FREQ_ORDERBIG5_TABLE_SIZEBIG5_TYPICAL_DISTRIBUTION_RATIO)EUCKR_CHAR_TO_FREQ_ORDEREUCKR_TABLE_SIZE EUCKR_TYPICAL_DISTRIBUTION_RATIO)EUCTW_CHAR_TO_FREQ_ORDEREUCTW_TABLE_SIZE EUCTW_TYPICAL_DISTRIBUTION_RATIO)GB2312_CHAR_TO_FREQ_ORDERGB2312_TABLE_SIZE!GB2312_TYPICAL_DISTRIBUTION_RATIO)JIS_CHAR_TO_FREQ_ORDERJIS_TABLE_SIZEJIS_TYPICAL_DISTRIBUTION_RATIO)JOHAB_TO_EUCKR_ORDER_TABLEc @ sL e Zd ZdZdZdZdZdd Zdd Zd d Z dd Z d d Zdd ZdS )CharDistributionAnalysisi gGz?g{Gz? c C s2 t | _d | _d | _d | _d | _d | _| d S N)tuple_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsresetself r /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/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 M 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 charchar_lenorderr r r feedV 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_confidenced s z'CharDistributionAnalysis.get_confidencec C s | j | jkS r )r ENOUGH_DATA_THRESHOLDr r r r got_enough_datau s z(CharDistributionAnalysis.got_enough_datac C s dS )Nr$ r )r _r r r r% z s z"CharDistributionAnalysis.get_orderN) __name__ __module____qualname__r/ r, r+ r* r! r r) r. r0 r% r r r r r 8 s r c s$ e Zd Z fddZdd Z ZS )EUCTWDistributionAnalysisc s t t| _t| _t| _d S r )superr! r r r r r r r __class__r r r! s z"EUCTWDistributionAnalysis.__init__c C s, |d }|dkr(d|d |d d S dS )Nr" ^ r r$ r r byte_str first_charr r r r% s z#EUCTWDistributionAnalysis.get_orderr2 r3 r4 r! r% __classcell__r r r7 r r5 s r5 c s$ e Zd Z fddZdd Z ZS )EUCKRDistributionAnalysisc s t t| _t| _t| _d S r r6 r! r r r r r r r r7 r r r! s z"EUCKRDistributionAnalysis.__init__c C s, |d }|dkr(d|d |d d S dS )Nr" r: r r; r$ r r<