o
    ~#gÃ$  ã                   @   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 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 )é   )ÚEUCTW_CHAR_TO_FREQ_ORDERÚEUCTW_TABLE_SIZEÚ EUCTW_TYPICAL_DISTRIBUTION_RATIO)ÚEUCKR_CHAR_TO_FREQ_ORDERÚEUCKR_TABLE_SIZEÚ EUCKR_TYPICAL_DISTRIBUTION_RATIO)ÚGB2312_CHAR_TO_FREQ_ORDERÚGB2312_TABLE_SIZEÚ!GB2312_TYPICAL_DISTRIBUTION_RATIO)ÚBIG5_CHAR_TO_FREQ_ORDERÚBIG5_TABLE_SIZEÚBIG5_TYPICAL_DISTRIBUTION_RATIO)ÚJIS_CHAR_TO_FREQ_ORDERÚJIS_TABLE_SIZEÚJIS_TYPICAL_DISTRIBUTION_RATIOc                   @   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   g®Gáz®ï?g{®Gáz„?é   c                 C   s0   d | _ d | _d | _d | _d | _d | _|  ¡  d S ©N)Ú_char_to_freq_orderÚ_table_sizeÚtypical_distribution_ratioÚ_doneÚ_total_charsÚ_freq_charsÚreset©Úself© r   ú‰/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/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   =   s   
zCharDistributionAnalysis.resetc                 C   sd   |dkr
|   |¡}nd}|dkr,|  jd7  _|| jk r.d| j| kr0|  jd7  _dS dS dS dS )z"feed a character with known lengthé   éÿÿÿÿr    r   i   N)Ú	get_orderr   r   r   r   )r   ÚcharÚchar_lenÚorderr   r   r   ÚfeedF   s   
ûzCharDistributionAnalysis.feedc                 C   sT   | j dks| j| jkr| jS | j | jkr'| j| j | j | j  }|| jk r'|S | jS )z(return confidence based on existing datar    )r   r   ÚMINIMUM_DATA_THRESHOLDÚSURE_NOr   ÚSURE_YES)r   Úrr   r   r   Úget_confidenceT   s   ÿ
z'CharDistributionAnalysis.get_confidencec                 C   s   | j | jkS r   )r   ÚENOUGH_DATA_THRESHOLDr   r   r   r   Úgot_enough_datad   s   z(CharDistributionAnalysis.got_enough_datac                 C   s   dS )Nr"   r   )r   Úbyte_strr   r   r   r#   i   s   z"CharDistributionAnalysis.get_orderN)Ú__name__Ú
__module__Ú__qualname__r-   r*   r)   r(   r   r   r'   r,   r.   r#   r   r   r   r   r   (   s    	r   c                       ó$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚEUCTWDistributionAnalysisc                    ó$   t t| ƒ ¡  t| _t| _t| _d S r   )	Úsuperr4   r   r   r   r   r   r   r   r   ©Ú	__class__r   r   r   r   ó   
z"EUCTWDistributionAnalysis.__init__c                 C   ó,   |d }|dkrd|d  |d  d S dS )Nr    éÄ   é^   r   é¡   r"   r   ©r   r/   Ú
first_charr   r   r   r#   x   ó   z#EUCTWDistributionAnalysis.get_order©r0   r1   r2   r   r#   Ú__classcell__r   r   r7   r   r4   q   ó    r4   c                       r3   )ÚEUCKRDistributionAnalysisc                    r5   r   )	r6   rD   r   r   r   r   r   r   r   r   r7   r   r   r   …   r9   z"EUCKRDistributionAnalysis.__init__c                 C   r:   )Nr    é°   r<   r   r=   r"   r   r>   r   r   r   r#   ‹   r@   z#EUCKRDistributionAnalysis.get_orderrA   r   r   r7   r   rD   „   rC   rD   c                       r3   )ÚGB2312DistributionAnalysisc                    r5   r   )	r6   rF   r   r   r   r	   r   r
   r   r   r7   r   r   r   ˜   r9   z#GB2312DistributionAnalysis.__init__c                 C   s:   |d |d }}|dkr|dkrd|d  | d S dS )Nr    r   rE   r=   r<   r"   r   ©r   r/   r?   Úsecond_charr   r   r   r#   ž   s   z$GB2312DistributionAnalysis.get_orderrA   r   r   r7   r   rF   —   rC   rF   c                       r3   )ÚBig5DistributionAnalysisc                    r5   r   )	r6   rI   r   r   r   r   r   r   r   r   r7   r   r   r   «   r9   z!Big5DistributionAnalysis.__init__c                 C   sR   |d |d }}|dkr'|dkrd|d  | d d S d|d  | d S dS )	Nr    r   é¤   r=   é   é?   é@   r"   r   rG   r   r   r   r#   ±   s   z"Big5DistributionAnalysis.get_orderrA   r   r   r7   r   rI   ª   rC   rI   c                       r3   )ÚSJISDistributionAnalysisc                    r5   r   )	r6   rN   r   r   r   r   r   r   r   r   r7   r   r   r   Á   r9   z!SJISDistributionAnalysis.__init__c                 C   sr   |d |d }}|dkr|dkrd|d  }n|dkr)|dkr)d|d d  }nd	S || d
 }|dkr7d	}|S )Nr    r   é   éŸ   é¼   éà   éï   é   r"   rM   é   r   )r   r/   r?   rH   r&   r   r   r   r#   Ç   s   z"SJISDistributionAnalysis.get_orderrA   r   r   r7   r   rN   À   rC   rN   c                       r3   )ÚEUCJPDistributionAnalysisc                    r5   r   )	r6   rV   r   r   r   r   r   r   r   r   r7   r   r   r   Ú   r9   z"EUCJPDistributionAnalysis.__init__c                 C   s,   |d }|dkrd|d  |d  d S dS )Nr    é    r<   r=   r   r"   r   )r   r/   r$   r   r   r   r#   à   r@   z#EUCJPDistributionAnalysis.get_orderrA   r   r   r7   r   rV   Ù   rC   rV   N)Ú	euctwfreqr   r   r   Ú	euckrfreqr   r   r   Ú
gb2312freqr   r	   r
   Úbig5freqr   r   r   Újisfreqr   r   r   Úobjectr   r4   rD   rF   rI   rN   rV   r   r   r   r   Ú<module>   s   I