
    Zh
                     N    d dl mZ d dlmZmZ d dlmZ d dlmZ  G d de      Z	y)   )CharSetProber)ProbingStateMachineState)CodingStateMachine)UTF8_SM_MODELc                   X     e Zd ZdZ fdZ fdZed        Zed        Zd Z	d Z
 xZS )
UTF8Proberg      ?c                     t         t        |           t        t              | _        d | _        | j                          y )N)superr	   __init__r   r   	coding_sm_num_mb_charsresetself	__class__s    a/mounts/lovelace/software/anaconda3/envs/py312/lib/python3.12/site-packages/chardet/utf8prober.pyr   zUTF8Prober.__init__&   s-    j$(*+M:!

    c                 l    t         t        |           | j                  j                          d| _        y )N    )r   r	   r   r   r   r   s    r   r   zUTF8Prober.reset,   s(    j$%'r   c                      y)Nzutf-8 r   s    r   charset_namezUTF8Prober.charset_name1   s    r   c                      y)N r   r   s    r   languagezUTF8Prober.language5   s    r   c                 2   |D ]  }| j                   j                  |      }|t        j                  k(  rt        j
                  | _         ns|t        j                  k(  rt        j                  | _         nI|t        j                  k(  s| j                   j                         dk\  s| xj                  dz  c_         | j                  t        j                  k(  r2| j                         | j                  kD  rt        j                  | _        | j                  S )N   r   )r   
next_stater   ERRORr   NOT_ME_stateITS_MEFOUND_ITSTARTget_current_charlenr   state	DETECTINGget_confidenceSHORTCUT_THRESHOLD)r   byte_strccoding_states       r   feedzUTF8Prober.feed9   s     
	,A>>44Q7L|111*11!4!44*33!3!33>>5571<&&!+&
	, ::///""$t'>'>>*33zzr   c                 j    d}| j                   dk  r!|| j                  | j                   z  z  }d|z
  S |S )NgGz?   g      ?)r   ONE_CHAR_PROB)r   unlikes     r   r*   zUTF8Prober.get_confidenceL   s?    !d((D,>,>>>F<Mr   )__name__
__module____qualname__r2   r   r   propertyr   r   r/   r*   __classcell__)r   s   @r   r	   r	   #   sD    M
    &r   r	   N)
charsetproberr   enumsr   r   codingstatemachiner   mbcssmr   r	   r   r   r   <module>r=      s   8 ) - 2 !/ /r   