
    Ofc                     j    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	d	S )
    )
namedtuple   )CharSetProber)CharacterCategoryProbingStateSequenceLikelihoodSingleByteCharSetModel)charset_namelanguagechar_to_order_maplanguage_modeltypical_positive_ratiokeep_ascii_lettersalphabetc                   r     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?FNc                     t          t          |                                            || _        || _        || _        d | _        d | _        d | _        d | _	        d | _
        |                                  d S 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.11/site-packages/chardet/sbcharsetprober.pyr   z SingleByteCharSetProber.__init__3   sn    %t,,55777!'!

    c                     t          t          |                                            d| _        dgt	          j                    z  | _        d| _        d| _        d| _	        d S )N   r   )
r   r   r    r   r   get_num_categoriesr   r   r   r   )r!   r%   s    r&   r    zSingleByteCharSetProber.resetA   s\    %t,,22444S#5#H#J#JJr'   c                 @    | j         r| j         j        S | j        j        S r   )r   r
   r   r!   s    r&   r
   z$SingleByteCharSetProber.charset_nameK   s$     	,$11;++r'   c                 @    | 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|                     |          }|s| j        S | j         j        }| j         j        }|D ]}|                    |t          j                  }|t          j	        k     r| xj
        dz  c_
        || j        k     rs| xj        dz  c_        | j        | j        k     rS| 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        k    r|                                 }|| j        k    r.| j                            d||           t$          j        | _        n>|| j        k     r3| j                            d||| j                   t$          j        | _        | 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   {- 	A66x@@H 	: K93 	% 	%D%))$0A0KLLE (00 &  A%   t'' 41$#d&66 4$$)$$> I!/0@!A%!H!/!6t7G!H&v...!3...$D{/:// 	6$">> 6!0022
 @@ 	6K%%&L&2J@ @ @"."7DKK$"BB 6K%% '?@L&0&*&FH H H #/"5DKzr'   c                     d}| j         dk    rId| 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   sp    a 	*+=+FGG!"$(K$FGADO#d&66ACx r'   )FN)__name__
__module____qualname__r4   r6   r8   r=   r   r    propertyr
   r   rD   r7   __classcell__)r%   s   @r&   r   r   -   s        K""&"&          , , X, ( ( X(. . .`      r'   r   N)
collectionsr   charsetproberr   enumsr   r   r   r	   r    r'   r&   <module>rQ      s   : # " " " " " ( ( ( ( ( ( F F F F F F F F F F $$<%1 %1 %12 2 d d d d dm d d d d dr'   