HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/yarl/__pycache__/_parse.cpython-310.pyc
o

;j�@sfdZddlZddlZddlmZddlmZddlmZm	Z	ddl
mZmZdZ
gd	�Zee	�ZeeeeeefZd
edefdd
�Zdeddfdd�Zededeeedfeedfeedfeedfffdd��Zdeded
edededefdd�Ze	d#deedfdeedfdeedfdeedfdedefdd��Zd edeeeeffd!d"�ZdS)$zURL parsing utilities.�N)�	lru_cache)�Union)�scheme_chars�uses_netloc�)�QUOTER�
UNQUOTER_PLUSz!	

 )�	�
�
�url�returncCs�|�t�}tD]}||vr|�|d�}qd}}}}|�d�}|dkrK|dtvrK|d|�D]}|tvr9nq1|d|���||dd�}}d|v}d|v}	|dd�d	kr�t|�}
|rf|	rfd
}n|	rkd}n|rpd}nd
}|D]}|�|d�}|dkr�||
kr�|}
qt|d|
�}||
d�}d|v}
d|v}|
r�|r�|r�|
s�td��|
r�|�	d�d�	d�d}|r�|ddkr�t
�d|�s�td��nd|vr�td��|r�|�	d�\}}}|	r�|�	d�\}}}|r�|��s�t
|�|||||fS)zSplit URL into parts.��:rrN�#�?��//z/?#z/?z/#�/�[�]zInvalid IPv6 URL�vz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz.The IPv6 content between brackets is not valid)�lstrip�WHATWG_C0_CONTROL_OR_SPACE�UNSAFE_URL_BYTES_TO_REMOVE�replace�findr�lower�len�
ValueError�	partition�re�match�isascii�
_check_netloc)r�b�scheme�netloc�query�fragment�i�cZhas_hashZhas_question_mark�delimZdelim_chars�wdelimZhas_left_bracketZhas_right_bracketZbracketed_host�_�r/�?/opt/saltstack/salt/lib/python3.10/site-packages/yarl/_parse.py�	split_urlsl
�
�"����r1r'cCsb|�dd��dd��dd��dd�}t�d|�}||krdSdD]}||vr.td|�d	���q dS)
N�@rrrr�NFKCz/?#@:znetloc 'z6' contains invalid characters under NFKC normalization)r�unicodedata�	normalizer)r'�nZnormalized_netlocr+r/r/r0r$Vs$
���r$cCs�d|vrd}d}|}n|�d�\}}}|�d�\}}}|sd}d|vr<|�d�\}}}|�d�\}}}	|	�d�\}}}	n|�d�\}}}	|	sP|pId||pMddfSzt|	�}
Wntyatd��wd|
krodksttd	��td	��|pwd||p{d|
fS)
z4Split netloc into username, password, host and port.r2Nrrrz/Invalid URL: port can't be converted to integerri��zPort out of range 0-65535)�
rpartitionr �intr)r'�username�password�hostinfo�userinfor.�
have_password�	bracketed�hostnameZport_str�portr/r/r0�split_netlocls2��rAr&r(r)cCs�|s|r|tvs|dd�dkrA|r.|dd�dkr.|r&|�d|�d|��n|�d|��}n|r9|�d|�|��nd|�|��}n	|rJ|�d|��}|rS|�d|��}|r\|�d	|��S|S)
z(Unsplit a URL without any normalization.Nrrrrz://rrr)�USES_AUTHORITY)r&r'rr(r)r/r/r0�unsplit_result�s (&rCF�userr:�hostr@�encodecCs�|durdS|}|dur|�d|��}|dur|dur|S|dur:|s&d}n|r,t|�}|r2t|�}|�d|��}n|rB|rBt|�}|rK|�d|��S|S)z�Make netloc from parts.

    The user and password are encoded if encode is True.

    The host must already be encoded with _encode_host.
    Nrrr2)r)rDr:rEr@rF�retr/r/r0�make_netloc�s$rH�query_stringcCsFg}|s|S|�d�D]}|�d�\}}}|�t|�t|�f�q|S)zmParse a query given as a string argument.

    Works like urllib.parse.parse_qsl with keep empty values.
    �&�=)�splitr �appendr)rI�pairsZk_v�kr.rr/r/r0�query_to_pairs�srP)F)�__doc__r!r4�	functoolsr�typingr�urllib.parserrZ_quotersrrrr�	frozensetrB�tuple�strZSplitURLTyper1r$r8rArC�boolrH�listrPr/r/r/r0�<module>sb�=�.�!�����
��
�
�
�
���"!