
    ,hT                    f   d dl mZ d dlZd dlZd dlZd dlZd dlmZ ej                  dk\  rd dlm	Z	 nd dl
m	Z	 d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ  e	d      ZddZ	 	 d	 	 	 	 	 	 	 ddZ G d de      Z G d d      Z G d d      Z G d d      Z G d de      Z G d de      Zy)    )annotationsN)	urlencode)   
   )	ParamSpec)is_async_callable)HTTPException)HTTPConnectionRequest)RedirectResponse)	WebSocket_Pc                F    |D ]  }|| j                   j                  vs y y)NFT)authscopes)connr   scopes      Z/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/starlette/authentication.pyhas_required_scoper      s+     		(((     c                `    t        | t              r| gn
t        |       	 	 	 	 dfd}|S )Nc                    t        j                         }t        |j                  j	                               D ]1  \  }|j
                  dk(  s|j
                  dk(  s%|j
                  } n t        d  d      |dk(  r"t        j                         d 	fd       }|S t               r$t        j                         d	 	
fd       }|S t        j                         d	 	
fd       }|S )
Nrequest	websocketz2No "request" or "websocket" argument on function ""c                    K   |j                  dt        |       k  r|    nd       }t        |t              sJ t	        |      s|j                          d {    y  | i | d {    y 7 7 w)Nr   )getlen
isinstancer   r   close)argskwargsr   funcidxscopes_lists      r   websocket_wrapperz6requires.<locals>.decorator.<locals>.websocket_wrapper2   sk     "JJ{s4yDIVZ[	!)Y77))[A#//+++//// ,/s$   AA5A1A5+A3,A53A5c                 X  K   |j                  dt        |       k  r|    nd       }t        |t              sJ t	        |      sQCt        dt        |j                        i      }|j                         d| }t        |d      S t        	       | i | d {   S 7 wNr   next?i/  )urlstatus_code)r,   r   r   r   r   r   r   strr+   url_forr   r	   
r!   r"   r   orig_request_qparamnext_urlr#   r$   redirectr%   r,   s
        r   async_wrapperz2requires.<locals>.decorator.<locals>.async_wrapper@   s      **YS3t9_S	RVW!'733)';?+.7W[[AQ8R.S+&-ooh&?%@BUAV#W/H#NN'K@@!4262222s   B B*#B($B*c                 <   |j                  dt        |       k  r|    nd       }t        |t              sJ t	        |      sQCt        dt        |j                        i      }|j                         d| }t        |d      S t        	       | i |S r(   r-   r0   s
        r   sync_wrapperz1requires.<locals>.decorator.<locals>.sync_wrapperQ   s     **YS3t9_S	RVW!'733)';?+.7W[[AQ8R.S+&-ooh&?%@BUAV#W/H#NN'K@@T,V,,r   )r!   _P.argsr"   	_P.kwargsreturnNone)r!   r7   r"   r8   r9   z
typing.Any)
inspect	signature	enumerate
parametersvaluesname	Exception	functoolswrapsr   )r#   sig	parametertype_r&   r4   r6   r$   r3   r%   r,   s   `      @r   	decoratorzrequires.<locals>.decorator%   s     %'(=(=(?@ 	ZNC~~*inn.K!	Z
 PQUPVVWXYYK__T"0 #0 %$t$__T"
3 
3 #
3 !  __T"
- 
- #
-  r   )r#   typing.Callable[_P, typing.Any]r9   rH   )r   r.   list)r   r,   r3   rG   r%   s    `` @r   requiresrJ      s9    
 )56(4<K9 -9 	(9 v r   c                      e Zd Zy)AuthenticationErrorN)__name__
__module____qualname__ r   r   rL   rL   c   s    r   rL   c                      e Zd ZddZy)AuthenticationBackendc                   K   t               wNNotImplementedError)selfr   s     r   authenticatez"AuthenticationBackend.authenticateh   s     !##s   N)r   r
   r9   z'tuple[AuthCredentials, BaseUser] | None)rM   rN   rO   rX   rP   r   r   rR   rR   g   s    $r   rR   c                      e Zd ZdddZy)AuthCredentialsNc                8    |g | _        y t        |      | _        y rT   )rI   r   )rW   r   s     r   __init__zAuthCredentials.__init__m   s    "NbVr   rT   )r   ztyping.Sequence[str] | None)rM   rN   rO   r\   rP   r   r   rZ   rZ   l   s    =r   rZ   c                  B    e Zd Zedd       Zedd       Zedd       Zy)BaseUserc                    t               rT   rU   rW   s    r   is_authenticatedzBaseUser.is_authenticatedr       !##r   c                    t               rT   rU   r`   s    r   display_namezBaseUser.display_namev   rb   r   c                    t               rT   rU   r`   s    r   identityzBaseUser.identityz   rb   r   Nr9   boolr9   r.   )rM   rN   rO   propertyra   rd   rf   rP   r   r   r^   r^   q   s<    $ $ $ $ $ $r   r^   c                  8    e Zd ZddZedd       Zedd       Zy)
SimpleUserc                    || _         y rT   username)rW   ro   s     r   r\   zSimpleUser.__init__   s	     r   c                     y)NTrP   r`   s    r   ra   zSimpleUser.is_authenticated   s    r   c                    | j                   S rT   rn   r`   s    r   rd   zSimpleUser.display_name   s    }}r   N)ro   r.   r9   r:   rg   ri   )rM   rN   rO   r\   rj   ra   rd   rP   r   r   rl   rl      s/    !    r   rl   c                  0    e Zd Zedd       Zedd       Zy)UnauthenticatedUserc                     y)NFrP   r`   s    r   ra   z$UnauthenticatedUser.is_authenticated   s    r   c                     y)N rP   r`   s    r   rd   z UnauthenticatedUser.display_name   s    r   Nrg   ri   )rM   rN   rO   rj   ra   rd   rP   r   r   rs   rs      s(       r   rs   )r   r
   r   ztyping.Sequence[str]r9   rh   )i  N)r   zstr | typing.Sequence[str]r,   intr3   z
str | Noner9   zStyping.Callable[[typing.Callable[_P, typing.Any]], typing.Callable[_P, typing.Any]]) 
__future__r   rB   r;   systypingurllib.parser   version_infor   typing_extensionsstarlette._utilsr   starlette.exceptionsr	   starlette.requestsr
   r   starlette.responsesr   starlette.websocketsr   r   r   rJ   rA   rL   rR   rZ   r^   rl   rs   rP   r   r   <module>r      s    "   
  "w + . . 6 0 *t_ B&BB B Y	BJ	) 	$ $
= =
$ $
 
( r   