
    ;3h~                     x    d Z ddlmZmZmZ ddlmZmZ dZeegee   f   Z	eee	gee   f   Z
de	dee
   de	fd	Zy
)zClient middleware support.    )	AwaitableCallableSequence   ClientRequestClientResponse)ClientMiddlewareTypeClientHandlerTypebuild_client_middlewareshandlermiddlewaresreturnc                      t        |      dk(  r|d   dt        dt        f fd}|S  }t        |      D ]!  dt        dt
        dt
        fd} ||      }# |S )	aX  
    Apply middlewares to request handler.

    The middlewares are applied in reverse order, so the first middleware
    in the list wraps all subsequent middlewares and the handler.

    This implementation avoids using partial/update_wrapper to minimize overhead
    and doesn't cache to avoid holding references to stateful middleware.
    r   r   reqr   c                 2   K    |        d {   S 7 wN )r   r   
middlewares    Z/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/aiohttp/client_middlewares.pysingle_middleware_handlerz;build_client_middlewares.<locals>.single_middleware_handler#   s     #C1111   mwnext_hc                 0     dt         dt        f fd}|S )Nr   r   c                 2   K    |        d {   S 7 wr   r   )r   r   r   s    r   wrappedz?build_client_middlewares.<locals>.make_wrapper.<locals>.wrapped0   s     V_,,,r   r   )r   r   r   s   `` r   make_wrapperz.build_client_middlewares.<locals>.make_wrapper-   s    -= -^ - N    )lenr   r	   reversedr
   r   )r   r   r   current_handlerr   r   s   `    @r   r   r      s     ;1 ^
	2 	2> 	2 )( O{+ 
D
	$	.?		 'z?C
D r   N)__doc__collections.abcr   r   r   client_reqrepr   r	   __all__r   r
   r   r   r   r   <module>r'      st      9 9 8
S m_i.GGH   %&	.(AA 
%%./% %r   