
aËT\
  ã               @   s`   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d Z Gd d „  d e ƒ Z	 d S)	é   )Ú	constants)ÚCharSetProber)ÚCodingStateMachine)ÚUTF8SMModelg      à?c               @   sL   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d S)Ú
UTF8Proberc             C   s*   t  j |  ƒ t t ƒ |  _ |  j ƒ  d  S)N)r   Ú__init__r   r   Ú
_mCodingSMÚreset)Úself© r   ú4/usr/lib/python3/dist-packages/chardet/utf8prober.pyr   %   s    zUTF8Prober.__init__c             C   s'   t  j |  ƒ |  j j ƒ  d |  _ d  S)Né    )r   r	   r   Ú_mNumOfMBChar)r
   r   r   r   r	   *   s    zUTF8Prober.resetc             C   s   d S)Nzutf-8r   )r
   r   r   r   Úget_charset_name/   s    zUTF8Prober.get_charset_namec             C   sÔ   x‘ | D]‰ } |  j  j | ƒ } | t j k r> t j |  _ Pq | t j k r] t j |  _ Pq | t j k r |  j  j	 ƒ  d k r |  j
 d 7_
 q W|  j ƒ  t j k rÊ |  j ƒ  t j k rÊ t j |  _ |  j ƒ  S)Né   r   )r   Z
next_stater   ZeErrorZeNotMeZ_mStateZeItsMeZeFoundItZeStartZget_current_charlenr   Z	get_stateZ
eDetectingÚget_confidenceZSHORTCUT_THRESHOLD)r
   ZaBufÚcZcodingStater   r   r   Úfeed2   s    zUTF8Prober.feedc             C   sL   d } |  j  d k  rD x$ t d |  j  ƒ D] } | t } q( Wd | S| Sd  S)Ng®Gáz®ï?é   r   g      ð?)r   ÚrangeÚONE_CHAR_PROB)r
   ZunlikeÚir   r   r   r   E   s    zUTF8Prober.get_confidenceN)Ú__name__Ú
__module__Ú__qualname__r   r	   r   r   r   r   r   r   r   r   $   s
   r   N)
Ú r   Zcharsetproberr   Zcodingstatemachiner   Zmbcssmr   r   r   r   r   r   r   Ú<module>   s
   