
    ,h
                        d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZmZ d dlmZmZmZmZ d dlmZ  G d	 d
      Zy)    )annotationsN)ExceptionHandlersStatusHandlerswrap_app_handling_exceptions)HTTPExceptionWebSocketException)Request)PlainTextResponseResponse)ASGIAppReceiveScopeSend)	WebSocketc                  T    e Zd Z	 	 d	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 d	dZd
dZddZddZy)ExceptionMiddlewareNc                    || _         || _        i | _        t        | j                  t
        | j                  i| _        |+|j                         D ]  \  }}| j                  ||        y y N)
appdebug_status_handlersr   http_exceptionr   websocket_exception_exception_handlersitemsadd_exception_handler)selfr   handlersr   keyvalues         a/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py__init__zExceptionMiddleware.__init__   sq     
024.. 8 87
  &nn. 7
U**367      c                    t        |t              r|| j                  |<   y t        |t              sJ || j
                  |<   y r   )
isinstanceintr   
issubclass	Exceptionr   )r   exc_class_or_status_codehandlers      r!   r   z)ExceptionMiddleware.add_exception_handler#   s?    
 .4>ED!!":;6	BBAHD$$%=>r#   c                "  K   |d   dvr| j                  |||       d {    y | j                  | j                  f|d<   |d   dk(  rt        |||      }nt	        |||      } t        | j                   |      |||       d {    y 7 j7 w)Ntype)http	websocketzstarlette.exception_handlersr-   )r   r   r   r	   r   r   )r   scopereceivesendconns        r!   __call__zExceptionMiddleware.__call__.   s     = 55((5'4000 $$!!1
,- =F"5'40DUGT2D:*488T:5'4PPP 1 	Qs"   BBA$BBBBc                    t        |t              sJ |j                  dv r!t        |j                  |j                        S t        |j                  |j                  |j                        S )N>   0     )status_codeheaders)r%   r   r7   r   r8   r
   detail)r   requestexcs      r!   r   z"ExceptionMiddleware.http_exception@   sN    #}--??j(MM RUR]R]^^r#   c                   K   t        |t              sJ |j                  |j                  |j                         d {    y 7 w)N)codereason)r%   r   closer=   r>   )r   r.   r;   s      r!   r   z'ExceptionMiddleware.websocket_exceptionF   s2     #122oo388CJJo???s   =AA A)NF)r   r   r   zRtyping.Mapping[typing.Any, typing.Callable[[Request, Exception], Response]] | Noner   boolreturnNone)r)   zint | type[Exception]r*   z/typing.Callable[[Request, Exception], Response]rA   rB   )r/   r   r0   r   r1   r   rA   rB   )r:   r	   r;   r(   rA   r   )r.   r   r;   r(   rA   rB   )__name__
__module____qualname__r"   r   r3   r   r    r#   r!   r   r      sp     hl	77 e7 	7
 
7"	I"7	I A	I 
		IQ$_@r#   r   )
__future__r   typingstarlette._exception_handlerr   r   r   starlette.exceptionsr   r   starlette.requestsr	   starlette.responsesr
   r   starlette.typesr   r   r   r   starlette.websocketsr   r   rF   r#   r!   <module>rO      s6    "  
 C & ; 9 9 *7@ 7@r#   