
0c@_U  ã               @   s@   d  d l  m Z d  d l m Z m Z Gd d „  d e ƒ Z d S)é   )ÚCharSetProber)ÚProbingStateÚMachineStatec                   sy   e  Z d  Z d Z d ‡  f d d † Z ‡  f d d †  Z e d d „  ƒ Z e d	 d
 „  ƒ Z d d „  Z	 d d „  Z
 ‡  S)ÚMultiByteCharSetProberz 
    MultiByteCharSetProber
    Nc                s>   t  t |  ƒ j d | ƒ d  |  _ d  |  _ d d g |  _ d  S)NÚlang_filteré    )Úsuperr   Ú__init__Údistribution_analyzerÚ	coding_smÚ
_last_char)Úselfr   )Ú	__class__© úB/tmp/pip-build-jynh7p1z/pip/pip/_vendor/chardet/mbcharsetprober.pyr	   '   s    		zMultiByteCharSetProber.__init__c                sR   t  t |  ƒ j ƒ  |  j r) |  j j ƒ  |  j r? |  j j ƒ  d d g |  _ d  S)Nr   )r   r   Úresetr   r
   r   )r   )r   r   r   r   -   s    		zMultiByteCharSetProber.resetc             C   s
   t  ‚ d  S)N)ÚNotImplementedError)r   r   r   r   Úcharset_name5   s    z#MultiByteCharSetProber.charset_namec             C   s
   t  ‚ d  S)N)r   )r   r   r   r   Úlanguage9   s    zMultiByteCharSetProber.languagec             C   sc  xt  t | ƒ ƒ D]ò } |  j j | | ƒ } | t j k rm |  j j d |  j |  j	 | ƒ t
 j |  _ Pq | t j k rŒ t
 j |  _ Pq | t j k r |  j j ƒ  } | d k rà | d |  j d <|  j j |  j | ƒ q |  j j | | d | d … | ƒ q W| d |  j d <|  j t
 j k r\|  j j ƒ  r\|  j ƒ  |  j k r\t
 j |  _ |  j S)Nz!%s %s prober hit error at byte %sr   r   éÿÿÿÿ)ÚrangeÚlenr   Z
next_stater   ÚERRORÚloggerÚdebugr   r   r   ZNOT_MEÚ_stateZITS_MEZFOUND_ITZSTARTZget_current_charlenr   r
   ÚfeedÚstateZ	DETECTINGZgot_enough_dataÚget_confidenceZSHORTCUT_THRESHOLD)r   Zbyte_strÚiZcoding_stateZchar_lenr   r   r   r   =   s.    zMultiByteCharSetProber.feedc             C   s   |  j  j ƒ  S)N)r
   r   )r   r   r   r   r   Z   s    z%MultiByteCharSetProber.get_confidence)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Úpropertyr   r   r   r   r   r   )r   r   r   "   s   r   N)Zcharsetproberr   Zenumsr   r   r   r   r   r   r   Ú<module>   s   