
    <Be                     \    d dl mZ ddlmZ ddlmZmZmZ  edg d      Z G d de      Z	y	)
    )
namedtuple   )CharSetProber)CharacterCategoryProbingStateSequenceLikelihoodSingleByteCharSetModel)charset_namelanguagechar_to_order_maplanguage_modeltypical_positive_ratiokeep_ascii_lettersalphabetc                   f     e Zd ZdZdZdZdZd fd	Z fdZe	d        Z
e	d        Zd	 Zd
 Z xZS )SingleByteCharSetProber@   i   gffffff?g?c                     t         t        |           || _        || _        || _        d | _        d | _        d | _        d | _	        d | _
        | j                          y N)superr   __init___model	_reversed_name_prober_last_order_seq_counters_total_seqs_total_char
_freq_charreset)selfmodelreversedname_prober	__class__s       7lib/python3.12/site-packages/chardet/sbcharsetprober.pyr   z SingleByteCharSetProber.__init__3   sW    %t57!'!

    c                     t         t        |           d| _        dgt	        j
                         z  | _        d| _        d| _        d| _	        y )N   r   )
r   r   r    r   r   get_num_categoriesr   r   r   r   )r!   r%   s    r&   r    zSingleByteCharSetProber.resetA   sI    %t24S#5#H#H#JJr'   c                 r    | j                   r| j                   j                  S | j                  j                  S r   )r   r
   r   r!   s    r&   r
   z$SingleByteCharSetProber.charset_nameK   s-    $$111;;+++r'   c                 r    | j                   r| j                   j                  S | j                  j                  S r   )r   r   r   r,   s    r&   r   z SingleByteCharSetProber.languageR   s-    $$---;;'''r'   c                    | j                   j                  s| j                  |      }|s| j                  S | j                   j                  }| j                   j
                  }|D ]  }|j                  |t        j                        }|t        j                  k  r| xj                  dz  c_
        || j                  k  r| xj                  dz  c_        | j                  | j                  k  r]| xj                  dz  c_        | j                  s|| j                     |   }n||   | j                     }| j                   |xx   dz  cc<   || _         | j                   j"                  }| j                  t$        j&                  k(  r| j                  | j(                  kD  r| j+                         }|| j,                  kD  r>| j.                  j1                  d||       t$        j2                  | _        | j                  S || j6                  k  r=| j.                  j1                  d||| j6                         t$        j8                  | _        | j                  S )Nr   z$%s confidence = %s, we have a winnerz9%s confidence = %s, below negative shortcut threshhold %s)r   r   filter_international_wordsstater   r   getr   	UNDEFINEDCONTROLr   SAMPLE_SIZEr   r   r   r   r   r
   r   	DETECTINGSB_ENOUGH_REL_THRESHOLDget_confidencePOSITIVE_SHORTCUT_THRESHOLDloggerdebugFOUND_IT_stateNEGATIVE_SHORTCUT_THRESHOLDNOT_ME)	r!   byte_strr   r   charorderlm_catr
   
confidences	            r&   feedzSingleByteCharSetProber.feedY   s   {{--66x@H:: KK9933 	%D%))$0A0K0KLE (000  A%  t'''1$##d&6&66$$)$>>!/0@0@!A%!H!/!6t7G7G!H&&v.!3.$D+	%. {{//::///$">">>!002
 @ @@KK%%&L&2J@"."7"7DK zz  $"B"BBKK%% '?@L&0&*&F&FH #/"5"5DKzzr'   c                     d}| j                   dkD  rgd| j                  t        j                     z  | j                   z  | j                  j
                  z  }|| j                  z  | j                  z  }|dk\  rd}|S )Ng{Gz?r   g      ?gGz?)r   r   r   POSITIVEr   r   r   r   )r!   rs     r&   r7   z&SingleByteCharSetProber.get_confidence   s|    a**+=+F+FGG!!"$(KK$F$FGADOO#d&6&66ACxr'   )FN)__name__
__module____qualname__r4   r6   r8   r=   r   r    propertyr
   r   rD   r7   __classcell__)r%   s   @r&   r   r   -   sW    K""&"& , , ( (.`r'   r   N)
collectionsr   charsetproberr   enumsr   r   r   r	   r    r'   r&   <module>rQ      s6   : # ( F F $$<%12 dm dr'   