a
    Oc%                     @   s   d dl mZmZmZ d dlmZmZmZ d dlm	Z	m
Z
mZ d dlmZmZmZ d dlmZmZmZ d dlmZ G dd dZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )   )BIG5_CHAR_TO_FREQ_ORDERBIG5_TABLE_SIZEBIG5_TYPICAL_DISTRIBUTION_RATIO)EUCKR_CHAR_TO_FREQ_ORDEREUCKR_TABLE_SIZE EUCKR_TYPICAL_DISTRIBUTION_RATIO)EUCTW_CHAR_TO_FREQ_ORDEREUCTW_TABLE_SIZE EUCTW_TYPICAL_DISTRIBUTION_RATIO)GB2312_CHAR_TO_FREQ_ORDERGB2312_TABLE_SIZE!GB2312_TYPICAL_DISTRIBUTION_RATIO)JIS_CHAR_TO_FREQ_ORDERJIS_TABLE_SIZEJIS_TYPICAL_DISTRIBUTION_RATIO)JOHAB_TO_EUCKR_ORDER_TABLEc                   @   sL   e Zd ZdZdZdZdZdd Zdd Zd	d
 Z	dd Z
dd Zdd ZdS )CharDistributionAnalysisi   gGz?g{Gz?   c                 C   s2   t  | _d | _d | _d | _d | _d | _|   d S N)tuple_char_to_freq_order_table_sizetypical_distribution_ratio_done_total_chars_freq_charsresetself r   \/var/www/html/megastudio/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py__init__>   s    z!CharDistributionAnalysis.__init__c                 C   s   d| _ d| _d| _dS )zreset analyser, clear any stateF    N)r   r   r   r   r   r   r    r   M   s    zCharDistributionAnalysis.resetc                 C   sX   |dkr|  |}nd}|dkrT|  jd7  _|| jk rTd| j| krT|  jd7  _dS )z"feed a character with known length   r"   r   i   N)	get_orderr   r   r   r   )r   charZchar_lenorderr   r   r    feedV   s    
zCharDistributionAnalysis.feedc                 C   sT   | j dks| j| jkr| jS | j | jkrN| j| j | j | j  }|| jk rN|S | jS )z(return confidence based on existing datar"   )r   r   MINIMUM_DATA_THRESHOLDSURE_NOr   SURE_YES)r   rr   r   r    get_confidenced   s    
z'CharDistributionAnalysis.get_confidencec                 C   s   | j | jkS r   )r   ENOUGH_DATA_THRESHOLDr   r   r   r    got_enough_datau   s    z(CharDistributionAnalysis.got_enough_datac                 C   s   dS )Nr$   r   )r   _r   r   r    r%   z   s    z"CharDistributionAnalysis.get_orderN)__name__
__module____qualname__r.   r+   r*   r)   r!   r   r(   r-   r/   r%   r   r   r   r    r   8   s   	r   c                       s$   e Zd Z fddZdd Z  ZS )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 }|dkr(d|d  |d  d S dS )Nr"      ^   r      r$   r   r   byte_str
first_charr   r   r    r%      s    z#EUCTWDistributionAnalysis.get_orderr1   r2   r3   r!   r%   __classcell__r   r   r6   r    r4      s   r4   c                       s$   e Zd Z fddZdd Z  ZS )EUCKRDistributionAnalysisc                    s    t    t| _t| _t| _d S r   r5   r!   r   r   r   r   r   r   r   r6   r   r    r!      s    
z"EUCKRDistributionAnalysis.__init__c                 C   s,   |d }|dkr(d|d  |d  d S dS )Nr"      r9   r   r:   r$   r   r;   r   r   r    r%      s    z#EUCKRDistributionAnalysis.get_orderr>   r   r   r6   r    r@      s   r@   c                       s$   e Zd Z fddZdd Z  ZS )JOHABDistributionAnalysisc                    s    t    t| _t| _t| _d S r   rA   r   r6   r   r    r!      s    
z"JOHABDistributionAnalysis.__init__c                 C   s@   |d }d|  krdk r<n n|d |d  }t |dS dS )Nr"            r   r$   )r   get)r   r<   r=   coder   r   r    r%      s
    z#JOHABDistributionAnalysis.get_orderr>   r   r   r6   r    rC      s   rC   c                       s$   e Zd Z fddZdd Z  ZS )GB2312DistributionAnalysisc                    s    t    t| _t| _t| _d S r   )r5   r!   r   r   r   r   r   r   r   r6   r   r    r!      s    
z#GB2312DistributionAnalysis.__init__c                 C   s:   |d |d  }}|dkr6|dkr6d|d  | d S dS )Nr"   r   rB   r:   r9   r$   r   r   r<   r=   second_charr   r   r    r%      s    z$GB2312DistributionAnalysis.get_orderr>   r   r   r6   r    rI      s   rI   c                       s$   e Zd Z fddZdd Z  ZS )Big5DistributionAnalysisc                    s    t    t| _t| _t| _d S r   )r5   r!   r   r   r   r   r   r   r   r6   r   r    r!      s    
z!Big5DistributionAnalysis.__init__c                 C   sR   |d |d  }}|dkrN|dkr:d|d  | d d S d|d  | d S dS )	Nr"   r      r:      ?   @   r$   r   rJ   r   r   r    r%      s    z"Big5DistributionAnalysis.get_orderr>   r   r   r6   r    rL      s   rL   c                       s$   e Zd Z fddZdd Z  ZS )SJISDistributionAnalysisc                    s    t    t| _t| _t| _d S r   r5   r!   r   r   r   r   r   r   r   r6   r   r    r!      s    
z!SJISDistributionAnalysis.__init__c                 C   s   |d |d  }}d|  kr&dkr8n nd|d  }n.d|  krLdkrbn nd|d d  }nd	S || d
 }|dkr~d	}|S )Nr"   r                     r$   rP      r   )r   r<   r=   rK   r'   r   r   r    r%      s    z"SJISDistributionAnalysis.get_orderr>   r   r   r6   r    rQ      s   rQ   c                       s$   e Zd Z fddZdd Z  ZS )EUCJPDistributionAnalysisc                    s    t    t| _t| _t| _d S r   rR   r   r6   r   r    r!      s    
z"EUCJPDistributionAnalysis.__init__c                 C   s,   |d }|dkr(d|d  |d  d S dS )Nr"      r9   r:   r   r$   r   )r   r<   r&   r   r   r    r%      s    z#EUCJPDistributionAnalysis.get_orderr>   r   r   r6   r    rZ      s   rZ   N)Zbig5freqr   r   r   Z	euckrfreqr   r   r   Z	euctwfreqr   r	   r
   Z
gb2312freqr   r   r   Zjisfreqr   r   r   Z	johabfreqr   r   r4   r@   rC   rI   rL   rQ   rZ   r   r   r   r    <module>   s   J