File: //opt/saltstack/salt/lib/python3.10/site-packages/yarl/__pycache__/_parse.cpython-310.pyc
o
;j � @ sf d Z ddlZddlZddlmZ ddlmZ ddlmZm Z ddl
mZmZ dZ
g d �Zee �Zeeeeeef Zd
edefdd
�Zdeddfdd�Zededeeedf eedf eedf eedf f fdd��Zdeded
edededefdd�Ze d#deedf deedf deedf deedf dedefdd��Zd edeeeef fd!d"�ZdS )$zURL parsing utilities.� N)� lru_cache)�Union)�scheme_chars�uses_netloc� )�QUOTER�
UNQUOTER_PLUSz!
)� �
�
�url�returnc C s� | � t�} tD ]}|| v r| �|d�} qd } } }}| �d�}|dkrK| d tv rK| d|� D ]}|tvr9 nq1| d|� �� | |d d� }} d| v }d| v } | dd� d kr�t| �}
|rf| rfd
}n| rkd}n|rpd}nd
}|D ]}| �|d�}|dkr�||
k r�|}
qt| d|
� }| |
d� } d|v }
d|v }|
r�|r�|r�|
s�td��|
r�|� d�d � d�d }|r�|d dkr�t
�d|�s�td��nd|vr�td��|r�| � d�\} }}| r�| � d�\} }}|r�|�� s�t
|� ||| ||fS )zSplit URL into parts.� �:r r N�#�?� �//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_url sl
�
�"����r1 r'