U
    yc
                     @   sT   d dl mZ ddlmZ ddlmZ ddlmZmZ ddl	m
Z
 G dd deZd	S )
    )Union   )CharSetProber)CodingStateMachine)MachineStateProbingState)UTF8_SM_MODELc                       s   e Zd ZdZdd fddZdd fddZeeddd	Zeedd
dZ	e
eef edddZedddZ  ZS )
UTF8Proberg      ?N)returnc                    s&   t    tt| _d| _|   d S Nr   )super__init__r   r   	coding_sm_num_mb_charsresetself	__class__ =/tmp/pip-build-0we0fmvo/pip/pip/_vendor/chardet/utf8prober.pyr   '   s    

zUTF8Prober.__init__c                    s   t    | j  d| _d S 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_name2   s    zUTF8Prober.charset_namec                 C   s   dS )N r   r   r   r   r   language6   s    zUTF8Prober.language)byte_strr
   c                 C   s   |D ]b}| j |}|tjkr*tj| _ qh|tjkr@tj| _ qh|tj	kr| j 
 dkr|  jd7  _q| jtjkr|  | jkrtj| _| jS )N   r   )r   
next_stater   ERRORr   NOT_ME_stateITS_MEFOUND_ITSTARTget_current_charlenr   state	DETECTINGget_confidenceSHORTCUT_THRESHOLD)r   r   ccoding_stater   r   r   feed:   s    


zUTF8Prober.feedc                 C   s*   d}| j dk r&|| j| j  9 }d| S |S )NgGz?   g      ?)r   ONE_CHAR_PROB)r   unliker   r   r   r&   M   s
    
zUTF8Prober.get_confidence)__name__
__module____qualname__r,   r   r   propertystrr   r   r   bytes	bytearrayr   r*   floatr&   __classcell__r   r   r   r   r	   $   s   r	   N)typingr   charsetproberr   codingstatemachiner   enumsr   r   mbcssmr   r	   r   r   r   r   <module>   s
   