`(]: d d dl mZmZ ddlmZmZmZ ddlmZm Z m Z ddlmZm Z mZ ddlmZmZmZ ddlmZmZmZ ddlmZ G d d Z G d de Z G d de Z G d de Z G d de Z G d de Z G d de Z G d de Z dS ) )TupleUnion )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 e Zd ZdZdZdZdZddZddZd e e ef d eddfdZ defdZdefd Zde e ef defdZdS )CharDistributionAnalysisi gGz?g{Gz? returnNc t | _ d| _ d| _ d| _ d| _ d| _ | d S )Nr g F)tuple_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsresetselfs j/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/chardet/chardistribution.py__init__z!CharDistributionAnalysis.__init__@ sJ 5:GG +.' c 0 d| _ d| _ d| _ dS )zreset analyser, clear any stateFr N)r r r! r# s r% r" zCharDistributionAnalysis.resetO s! r' charchar_lenc |dk r| | }nd}|dk r>| xj dz c_ || j k r%d| j | k r| xj dz c_ dS dS dS dS )z"feed a character with known length r r i N) get_orderr r r r! )r$ r) r* orders r% feedzCharDistributionAnalysis.feedX s q==NN4((EEEA::"t'''1%888$$)$$$$ : ('88r' c | j dk s| j | j k r| j S | j | j k r,| j | j | j z | j z z }|| j k r|S | j S )z(return confidence based on existing datar )r r! MINIMUM_DATA_THRESHOLDSURE_NOr SURE_YES)r$ rs r% get_confidencez'CharDistributionAnalysis.get_confidencef s| !!T%59T%T%T< 000 "T%559XXA 4= }r' c " | j | j k S N)r ENOUGH_DATA_THRESHOLDr# s r% got_enough_dataz(CharDistributionAnalysis.got_enough_dataw s 4#===r' _c dS )Nr- )r$ r; s r% r. z"CharDistributionAnalysis.get_order| s rr' r N)__name__ __module____qualname__r9 r4 r3 r2 r&