U
    ¥íXÎ
  ã                   @   sH   d dl mZ d dlmZmZ d dlmZ d dlmZ G dd„ deƒZ	dS )é   )ÚCharSetProber)ÚProbingStateÚMachineState)ÚCodingStateMachine)ÚUTF8_SM_MODELc                       sT   e Zd ZdZ‡ fdd„Z‡ fdd„Zedd„ ƒZedd	„ ƒZd
d„ Z	dd„ Z
‡  ZS )Ú
UTF8Proberg      à?c                    s*   t t| ƒ ¡  ttƒ| _d | _|  ¡  d S )N)Úsuperr   Ú__init__r   r   Ú	coding_smÚ_num_mb_charsÚreset©Úself©Ú	__class__© ú4/usr/lib/python3/dist-packages/chardet/utf8prober.pyr	   &   s    
zUTF8Prober.__init__c                    s"   t t| ƒ ¡  | j ¡  d| _d S )Né    )r   r   r   r
   r   r   r   r   r   r   ,   s    
zUTF8Prober.resetc                 C   s   dS )Nzutf-8r   r   r   r   r   Úcharset_name1   s    zUTF8Prober.charset_namec                 C   s   dS )NÚ r   r   r   r   r   Úlanguage5   s    zUTF8Prober.languagec                 C   s”   |D ]f}| j  |¡}|tjkr,tj| _ qlq|tjkrDtj| _ qlq|tj	kr| j  
¡ dkr|  jd7  _q| jtjkrŽ|  ¡ | jkrŽtj| _| jS )Né   r   )r
   Z
next_stater   ZERRORr   ZNOT_MEZ_stateZITS_MEZFOUND_ITZSTARTZget_current_charlenr   ÚstateZ	DETECTINGÚget_confidenceZSHORTCUT_THRESHOLD)r   Zbyte_strÚcZcoding_stater   r   r   Úfeed9   s    


zUTF8Prober.feedc                 C   s.   d}| j dk r&|| j| j  9 }d| S |S d S )Ng®Gáz®ï?é   g      ð?)r   ÚONE_CHAR_PROB)r   Zunliker   r   r   r   L   s
    
zUTF8Prober.get_confidence)Ú__name__Ú
__module__Ú__qualname__r   r	   r   Úpropertyr   r   r   r   Ú__classcell__r   r   r   r   r   #   s   

r   N)
Zcharsetproberr   Zenumsr   r   Zcodingstatemachiner   Zmbcssmr   r   r   r   r   r   Ú<module>   s   