£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    ʗRe7                  	   @   sX   d dl mZ ddlmZ ddlmZmZmZ eddddd	d
ddgZG d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                       sb   e Zd ZdZd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  ZS )SingleByteCharSetProber@   i   gffffff?g?FNc                    sL   t    || _|| _|| _d | _d | _d | _d | _d | _	d | _
|   d S N)super__init___model	_reversed_name_prober_last_order_seq_counters_total_seqs_total_char_control_char
_freq_charreset)selfmodelis_reversedname_prober	__class__ /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/chardet/sbcharsetprober.pyr   6   s    
z SingleByteCharSetProber.__init__c                    s<   t    d| _dgt  | _d| _d| _d| _d| _	d S )N   r   )
r   r   r   r   get_num_categoriesr   r   r   r   r   r   r#   r%   r&   r   E   s    
zSingleByteCharSetProber.resetc                 C   s   | j r| j jS | jjS r   )r   r	   r   r)   r%   r%   r&   r	   P   s    z$SingleByteCharSetProber.charset_namec                 C   s   | j r| j jS | jjS r   )r   r
   r   r)   r%   r%   r&   r
   V   s    z SingleByteCharSetProber.languagec           	      C   sV  | j js| |}n
| |}|s(| jS | j j}| j j}|D ]}||tj	}|tj
k rf|  jd7  _|| jk r|  jd7  _| j| jk r|  jd7  _| js|| j | }n|| | j }| j|  d7  < || _q<| j j}| jtjkrP| j| jkrP|  }|| jkr(| jd|| tj| _n(|| jk rP| jd||| j tj| _| jS )Nr   z$%s confidence = %s, we have a winnerz8%s confidence = %s, below negative shortcut threshold %s)r   r   filter_international_wordsremove_xml_tags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	   
confidencer%   r%   r&   feed\   sP    


  
zSingleByteCharSetProber.feedc                 C   sn   d}| j dkrj| jtj d| jtj   | j  | jj }|| j| j  | j }|| j	 | j }|dkrjd}|S )Ng{Gz?r   g      ?g      ?gGz?)
r   r   r   POSITIVELIKELYr   r   r   r   r   )r   rr%   r%   r&   r3      s    

z&SingleByteCharSetProber.get_confidence)FN)__name__
__module____qualname__r0   r2   r4   r9   r   r   propertyr	   r
   r@   r3   __classcell__r%   r%   r#   r&   r   0   s   

2r   N)
collectionsr   charsetproberr   enumsr   r   r   r   r   r%   r%   r%   r&   <module>   s   