
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
ÝPf¾  ã               @   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| ƒjƒ  ttƒ| _tƒ | _tƒ | _	| j
ƒ  d S )N)Úsuperr	   Ú__init__r   r   Ú	coding_smr   Údistribution_analyzerr   Úcontext_analyzerÚreset)Úself)Ú	__class__© ú /usr/lib/python3.6/sjisprober.pyr   %   s
    
zSJISProber.__init__c                s   t t| ƒjƒ  | jjƒ  d S )N)r
   r	   r   r   )r   )r   r   r   r   ,   s    zSJISProber.resetc             C   s   | j jS )N)r   Úcharset_name)r   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   sL  �xt t|ƒƒD ]ò}| jj|| ƒ}|tjkrP| jjd| j| j	|ƒ t
j| _P q|tjkrft
j| _P q|tjkr| jjƒ }|dkr¾|d | jd< | jj| jd| d … |ƒ | jj| j|ƒ q| jj||d | |d | … |ƒ | jj||d |d … |ƒ qW |d | jd< | jt
jk�rF| jjƒ �rF| jƒ | jk�rFt
j| _| jS )Nz!%s %s prober hit error at byte %sé    r   é   é   éÿÿÿÿ)ÚrangeÚlenr   Z
next_stater   ZERRORZ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   s6    




zSJISProber.feedc             C   s   | j jƒ }| jjƒ }t||ƒS )N)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   