File: //home/arjun/projects/env/lib/python3.10/site-packages/yarl/__pycache__/_quoting_py.cpython-310.pyc
o
"we� � @ s� d dl Z d dlZd dlmZmZmZ d dlmZmZ e� d�Z
dd� ed�D �ZdZ
d Zed
Ze
e Zee d Zee Ze�d�Ze�d
�Ze �d�ZG dd� d�ZG dd� d�ZdS )� N)�
ascii_letters�ascii_lowercase�digits)�Optional�cast�asciic C s h | ]}d |d��� d��qS )�%�02Xr )�encode)�.0�i� r
�I/home/arjun/projects/env/lib/python3.10/site-packages/yarl/_quoting_py.py� <setcomp> s r � z:/?#[]@z!$'()*,�+&=;z-._~s [A-Z0-9][A-Z0-9]z[A-Fa-f0-9][A-Fa-f0-9]zutf-8c @ sP e Zd Zddddd�dedededed d
f
dd�Zd
ee d ee fdd�Zd
S )�_Quoter� FT)�safe� protected�qs�requoter r r r �returnNc C s || _ || _|| _|| _d S )N)�_safe�
_protected�_qs�_requote)�selfr r r r r
r
r �__init__ s
z_Quoter.__init__�valc C sr |d u rd S t |t�std��|sdS tt|�jddd�}t� }t� }| j}|t7 }| js1|d7 }|| j 7 }|�d�}d}|t
|�k �r+|| }|d 7 }|r�|tv rV|d
}|�|� t
|�dkr�|d d � } t
�| �sz|�d� |�� |d
8 }q=ztt|d d � �d�dd��}
W n ty� |�d� |�� |d
8 }Y q=w |
| j v r�|�|� n|
|v r�|�t|
�� n|�|� |�� nt
|�d
kr�|t
|�kr�|�d� |�� |d 8 }q=|td�kr�| jr�|�� |�|� |t
|�kr�|�d� q=| j�r|td�k�r|�td�� q=||v �r|�|� q=|�d|d���d�� |t
|�k sD|�d�}||k�r7|S |S )N�Argument should be strr �utf8�ignore)�errorsr r r � � � s %25� � ��baser � �+r )�
isinstance�str� TypeErrorr r
� bytearrayr �ALLOWEDr r �len�BASCII_LOWERCASE�append�_IS_HEX�match�extend�clear�chr�int�decode�
ValueError�ordr )r r �bval�ret�pctr �bsafe�idx�ch�buf�unquoted�ret2r
r
r �__call__$ s�
"
�
�
;
z_Quoter.__call__��__name__�
__module__�__qualname__r. �boolr r rG r
r
r
r r s"