a
   KM                   @   s`   d dl mZ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 G dd deZd	S )
   )ProbingStateMachineState)MultiByteCharSetProber)CodingStateMachine)EUCJPDistributionAnalysis)EUCJPContextAnalysis)EUCJP_SM_MODELc                       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 )EUCJPProberc                    s4   t t|   tt| _t | _t | _	| 
  d S N)superr	   __init__r   r   	coding_smr   distribution_analyzerr   context_analyzerresetself	__class__ 7/usr/lib/python3.9/site-packages/chardet/eucjpprober.pyr   %   s
    
zEUCJPProber.__init__c                    s   t t|   | j  d S r
   )r   r	   r   r   r   r   r   r   r   ,   s    zEUCJPProber.resetc                 C   s   dS )NzEUC-JPr   r   r   r   r   charset_name0   s    zEUCJPProber.charset_namec                 C   s   dS )NZJapaneser   r   r   r   r   language4   s    zEUCJPProber.languagec                 C   s6  t t|D ]}| j|| }|tjkrN| jd| j| j	| t
j| _ qq|tjkrft
j| _ qq|tjkr| j }|dkr|d | jd< | j| j| | j| j| q| j||d |d  | | j||d |d  | q|d | jd< | jt
jkr0| j r0|  | jkr0t
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_ME_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   s<    




zEUCJPProber.feedc                 C   s   | j  }| j }t||S r
   )r   r"   r   max)r   Zcontext_confZdistrib_confr   r   r   r"   Y   s    

zEUCJPProber.get_confidence)__name__
__module____qualname__r   r   propertyr   r   r    r"   __classcell__r   r   r   r   r	   $   s   

!r	   N)Zenumsr   r   Zmbcharsetproberr   Zcodingstatemachiner   Zchardistributionr   Zjpcntxr   Zmbcssmr   r	   r   r   r   r   <module>   s   