Server IP : 192.158.238.246 / Your IP : 18.216.130.198 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/ |
Upload File : |
U '�7`a � @ s d dl Z d dlmZmZmZmZmZmZ ddlm Z m Z ddlmZ ddl mZ ddlmZ dZerpdd lmZ ed �Zeeeeef d�dd �Zeed�dd�Zeegee f Zeeegee f Zddde d�eeeee ed�dd�Zded�dd�ZdS )� N)� TYPE_CHECKING� Awaitable�Callable�Tuple�Type�TypeVar� )�HTTPPermanentRedirect� _HTTPMove)�Request)�StreamResponse)�SystemRoute)� middleware�normalize_path_middleware)�Application�_Func)�request�path�returnc � s@ | j |d�}| jj�|�I d H }||_|jd kr8d|fS d| fS )N)Zrel_urlTF)�clone�appZrouter�resolveZ_match_infoZhttp_exception)r r Zalt_request� match_info� r �J/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/web_middlewares.py�_check_request_resolves s r )�fr c C s d| _ | S )Nr )Z__middleware_version__)r r r r r s r TF)�append_slash�remove_slash� merge_slashes�redirect_class)r r r r r c s: � o� }|st d��ttttd�� ���fdd��}|S )a� Middleware factory which produces a middleware that normalizes the path of a request. By normalizing it means: - Add or remove a trailing slash to the path. - Double slashes are replaced by one. The middleware returns as soon as it finds a path that resolves correctly. The order if both merge and append/remove are enabled is 1) merge slashes 2) append/remove slash 3) both merge slashes and append/remove slash. If the path resolves with at least one of those conditions, it will redirect to the new path. Only one of `append_slash` and `remove_slash` can be enabled. If both are `True` the factory will raise an assertion error If `append_slash` is `True` the middleware will append a slash when needed. If a resource is defined with trailing slash and the request comes without it, it will append it automatically. If `remove_slash` is `True`, `append_slash` must be `False`. When enabled the middleware will remove trailing slashes and redirect if the resource is defined If merge_slashes is True, merge multiple consecutive slashes in the path into one. z#Cannot both remove and append slash�r �handlerr c � s0 t | jjt��r"g }d| jkr:| j�dd�\}}d| }n d}| j}�r\|�t�dd|�� � rz| j � d�sz|�|d � �r�| j � d�r�|�|d d� � �r�� r�|�t�dd|d �� �r�r�t�dd|�}|�|d d� � |D ]8}t�dd|�}t| |�I d H \}} |r�| j| ��q�|| �I d H S )N�?r � z//+�/���z^//+)� isinstancer Zrouter Zraw_path�split�append�re�subr �endswithr )r r"