B
    x.;]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__ 3lib/python3.7/site-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 )N)r   r   )r   ZlogicalProberZvisualProberr   r   r   set_model_probers   s    zHebrewProber.set_model_probersc             C   s   || j | j| j| j| jgkS )N)	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gkS )N)
NORMAL_KAF
NORMAL_MEM
NORMAL_NUN	NORMAL_PE)r   r%   r   r   r   is_non_final   s    
zHebrewProber.is_non_finalc             C   s   | j tjkrtjS | |}x|D ]}|dkrp| jdkr| | jrT|  jd7  _q| | jr|  j	d7  _	n,| jdkr| | jr|dkr|  j	d7  _	| j| _|| _q"W 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 )N)r   r,   r   r-   r   r.   )r   r   r   r   r,     s    zHebrewProber.state)__name__
__module____qualname__r    r'   r!   r(   r"   r)   r#   r*   r$   ZNORMAL_TSADIr0   r3   r2   r1   r   r   r   r&   r+   r/   propertyr4   r5   r,   __classcell__r   r   )r   r   r      s.   

;r   N)Zcharsetproberr   Zenumsr   r   r   r   r   r   <module>   s   c