HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //opt/osm/venv/lib64/python3.10/site-packages/charset_normalizer/__pycache__/md.cpython-310.pyc
o

=i�N�@sVddlmZddlmZddlmZddlmZmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZGdd�d�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#Gdd�de�Z$Gdd�de�Z%Gdd�de�Z&edd�d/d"d#��Z'ed$d�	&d0d1d,d-��Z(d.S)2�)�annotations)�	lru_cache)�	getLogger�)�COMMON_SAFE_ASCII_CHARACTERS�TRACE�UNICODE_SECONDARY_RANGE_KEYWORD)�is_accentuated�	is_arabic�is_arabic_isolated_form�is_case_variable�is_cjk�is_emoticon�	is_hangul�is_hiragana�is_katakana�is_latin�is_punctuation�is_separator�	is_symbol�is_thai�is_unprintable�
remove_accent�
unicode_range�is_cjk_uncommonc@s<eZdZdZddd�Zdd	d
�Zddd�Zeddd��ZdS)�MessDetectorPluginzy
    Base abstract class used for mess detection plugins.
    All detectors MUST extend and implement given methods.
    �	character�str�return�boolcC�t�)z@
        Determine if given character should be fed in.
        ��NotImplementedError��selfr�r%�C/opt/osm/venv/lib/python3.10/site-packages/charset_normalizer/md.py�eligible'�zMessDetectorPlugin.eligible�NonecCr )z�
        The main routine to be executed upon character.
        Insert the logic in witch the text would be considered chaotic.
        r!r#r%r%r&�feed-szMessDetectorPlugin.feedcCr )zB
        Permit to reset the plugin to the initial state.
        r!�r$r%r%r&�reset4r(zMessDetectorPlugin.reset�floatcCr )z�
        Compute the chaos ratio based on what your feed() has seen.
        Must NOT be lower than 0.; No restriction gt 0.
        r!r+r%r%r&�ratio:szMessDetectorPlugin.ratioN�rrrr�rrrr)�rr)�rr-)	�__name__�
__module__�__qualname__�__doc__r'r*r,�propertyr.r%r%r%r&r!s


rc@�BeZdZddd�Zddd	�Zdd
d�Zddd
�Zeddd��ZdS)� TooManySymbolOrPunctuationPluginrr)cCs"d|_d|_d|_d|_d|_dS)NrF)�_punctuation_count�
_symbol_count�_character_count�_last_printable_charZ_frenzy_symbol_in_wordr+r%r%r&�__init__Ds

z)TooManySymbolOrPunctuationPlugin.__init__rrrcC�|��S�N��isprintabler#r%r%r&r'L�z)TooManySymbolOrPunctuationPlugin.eligiblecCsp|jd7_||jkr3|tvr3t|�r|jd7_n|��dur3t|�r3t|�dur3|jd7_||_dS)NrF�)	r<r=rrr:�isdigitrrr;r#r%r%r&r*Os
�
z%TooManySymbolOrPunctuationPlugin.feedcCsd|_d|_d|_dS�Nr)r:r<r;r+r%r%r&r,a�
z&TooManySymbolOrPunctuationPlugin.resetr-cCs0|jdkrdS|j|j|j}|dkr|SdS)Nr��333333�?)r<r:r;)r$Zratio_of_punctuationr%r%r&r.fs

�z&TooManySymbolOrPunctuationPlugin.ratioNr1r/r0r2�	r3r4r5r>r'r*r,r7r.r%r%r%r&r9Cs



r9c@r8)�TooManyAccentuatedPluginrr)cC�d|_d|_dSrF�r<�_accentuated_countr+r%r%r&r>s�
z!TooManyAccentuatedPlugin.__init__rrrcCr?r@)�isalphar#r%r%r&r'wrCz!TooManyAccentuatedPlugin.eligiblecC�,|jd7_t|�r|jd7_dSdS�Nr)r<r	rNr#r%r%r&r*z��zTooManyAccentuatedPlugin.feedcCrLrFrMr+r%r%r&r,�rOzTooManyAccentuatedPlugin.resetr-cCs*|jdkrdS|j|j}|dkr|SdS)N�rHgffffff�?rM)r$Zratio_of_accentuationr%r%r&r.�s
zTooManyAccentuatedPlugin.ratioNr1r/r0r2rJr%r%r%r&rKrs



rKc@r8)�UnprintablePluginrr)cCrLrF)�_unprintable_countr<r+r%r%r&r>�rOzUnprintablePlugin.__init__rrrcC�dS�NTr%r#r%r%r&r'��zUnprintablePlugin.eligiblecCs(t|�r|jd7_|jd7_dSrR)rrVr<r#r%r%r&r*�szUnprintablePlugin.feedcCs
d|_dSrF)rVr+r%r%r&r,�s
zUnprintablePlugin.resetr-cC�|jdkrdS|jd|jS)NrrHrT)r<rVr+r%r%r&r.��
zUnprintablePlugin.ratioNr1r/r0r2rJr%r%r%r&rU�s



rUc@r8)�SuspiciousDuplicateAccentPluginrr)cC�d|_d|_d|_dSrF��_successive_countr<�_last_latin_characterr+r%r%r&r>�s
z(SuspiciousDuplicateAccentPlugin.__init__rrrcCs|��ot|�Sr@)rPrr#r%r%r&r'�sz(SuspiciousDuplicateAccentPlugin.eligiblecCst|jd7_|jdur5t|�r5t|j�r5|��r%|j��r%|jd7_t|�t|j�kr5|jd7_||_dSrR)r<r`r	�isupperr_rr#r%r%r&r*�s
��
z$SuspiciousDuplicateAccentPlugin.feedcCr]rFr^r+r%r%r&r,�rGz%SuspiciousDuplicateAccentPlugin.resetr-cCrZ)NrrHrD)r<r_r+r%r%r&r.�r[z%SuspiciousDuplicateAccentPlugin.ratioNr1r/r0r2rJr%r%r%r&r\�s



r\c@r8)�SuspiciousRangerr)cCr]rF)�"_suspicious_successive_range_countr<�_last_printable_seenr+r%r%r&r>�rGzSuspiciousRange.__init__rrrcCr?r@rAr#r%r%r&r'�rCzSuspiciousRange.eligiblecCsx|jd7_|��st|�s|tvrd|_dS|jdur"||_dSt|j�}t|�}t||�r7|jd7_||_dSrR)r<�isspacerrrdr� is_suspiciously_successive_rangerc)r$r�unicode_range_a�unicode_range_br%r%r&r*�s ��



zSuspiciousRange.feedcCr]rF)r<rcrdr+r%r%r&r,�rGzSuspiciousRange.resetr-cCs"|jdkrdS|jd|j}|S)N�
rHrD)r<rc)r$Zratio_of_suspicious_range_usager%r%r&r.�s
�zSuspiciousRange.ratioNr1r/r0r2rJr%r%r%r&rb�s



rbc@r8)�SuperWeirdWordPluginrr)cCs@d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	dS)NrF�)
�_word_count�_bad_word_count�_foreign_long_count�_is_current_word_bad�_foreign_long_watchr<�_bad_character_count�_buffer�_buffer_accent_count�_buffer_glyph_countr+r%r%r&r>�s
zSuperWeirdWordPlugin.__init__rrrcCrWrXr%r#r%r%r&r'rYzSuperWeirdWordPlugin.eligiblecCs�|��rc|j|7_t|�r|jd7_|jdurFt|�dus%t|�rFt|�durFt|�durFt|�durFt	|�durFt
|�durFd|_t|�sZt|�sZt|�sZt	|�sZt
|�ra|jd7_dS|jshdS|��sut
|�sut|��r$|j�r$|jd7_t|j�}|j|7_|dkr�|j|dkr�d|_n4t|jd�r�|jd��r�tdd�|jD��dur�|jd7_d|_n|jdkr�d|_|jd7_|d	kr�|jr�d
d�t|jtd|��D�}d}|r�t|�|d
kr�d}|s�|jd7_d|_|j�r|jd7_|jt|j�7_d|_d|_d|_d|_d|_dS|dv�rA|��du�rCt|��rEd|_|j|7_dSdSdSdS)NrFT���?���css�|]}|��VqdSr@�ra)�.0�_r%r%r&�	<genexpr>8s�z,SuperWeirdWordPlugin.feed.<locals>.<genexpr>�cSsg|]
\}}|��r|�qSr%rx)ry�c�ir%r%r&�
<listcomp>@s��z-SuperWeirdWordPlugin.feed.<locals>.<listcomp>rrIrk>�~rz�=�-�>�|�<)rPrrr	rsrprr
rrrrrtrerrrl�lenr<rora�allrn�zip�rangermrqrEr)r$rZ
buffer_lengthZcamel_case_dstZprobable_camel_casedr%r%r&r*s�
���������
��
�

��zSuperWeirdWordPlugin.feedcCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)NrkFr)rrrorprmrlr<rqrnr+r%r%r&r,_s
zSuperWeirdWordPlugin.resetr-cCs$|jdkr|jdkrdS|j|jS)N�
rrH)rlrnrqr<r+r%r%r&r.iszSuperWeirdWordPlugin.ratioNr1r/r0r2rJr%r%r%r&rj�s



Q
rjc@sFeZdZdZddd�Zdd	d
�Zddd�Zdd
d�Zeddd��Z	dS)�CjkUncommonPluginz<
    Detect messy CJK text that probably means nothing.
    rr)cCrLrF�r<�_uncommon_countr+r%r%r&r>vrOzCjkUncommonPlugin.__init__rrrcC�t|�Sr@)r
r#r%r%r&r'zrCzCjkUncommonPlugin.eligiblecCrQrR)r<rr�r#r%r%r&r*}s
�zCjkUncommonPlugin.feedcCrLrFr�r+r%r%r&r,�rOzCjkUncommonPlugin.resetr-cCs.|jdkrdS|j|j}|dkr|dSdS)NrTrHrvr�r�)r$Zuncommon_form_usager%r%r&r.�s
zCjkUncommonPlugin.ratioNr1r/r0r2)
r3r4r5r6r>r'r*r,r7r.r%r%r%r&r�qs



r�c@r8)�ArchaicUpperLowerPluginrr)cCs.d|_d|_d|_d|_d|_d|_d|_dS)NFrT)�_buf�_character_count_since_last_sep�_successive_upper_lower_count�#_successive_upper_lower_count_finalr<�_last_alpha_seen�_current_ascii_onlyr+r%r%r&r>�s
z ArchaicUpperLowerPlugin.__init__rrrcCrWrXr%r#r%r%r&r'�rYz ArchaicUpperLowerPlugin.eligiblecCs$|��ot|�}|du}|rC|jdkrC|jdkr+|��dur+|jdur+|j|j7_d|_d|_d|_d|_|j	d7_	d|_dS|jdurQ|�
�durQd|_|jdur|��r_|j��sh|��r||j��r||jdurx|jd7_d|_nd|_nd|_|j	d7_	|jd7_||_dS)NFr�@rTrD)
rPrr�rEr�r�r�r�r�r<�isasciira�islower)r$rZis_concernedZ	chunk_sepr%r%r&r*�s@

�
��

zArchaicUpperLowerPlugin.feedcCs.d|_d|_d|_d|_d|_d|_d|_dS)NrFT)r<r�r�r�r�r�r�r+r%r%r&r,�s
zArchaicUpperLowerPlugin.resetr-cCs|jdkrdS|j|jS)NrrH)r<r�r+r%r%r&r.�s
zArchaicUpperLowerPlugin.ratioNr1r/r0r2rJr%r%r%r&r��s



*	r�c@sBeZdZddd�Zddd�Zdd
d�Zddd
�Zeddd��ZdS)�ArabicIsolatedFormPluginrr)cCrLrF�r<�_isolated_form_countr+r%r%r&r>�rOz!ArabicIsolatedFormPlugin.__init__cCrLrFr�r+r%r%r&r,�rOzArabicIsolatedFormPlugin.resetrrrcCr�r@)r
r#r%r%r&r'�rCz!ArabicIsolatedFormPlugin.eligiblecCrQrR)r<rr�r#r%r%r&r*�rSzArabicIsolatedFormPlugin.feedr-cCs|jdkrdS|j|j}|S)NrTrHr�)r$Zisolated_form_usager%r%r&r.�s
zArabicIsolatedFormPlugin.ratioNr1r/r0r2)	r3r4r5r>r,r'r*r7r.r%r%r%r&r��s



r��)�maxsizerg�
str | NonerhrrcCsv|dus|dur
dS||krdSd|vrd|vrdSd|vs"d|vr$dSd|vs,d|vr6d|vs4d|vr6dS|�d�|�d�}}|D]}|tvrJqC||vrQdSqC|dv|dv}}|s_|rid	|vsgd	|vridS|ro|rodSd
|vswd
|vr�d	|vsd	|vr�dS|dks�|dkr�dSd	|vs�d	|vs�|dvr�|dvr�d
|vs�d
|vr�dSd|vs�d|vr�dS|dks�|dkr�dSdS)za
    Determine if two Unicode range seen next to each other can be considered as suspicious.
    NTFZLatinZ	EmoticonsZ	Combining� )�Hiragana�KatakanaZCJKZHangulzBasic Latin)r�r��PunctuationZForms)�splitr)rgrhZkeywords_range_aZkeywords_range_b�elZrange_a_jp_charsZrange_b_jp_charsr%r%r&rf�sZ����rfi皙�����?F�decoded_sequencer�maximum_thresholdr-�debugc	CsRdd�t��D�}t|�d}d}|dkrd}n	|dkrd}nd	}t|d
t|��D]2\}}|D]}	|	�|�r<|	�|�q0|dkrG||dksM||dkr\tdd
�|D��}||kr\nq*|r�td�}
|
�	t
d|�d|�d|���t|�dkr�|
�	t
d|dd����|
�	t
d|dd����|D]}|
�	t
|j�d|j���q�t
|d�S)zw
    Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier.
    cSsg|]}|��qSr%r%)ryZmd_classr%r%r&rNs�zmess_ratio.<locals>.<listcomp>rrHi� r�r���
rcss�|]}|jVqdSr@)r.)ry�dtr%r%r&r{es�zmess_ratio.<locals>.<genexpr>Zcharset_normalizerzIMess-detector extended-analysis start. intermediary_mean_mess_ratio_calc=z mean_mess_ratio=z maximum_threshold=�zStarting with: Nz
Ending with: i�z: �)r�__subclasses__r�r�r�r'r*�sumr�logr�	__class__r.�round)r�r�r�Z	detectors�lengthZmean_mess_ratioZ!intermediary_mean_mess_ratio_calcr�indexZdetector�loggerr�r%r%r&�
mess_ratioFsN�

������
r�N)rgr�rhr�rr)r�F)r�rr�r-r�rrr-))�
__future__r�	functoolsr�loggingrZconstantrrr�utilsr	r
rrr
rrrrrrrrrrrrrrr9rKrUr\rbrjr�r�r�rfr�r%r%r%r&�<module>s(P"/%1v#LI�