U
    yc8                     @   sH   d dl mZ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 )	    )OptionalUnion   )CharSetProber)ProbingState)SingleByteCharSetProberc                       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dZdd fddZddddZeeddddZeedddZeedddZeeef eddd Zee dd!d"Z!ee dd#d$Z"eedd%d&Z#  Z$S )'HebrewProber                                     g{Gz?z
ISO-8859-8zwindows-1255N)returnc                    s>   t    d| _d| _| j| _| j| _d | _d | _| 	  d S Nr   )
super__init___final_char_logical_score_final_char_visual_scoreSPACE_prev_before_prev_logical_prober_visual_proberresetself	__class__ ?/tmp/pip-build-0we0fmvo/pip/pip/_vendor/chardet/hebrewprober.pyr      s    
zHebrewProber.__init__c                 C   s    d| _ d| _| j| _| j| _d S r   )r   r   r   r   r   r!   r%   r%   r&   r       s    zHebrewProber.reset)logical_probervisual_proberr   c                 C   s   || _ || _d S N)r   r   )r"   r'   r(   r%   r%   r&   set_model_probers   s    zHebrewProber.set_model_probers)cr   c                 C   s   || j | j| j| j| jfkS r)   )	FINAL_KAF	FINAL_MEM	FINAL_NUNFINAL_PEFINAL_TSADIr"   r+   r%   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_PEr1   r%   r%   r&   is_non_final   s    zHebrewProber.is_non_final)byte_strr   c                 C   s   | j tjkrtjS | |}|D ]}|| jkrr| j| jkr| | jrV|  jd7  _q| 	| jr|  j
d7  _
n0| j| jkr| | jr|| jkr|  j
d7  _
| j| _|| _q tjS )Nr   )stater   NOT_MEfilter_high_byte_onlyr   r   r2   r   r   r7   r   	DETECTING)r"   r8   curr%   r%   r&   feed   s(    



zHebrewProber.feedc                 C   s   | j d k	st| jd k	st| j| j }|| jkr8| jS || j krJ| jS | j  | j  }|| j	krn| jS || j	 k r| jS |dk r| jS | jS )Ng        )
r   AssertionErrorr   r   r   MIN_FINAL_CHAR_DISTANCELOGICAL_HEBREW_NAMEVISUAL_HEBREW_NAMEget_confidenceMIN_MODEL_DISTANCE)r"   finalsubmodelsubr%   r%   r&   charset_name  s     

zHebrewProber.charset_namec                 C   s   dS )NHebrewr%   r!   r%   r%   r&   language.  s    zHebrewProber.languagec                 C   sD   | j d k	st| jd k	st| j jtjkr>| jjtjkr>tjS tjS r)   )r   r?   r   r9   r   r:   r<   r!   r%   r%   r&   r9   2  s    zHebrewProber.state)%__name__
__module____qualname__r   r,   r3   r-   r4   r.   r5   r/   r6   r0   NORMAL_TSADIr@   rD   rB   rA   r   r    r   r*   intboolr2   r7   r   bytes	bytearrayr   r>   propertystrrG   rI   r9   __classcell__r%   r%   r#   r&   r      s<   
	>r   N)
typingr   r   charsetproberr   enumsr   sbcharsetproberr   r   r%   r%   r%   r&   <module>   s   d