CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
md.cpython-310.pyc138 linesDownload Raw Back to __pycache__
1o

2��Yi,Q�@sVddlmZddlmZddlmZddlmZmZm	Z	ddl3mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZGdd�d�ZGd	d4�d5e�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	d6�Zddd�Zeddd��ZdS)�MessDetectorPluginzy7    Base abstract class used for mess detection plugins.8    All detectors MUST extend and implement given methods.9    �	character�str�return�boolcC�t�)z@10        Determine if given character should be fed in.11        ��NotImplementedError��selfr�r%�E:\DocsHouse\542 percep lab latest\PerceptionLab\PerceptionLab_Portable\python_embed\Lib\site-packages\charset_normalizer/md.py�eligible'�zMessDetectorPlugin.eligible�NonecCr )z�12        The main routine to be executed upon character.13        Insert the logic in witch the text would be considered chaotic.14        r!r#r%r%r&�feed-szMessDetectorPlugin.feedcCr )zB15        Permit to reset the plugin to the initial state.16        r!�r$r%r%r&�reset4r(zMessDetectorPlugin.reset�floatcCr )z�17        Compute the chaos ratio based on what your feed() has seen.18        Must NOT be lower than 0.; No restriction gt 0.19        r!r+r%r%r&�ratio:szMessDetectorPlugin.ratioN�rrrr�rrrr)�rr)�rr-)	�__name__�20__module__�__qualname__�__doc__r'r*r,�propertyr.r%r%r%r&r!s212223rc@�BeZdZddd�Zddd	�Zdd24d�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__Ds2526z)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*Os27�28z%TooManySymbolOrPunctuationPlugin.feedcCsd|_d|_d|_dS�Nr)r:r<r;r+r%r%r&r,a�29z&TooManySymbolOrPunctuationPlugin.resetr-cCs0|jdkrdS|j|j|j}|dkr|SdS)Nr��333333�?)r<r:r;)r$Zratio_of_punctuationr%r%r&r.fs3031�z&TooManySymbolOrPunctuationPlugin.ratioNr1r/r0r2�	r3r4r5r>r'r*r,r7r.r%r%r%r&r9Cs32333435r9c@r8)�TooManyAccentuatedPluginrr)cC�d|_d|_dSrF�r<�_accentuated_countr+r%r%r&r>s�36z!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.�s37zTooManyAccentuatedPlugin.ratioNr1r/r0r2rJr%r%r%r&rKrs38394041rKc@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.feedcCs42d|_dSrF)rVr+r%r%r&r,�s43zUnprintablePlugin.resetr-cC�|jdkrdS|jd|jS)NrrHrT)r<rVr+r%r%r&r.��44zUnprintablePlugin.ratioNr1r/r0r2rJr%r%r%r&rU�s45464748rUc@r8)�SuspiciousDuplicateAccentPluginrr)cC�d|_d|_d|_dSrF��_successive_countr<�_last_latin_characterr+r%r%r&r>�s49z(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*�s50��51z$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\�s52535455r\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 ��56575859zSuspiciousRange.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60�zSuspiciousRange.ratioNr1r/r0r2rJr%r%r%r&rb�s61626364rbc@r8)�SuperWeirdWordPluginrr)cCs@d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	dS)NrF�)65�_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>�s66zSuperWeirdWordPlugin.__init__rrrcCrWrXr%r#r%r%r&r'rYzSuperWeirdWordPlugin.eligiblecCs�|��rc|j|7_t|�r|jd7_|jdurFt|�dus%t|�rFt|�durFt|�durFt|�durFt	|�durFt67|�durFd|_t|�sZt|�sZt|�sZt	|�sZt68|�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�d69d�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|]70\}}|��r|�qSr%rx)ry�c�ir%r%r&�71<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�72���������73��74�7576��zSuperWeirdWordPlugin.feedcCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)NrkFr)rrrorprmrlr<rqrnr+r%r%r&r,_s77zSuperWeirdWordPlugin.resetr-cCs$|jdkr|jdkrdS|j|jS)N�78rrH)rlrnrqr<r+r%r%r&r.iszSuperWeirdWordPlugin.ratioNr1r/r0r2rJr%r%r%r&rj�s79808182Q83rjc@sFeZdZdZddd�Zdd	d84�Zddd�Zdd
d�Zeddd��Z	dS)�CjkUncommonPluginz<85    Detect messy CJK text that probably means nothing.86    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*}s87�zCjkUncommonPlugin.feedcCrLrFr�r+r%r%r&r,�rOzCjkUncommonPlugin.resetr-cCs.|jdkrdS|j|j}|dkr|dSdS)NrTrHrvr�r�)r$Zuncommon_form_usager%r%r&r.�s88zCjkUncommonPlugin.ratioNr1r/r0r2)89r3r4r5r6r>r'r*r,r7r.r%r%r%r&r�qs90919293r�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>�s94z 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|�95�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@9697�98��99100zArchaicUpperLowerPlugin.feedcCs.d|_d|_d|_d|_d|_d|_d|_dS)NrFT)r<r�r�r�r�r�r�r+r%r%r&r,�s101zArchaicUpperLowerPlugin.resetr-cCs|jdkrdS|j|jS)NrrH)r<r�r+r%r%r&r.�s102zArchaicUpperLowerPlugin.ratioNr1r/r0r2rJr%r%r%r&r��s103104
105106*	r�c@sBeZdZddd�Zddd�Zdd107d�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@)r108r#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.�s109zArabicIsolatedFormPlugin.ratioNr1r/r0r2)	r3r4r5r>r,r'r*r7r.r%r%r%r&r��s110111112113r��)�maxsizerg�114str | NonerhrrcCsv|dus|dur115dS||krdSd|vrd|vrdSd|vs"d|vr$dSd|vs,d|vr6d|vs4d|vr6dS|�d�|�d�}}|D]}|tvrJqC||vrQdSqC|dv|dv}}|s_|rid	|vsgd	|vridS|ro|rodSd116|vswd117|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)za118    Determine if two Unicode range seen next to each other can be considered as suspicious.119    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|d120t|��D]2\}}|D]}	|	�|�r<|	�|�q0|dkrG||dksM||dkr\tdd
�|D��}||kr\nq*|r�td�}121|122�	t123d|�d|�d|���t|�dkr�|124�	t125d|dd����|126�	t127d|dd����|D]}|128�	t129|j�d|j���q�t
|d�S)zw130    Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier.131    cSsg|]}|��qSr%r%)ryZmd_classr%r%r&rNs�zmess_ratio.<locals>.<listcomp>rrHi� r�r���132rcss�|]}|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&�133mess_ratioFsN�134135������136r�N)rgr�rhr�rr)r�F)r�rr�r-r�rrr-))�137__future__r�	functoolsr�loggingrZconstantrrr�utilsr	r138rrr
rrrrrrrrrrrrrrr9rKrUr\rbrjr�r�r�rfr�r%r%r%r&�<module>s(P"/%1v#LI�
Aluode/PerceptionLabPortable · CoolFace