
    }<i                    >   d dl mZ d dlZd dlZd dlmZmZ d dlmZm	Z	 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)CallableSequence)Any	ParamSpec)	urlencode)is_async_callable)HTTPException)HTTPConnectionRequest)RedirectResponse)	WebSocket_Pc                F    |D ]  }|| j                   j                  vs y y)NFT)authscopes)connr   scopes      ]/home/www/utuvibe.miabetepe.com/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_wrapper-   sn     "JJ{s4yDIVZ[	!)Y7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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.   r1   s
        r   sync_wrapperz1requires.<locals>.decorator.<locals>.sync_wrapperL   s     **YS3t9_S	RVW!'7333)';?+.7W[[AQ8R.S+&-ooh&?%@BUAV#W/H#NN'K@@T,V,,r   )r"   _P.argsr#   	_P.kwargsreturnNone)r"   r8   r#   r9   r:   r   )
inspect	signature	enumerate
parametersvaluesname	Exception	functoolswrapsr	   )r$   sig	parametertype_r'   r5   r7   r%   r4   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$   Callable[_P, Any]r:   rI   )r    r/   list)r   r-   r4   rH   r&   s    `` @r   requiresrK      s9    
 )56(4<K9 9 	9 v r   c                      e Zd Zy)AuthenticationErrorN)__name__
__module____qualname__ r   r   rM   rM   ^   s    r   rM   c                      e Zd ZddZy)AuthenticationBackendc                   K   t               wNNotImplementedError)selfr   s     r   authenticatez"AuthenticationBackend.authenticatec   s     !##s   N)r   r   r:   z'tuple[AuthCredentials, BaseUser] | None)rN   rO   rP   rY   rQ   r   r   rS   rS   b   s    $r   rS   c                      e Zd ZdddZy)AuthCredentialsNc                8    |g | _        y t        |      | _        y rU   )rJ   r   )rX   r   s     r   __init__zAuthCredentials.__init__h   s    "NbVr   rU   )r   zSequence[str] | None)rN   rO   rP   r]   rQ   r   r   r[   r[   g   s    =r   r[   c                  B    e Zd Zedd       Zedd       Zedd       Zy)BaseUserc                    t               rU   rV   rX   s    r   is_authenticatedzBaseUser.is_authenticatedm       !##r   c                    t               rU   rV   ra   s    r   display_namezBaseUser.display_nameq   rc   r   c                    t               rU   rV   ra   s    r   identityzBaseUser.identityu   rc   r   Nr:   boolr:   r/   )rN   rO   rP   propertyrb   re   rg   rQ   r   r   r_   r_   l   s<    $ $ $ $ $ $r   r_   c                  8    e Zd ZddZedd       Zedd       Zy)
SimpleUserc                    || _         y rU   username)rX   rp   s     r   r]   zSimpleUser.__init__{   s	     r   c                     y)NTrQ   ra   s    r   rb   zSimpleUser.is_authenticated~   s    r   c                    | j                   S rU   ro   ra   s    r   re   zSimpleUser.display_name   s    }}r   N)rp   r/   r:   r;   rh   rj   )rN   rO   rP   r]   rk   rb   re   rQ   r   r   rm   rm   z   s/    !    r   rm   c                  0    e Zd Zedd       Zedd       Zy)UnauthenticatedUserc                     y)NFrQ   ra   s    r   rb   z$UnauthenticatedUser.is_authenticated   s    r   c                     y)N rQ   ra   s    r   re   z UnauthenticatedUser.display_name   s    r   Nrh   rj   )rN   rO   rP   rk   rb   re   rQ   r   r   rt   rt      s(       r   rt   )r   r   r   zSequence[str]r:   ri   )i  N)r   zstr | Sequence[str]r-   intr4   z
str | Noner:   z0Callable[[Callable[_P, Any]], Callable[_P, Any]])!
__future__r   rC   r<   collections.abcr   r   typingr   r   urllib.parser   starlette._utilsr	   starlette.exceptionsr
   starlette.requestsr   r   starlette.responsesr   starlette.websocketsr   r   r   rK   rB   rM   rS   r[   r_   rm   rt   rQ   r   r   <module>r      s    "   . ! " . . 6 0 *t_ BBB B 6	BJ	) 	$ $
= =
$ $
 
( r   