File: //usr/local/lib/python3.10/dist-packages/yarl/__pycache__/_quoting_py.cpython-310.pyc
o
���g� � @ s� d dl Z d dlZd dlmZmZmZ d dlmZ e�d�Z dd� e
d�D �ZdZd Z
e
d
Zee Zee d Zee
Ze�d�Ze�d
�Ze �d�ZG dd� d�ZG dd� d�ZdS )� N)�
ascii_letters�ascii_lowercase�digits)�cast�asciic C s h | ]}d |d��� d��qS )�%�02Xr )�encode)�.0�i� r �;/usr/local/lib/python3.10/dist-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 @ sH e Zd Zddddd�dedededed d
f
dd�Zd
ed efdd�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 sl |d u rd S t |t�std��|sdS |jddd�}t� }t� }| j}|t7 }| js.|d7 }|| j7 }|�d�}d}|t |�k �r(|| }|d 7 }|r�|t
v rS|d
}|�|� t |�dkr�|d d � } t�
| �sw|�d� |�� |d
8 }q:ztt|d d � �d�dd��}
W n ty� |�d� |�� |d
8 }Y q:w |
| jv 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 sA|�d�}||k�r4|S |S )N�Argument should be strr �utf8�ignore)�errorsr r r � � � s %25� � ��baser � �+r )�
isinstance�str� TypeErrorr � 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 rF r r r r
r s"