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: //usr/local/lib/python3.7/site-packages/charset_normalizer/__pycache__/utils.cpython-37.pyc
B

���g�.�@s.ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZddl
mZddlmZd	d
lmZmZmZmZmZmZe
ed�dd
d�dd��Ze
ed�ddd�dd��Ze
ed�ddd�dd��Ze
ed�dd
d�dd��Ze
ed�dd
d�dd��Ze
ed�dd
d�dd��Ze
ed�dd
d�dd��Ze
ed�dd
d�dd��Ze
ed�dd
d�d d!��Z e
ed�dd
d�d"d#��Z!e
ed�dd
d�d$d%��Z"e
ed�dd
d�d&d'��Z#e
ed�dd
d�d(d)��Z$e
ed�dd
d�d*d+��Z%e
ed�dd
d�d,d-��Z&e
ed�dd
d�d.d/��Z'e
e(e�d�dd
d0�d1d2��Z)e
ed�dd
d�d3d4��Z*d[d6d7dd8�d9d:�Z+e
d;d�dd
d<�d=d>��Z,d6d?d@�dAdB�Z-dd
dC�dDdE�Z.d\dd
ddG�dHdI�Z/dddJdK�dLdM�Z0ddd
dK�dNdO�Z1dPej2dQfdd7ddRdS�dTdU�Z3d]d6ddVd7d
d
d6d
ddWdX�
dYdZ�Z4dS)^�)�annotationsN)�IncrementalDecoder)�aliases)�	lru_cache)�findall)�	Generator)�MultibyteIncrementalDecoder�)�ENCODING_MARKS�IANA_SUPPORTED_SIMILAR�RE_POSSIBLE_ENCODING_INDICATION�UNICODE_RANGES_COMBINED�UNICODE_SECONDARY_RANGE_KEYWORD�UTF8_MAXIMAL_ALLOCATION)�maxsize�str�bool)�	character�returncCsdyt�|�}Wntk
r"dSXd|kpbd|kpbd|kpbd|kpbd|kpbd|kpbd|kpbd	|kS)
NFz
WITH GRAVEz
WITH ACUTEzWITH CEDILLAzWITH DIAERESISzWITH CIRCUMFLEXz
WITH TILDEzWITH MACRONzWITH RING ABOVE)�unicodedata�name�
ValueError)r�description�r�B/usr/local/lib/python3.7/site-packages/charset_normalizer/utils.py�is_accentuatedsrcCs.t�|�}|s|S|�d�}tt|dd��S)N� r�)r�
decomposition�split�chr�int)rZ
decomposed�codesrrr�
remove_accent,s


r#z
str | NonecCs.t|�}x t��D]\}}||kr|SqWdS)zK
    Retrieve the Unicode range official name from a single character.
    N)�ordr
�items)rZ
character_ord�
range_nameZ	ord_rangerrr�
unicode_range7s
r'cCs,yt�|�}Wntk
r"dSXd|kS)NFZLATIN)rrr)rrrrr�is_latinEs
r(cCs2t�|�}d|krdSt|�}|dkr*dSd|kS)N�PTF�Punctuation)r�categoryr')r�character_category�character_rangerrr�is_punctuationNs
r.cCsBt�|�}d|ksd|krdSt|�}|dkr2dSd|ko@|dkS)N�S�NTFZFormsZLo)rr+r')rr,r-rrr�	is_symbol]s
r1cCs$t|�}|dkrdSd|kp"d|kS)NFZ	EmoticonsZPictographs)r')rr-rrr�is_emoticonlsr2cCs.|��s|dkrdSt�|�}d|kp,|dkS)N>�|�+�<�>T�Z>�Pc�Pd�Po)�isspacerr+)rr,rrr�is_separatorvs
r<cCs|��|��kS)N)�islower�isupper)rrrr�is_case_variable�sr?cCs,yt�|�}Wntk
r"dSXd|kS)NF�CJK)rrr)r�character_namerrr�is_cjk�s
rBcCs,yt�|�}Wntk
r"dSXd|kS)NFZHIRAGANA)rrr)rrArrr�is_hiragana�s
rCcCs,yt�|�}Wntk
r"dSXd|kS)NFZKATAKANA)rrr)rrArrr�is_katakana�s
rDcCs,yt�|�}Wntk
r"dSXd|kS)NFZHANGUL)rrr)rrArrr�	is_hangul�s
rEcCs,yt�|�}Wntk
r"dSXd|kS)NFZTHAI)rrr)rrArrr�is_thai�s
rFcCs,yt�|�}Wntk
r"dSXd|kS)NF�ARABIC)rrr)rrArrr�	is_arabic�s
rHcCs4yt�|�}Wntk
r"dSXd|ko2d|kS)NFrGz
ISOLATED FORM)rrr)rrArrr�is_arabic_isolated_form�s
rI)r&rcst�fdd�tD��S)Nc3s|]}|�kVqdS)Nr)�.0�keyword)r&rr�	<genexpr>�sz-is_unicode_range_secondary.<locals>.<genexpr>)�anyr)r&r)r&r�is_unicode_range_secondary�srNcCs(|��dko&|��dko&|dko&|dkS)NF�u)r;�isprintable)rrrr�is_unprintable�srQ� �bytesr!)�sequence�search_zonercCs�t|t�st�t|�}tt|dt||��jddd��}t|�dkrHdSxJ|D]B}|���	dd�}x,t
��D] \}}||kr�|S||krl|SqlWqNWdS)zW
    Extract using ASCII-only decoder any specified encoding in the first n-bytes.
    N�ascii�ignore)�errorsr�-�_)�
isinstancerS�	TypeError�lenrr�min�decode�lower�replacerr%)rTrUZseq_len�resultsZspecified_encoding�encoding_alias�
encoding_ianarrr�any_specified_encoding�s 

re�)rrcCs |dkptt�d|���jt�S)zQ
    Verify is a specific encoding is a multi byte one based on it IANA name
    >	�	utf_8_sig�utf_8�utf_7�utf_32�	utf_32_le�	utf_32_be�utf_16�	utf_16_be�	utf_16_lez
encodings.)�
issubclass�	importlib�
import_modulerr)rrrr�is_multi_byte_encoding�s
rsztuple[str | None, bytes])rTrcCsJxDtD]<}t|}t|t�r"|g}x|D]}|�|�r(||fSq(WqWdS)z9
    Identify and extract SIG/BOM in given sequence.
    )N�)r
r[rS�
startswith)rT�
iana_encodingZmarks�markrrr�identify_sig_or_boms



rx)rvrcCs|dkS)N>rmrjr)rvrrr�should_strip_sig_or_bom"sryT)�cp_name�strictrcCsN|���dd�}x$t��D]\}}|||gkr|SqW|rJtd|�d���|S)zIReturns the Python normalized encoding name (Not the IANA official name).rYrZzUnable to retrieve IANA for '�')r`rarr%r)rzr{rcrdrrr�	iana_name&sr}�float)�iana_name_a�iana_name_brc	Cs�t|�st|�rdSt�d|���j}t�d|���j}|dd�}|dd�}d}x6td�D]*}t|g�}|�|�|�|�krZ|d7}qZW|dS)	Ngz
encodings.rW)rXr�r	�)rsrqrrr�rangerSr_)	rr�Z	decoder_aZ	decoder_bZid_aZid_bZcharacter_match_count�iZ
to_be_decodedrrr�
cp_similarity7s


r�cCs|tko|t|kS)z�
    Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using
    the function cp_similarity.
    )r)rr�rrr�
is_cp_similarKsr�Zcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)s�None)r�level�
format_stringrcCs:t�|�}|�|�t��}|�t�|��|�|�dS)N)�logging�	getLogger�setLevel�
StreamHandler�setFormatter�	Formatter�
addHandler)rr�r��logger�handlerrrr�set_logging_handlerVs


r�r�zGenerator[str, None, None])
�	sequencesrd�offsets�
chunk_size�bom_or_sig_available�strip_sig_or_bom�sig_payload�is_multi_byte_decoder�decoded_payloadrc	cs0|r8|dkr8x(|D] }	||	|	|�}
|
s,P|
VqWn�x�|D]�}	|	|}|t|�dkr\q>||	|	|�}|r�|dkr�||}|j||r�dndd�}
|�r"|	dk�r"t|d�}
|�r"|
d|
�|k�r"xXt|	|	dd	�D]D}|||�}|r�|dkr�||}|j|dd�}
|
d|
�|kr�Pq�W|
Vq>WdS)
NF�rWr{)rXrr����)r]r_r^r�)r�rdr�r�r�r�r�r�r�r��chunkZ	chunk_endZcut_sequenceZchunk_partial_size_chk�jrrr�cut_sequence_chunkscs8


r�)rR)T)N)5�
__future__rrqr�r�codecsrZencodings.aliasesr�	functoolsr�rer�typingrZ_multibytecodecrZconstantr
rrr
rrrr#r'r(r.r1r2r<r?rBrCrDrErFrHrIr]rNrQrersrxryr}r�r��INFOr�r�rrrr�<module>sN