o
    ÕH´_¾  ã                   @   s`   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZ G dd„ deƒZd	S )
é   )ÚMultiByteCharSetProber)ÚCodingStateMachine)ÚSJISDistributionAnalysis)ÚSJISContextAnalysis)ÚSJIS_SM_MODEL)ÚProbingStateÚMachineStatec                       sP   e 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 )Ú
SJISProberc                    s4   t t| ƒ ¡  ttƒ| _tƒ | _tƒ | _	|  
¡  d S ©N)Úsuperr	   Ú__init__r   r   Ú	coding_smr   Údistribution_analyzerr   Úcontext_analyzerÚreset©Úself©Ú	__class__© ú4/usr/lib/python3/dist-packages/chardet/sjisprober.pyr   %   s
   
zSJISProber.__init__c                    s   t t| ƒ ¡  | j ¡  d S r
   )r   r	   r   r   r   r   r   r   r   ,   s   zSJISProber.resetc                 C   s   | j jS r
   )r   Úcharset_namer   r   r   r   r   0   s   zSJISProber.charset_namec                 C   s   dS )NZJapaneser   r   r   r   r   Úlanguage4   s   zSJISProber.languagec                 C   s@  t t|ƒƒD ]y}| j || ¡}|tjkr&| j d| j| j	|¡ t
j| _ nZ|tjkr1t
j| _ nO|tjkr| j ¡ }|dkr]|d | jd< | j | jd| d … |¡ | j | j|¡ q| j ||d | |d | … |¡ | j ||d |d … |¡ q|d | jd< | jt
jkr| j ¡ r|  ¡ | jkrt
j| _| jS )Nz!%s %s prober hit error at byte %sé    r   é   é   éÿÿÿÿ)ÚrangeÚlenr   Z
next_stater   ZERRORÚloggerÚdebugr   r   r   ZNOT_MEZ_stateZITS_MEZFOUND_ITZSTARTZget_current_charlenZ
_last_charr   Úfeedr   ÚstateZ	DETECTINGZgot_enough_dataÚget_confidenceZSHORTCUT_THRESHOLD)r   Zbyte_strÚiZcoding_stateZchar_lenr   r   r   r!   8   sF   

ÿ


ÿÿÿÿ€
ÿzSJISProber.feedc                 C   s   | j  ¡ }| j ¡ }t||ƒS r
   )r   r#   r   Úmax)r   Zcontext_confZdistrib_confr   r   r   r#   Y   s   


zSJISProber.get_confidence)Ú__name__Ú
__module__Ú__qualname__r   r   Úpropertyr   r   r!   r#   Ú__classcell__r   r   r   r   r	   $   s    

!r	   N)Zmbcharsetproberr   Zcodingstatemachiner   Zchardistributionr   Zjpcntxr   Zmbcssmr   Zenumsr   r   r	   r   r   r   r   Ú<module>   s   