U
    ]9Y6                     @   s,   d dl mZ d dlmZ G dd deZdS )   )CharSetProber)ProbingStatec                       s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZ fddZdd Zdd Zdd Zdd Zdd Zedd Zedd Zedd  Z  ZS )!HebrewProber                                 g{Gz?z
ISO-8859-8zwindows-1255c                    s>   t t|   d | _d | _d | _d | _d | _d | _| 	  d S N)
superr   __init___final_char_logical_score_final_char_visual_score_prev_before_prev_logical_prober_visual_proberresetself	__class__ 6/usr/lib/python3/dist-packages/chardet/hebrewprober.pyr      s    zHebrewProber.__init__c                 C   s   d| _ d| _d| _d| _d S )N     )r   r   r   r   r   r   r   r   r      s    zHebrewProber.resetc                 C   s   || _ || _d S r   )r   r   )r   ZlogicalProberZvisualProberr   r   r   set_model_probers   s    zHebrewProber.set_model_probersc                 C   s   || j | j| j| j| jfkS r   )	FINAL_KAF	FINAL_MEM	FINAL_NUNFINAL_PEFINAL_TSADIr   cr   r   r   is_final   s     zHebrewProber.is_finalc                 C   s   || j | j| j| jfkS r   )
NORMAL_KAF
NORMAL_MEM
NORMAL_NUN	NORMAL_PEr(   r   r   r   is_non_final   s    
 zHebrewProber.is_non_finalc                 C   s   | j tjkrtjS | |}|D ]}|dkrn| jdkr| | jrR|  jd7  _q| | jr|  j	d7  _	n,| jdkr| | jr|dkr|  j	d7  _	| j| _|| _q tj
S )Nr!   r   )stater   NOT_MEZfilter_high_byte_onlyr   r*   r   r   r/   r   	DETECTING)r   Zbyte_strZcurr   r   r   feed   s&    



zHebrewProber.feedc                 C   sx   | j | j }|| jkr| jS || j kr.| jS | j | j  }|| jkrR| jS || j k rd| jS |dk rr| jS | jS )Ng        )	r   r   MIN_FINAL_CHAR_DISTANCELOGICAL_HEBREW_NAMEVISUAL_HEBREW_NAMEr   Zget_confidencer   MIN_MODEL_DISTANCE)r   ZfinalsubZmodelsubr   r   r   charset_name   s    

zHebrewProber.charset_namec                 C   s   dS )NZHebrewr   r   r   r   r   language  s    zHebrewProber.languagec                 C   s(   | j jtjkr"| jjtjkr"tjS tjS r   )r   r0   r   r1   r   r2   r   r   r   r   r0     s
    zHebrewProber.state)__name__
__module____qualname__r#   r+   r$   r,   r%   r-   r&   r.   r'   ZNORMAL_TSADIr4   r7   r6   r5   r   r   r"   r*   r/   r3   propertyr8   r9   r0   __classcell__r   r   r   r   r      s4   

;

r   N)Zcharsetproberr   Zenumsr   r   r   r   r   r   <module>   s   c