
    CjR                    D   S SK Jr  S SKrS SKrS SKJrJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  \	" S5      rSS jr  S       SS jjr " S S\5      r " S S5      r " S S5      r " S S5      r " S S\5      r " S S\5      r g)    )annotationsN)CallableSequence)Any	ParamSpec)	urlencode)is_async_callable)HTTPException)HTTPConnectionRequest)RedirectResponse)	WebSocket_Pc                L    U H  nX R                   R                  ;  d  M    g   g)NFT)authscopes)connr   scopes      j/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/starlette/authentication.pyhas_required_scoper      s$    		(((      c                n   ^^^ [        U [        5      (       a  U /O
[        U 5      m    SUUU4S jjnU$ )Nc                  >^ ^ [         R                  " T 5      n[        UR                  R	                  5       5       H4  u  mnUR
                  S:X  d  UR
                  S:X  d  M(  UR
                  n  O   [        ST  S35      eUS:X  a%  [        R                  " T 5      SU UU	4S jj5       nU$ [        T 5      (       a'  [        R                  " T 5      S	U UUU	U
4S jj5       nU$ [        R                  " T 5      S	U UUU	U
4S jj5       nU$ )
Nrequest	websocketz2No "request" or "websocket" argument on function ""c                 <  >#    UR                  ST[        U 5      :  a  U T   OS 5      n[        U[        5      (       d   S[	        U5      R
                   S35       e[        UT5      (       d  UR                  5       I S h  vN   g T" U 0 UD6I S h  vN   g  N N7f)Nr   zKParameter with name 'websocket' is required to be of type 'WebSocket' not '')getlen
isinstancer   type__name__r   close)argskwargsr   funcidxscopes_lists      r   websocket_wrapper6requires.<locals>.decorator.<locals>.websocket_wrapper-   s     "JJ{s4yDIVZ[	!)Y77 !)_556a97
 *)[AA#//+++//// ,/s$   A>BBBBBBc                   >#    UR                  ST[        U 5      :  a  U T   OS 5      n[        U[        5      (       d   S[	        U5      R
                   S35       e[        UT5      (       dL  Tb@  [        S[        UR                  5      05      nUR                  T5       SU 3n[        USS9$ [        T	S9eT" U 0 UD6I S h  vN $  N7f	Nr   zGParameter with name 'request' is required to be of type 'Request' not 'r   next?i/  )urlstatus_code)r1   r   r    r!   r   r"   r#   r   r   strr0   url_forr   r
   
r%   r&   r   orig_request_qparamnext_urlr'   r(   redirectr)   r1   s
        r   async_wrapper2requires.<locals>.decorator.<locals>.async_wrapper>   s      **YS3t9_S	RVW!'733 ]^bcj^k^t^t]uuvw3 *';??+.7W[[AQ8R.S+&-ooh&?%@BUAV#W/H#NN'K@@!4262222s   CCC
Cc                   > UR                  ST[        U 5      :  a  U T   OS 5      n[        U[        5      (       d   S[	        U5      R
                   S35       e[        UT5      (       dL  Tb@  [        S[        UR                  5      05      nUR                  T5       SU 3n[        USS9$ [        T	S9eT" U 0 UD6$ r-   r2   r5   s
        r   sync_wrapper1requires.<locals>.decorator.<locals>.sync_wrapperQ   s     **YS3t9_S	RVW!'733 ]^bcj^k^t^t]uuvw3 *';??+.7W[[AQ8R.S+&-ooh&?%@BUAV#W/H#NN'K@@T,V,,r   )r%   _P.argsr&   	_P.kwargsreturnNone)r%   r>   r&   r?   r@   r   )
inspect	signature	enumerate
parametersvaluesname	Exception	functoolswrapsr	   )r'   sig	parametertype_r*   r9   r<   r(   r8   r)   r1   s   `      @r   	decoratorrequires.<locals>.decorator    s     %'(=(=(?@NC~~*inn.K! A
 PQUPVVWXYYK__T"
0 
0 #
0 %$t$$__T"3 3 #3 !  __T"- - #-  r   )r'   Callable[_P, Any]r@   rP   )r!   r3   list)r   r1   r8   rN   r)   s    `` @r   requiresrR      sE    
 )556(4<K@ @ 	@  @ D r   c                      \ rS rSrSrg)AuthenticationErrore    N)r#   
__module____qualname____firstlineno____static_attributes__rV   r   r   rT   rT   e   s    r   rT   c                      \ rS rSrSS jrSrg)AuthenticationBackendi   c                   #    [        5       e7fNNotImplementedError)selfr   s     r   authenticate"AuthenticationBackend.authenticatej   s     !##s   rV   N)r   r   r@   z'tuple[AuthCredentials, BaseUser] | None)r#   rW   rX   rY   rc   rZ   rV   r   r   r\   r\   i   s    $r   r\   c                  "    \ rS rSrSSS jjrSrg)AuthCredentialsn   Nc                :    Uc  / U l        g [        U5      U l        g r_   )rQ   r   )rb   r   s     r   __init__AuthCredentials.__init__o   s    "NbVr   )r   r_   )r   zSequence[str] | None)r#   rW   rX   rY   ri   rZ   rV   r   r   rf   rf   n   s    = =r   rf   c                  P    \ rS rSr\SS j5       r\SS j5       r\SS j5       rSrg)	BaseUsers   c                    [        5       er_   r`   rb   s    r   is_authenticatedBaseUser.is_authenticatedt       !##r   c                    [        5       er_   r`   ro   s    r   display_nameBaseUser.display_namex   rr   r   c                    [        5       er_   r`   ro   s    r   identityBaseUser.identity|   rr   r   rV   Nr@   boolr@   r3   )	r#   rW   rX   rY   propertyrp   rt   rw   rZ   rV   r   r   rl   rl   s   s<    $ $ $ $ $ $r   rl   c                  F    \ rS rSrSS jr\SS j5       r\S	S j5       rSrg)

SimpleUser   c                    Xl         g r_   username)rb   r   s     r   ri   SimpleUser.__init__   s     r   c                    g)NTrV   ro   s    r   rp   SimpleUser.is_authenticated   s    r   c                    U R                   $ r_   r   ro   s    r   rt   SimpleUser.display_name   s    }}r   r   N)r   r3   r@   rA   ry   r{   )	r#   rW   rX   rY   ri   r|   rp   rt   rZ   rV   r   r   r~   r~      s/    !    r   r~   c                  <    \ rS rSr\SS j5       r\SS j5       rSrg)UnauthenticatedUser   c                    g)NFrV   ro   s    r   rp   $UnauthenticatedUser.is_authenticated   s    r   c                    g)N rV   ro   s    r   rt    UnauthenticatedUser.display_name   s    r   rV   Nry   r{   )r#   rW   rX   rY   r|   rp   rt   rZ   rV   r   r   r   r      s(       r   r   )r   r   r   zSequence[str]r@   rz   )i  N)r   zstr | Sequence[str]r1   intr8   z
str | Noner@   z0Callable[[Callable[_P, Any]], Callable[_P, Any]])!
__future__r   rI   rB   collections.abcr   r   typingr   r   urllib.parser   starlette._utilsr	   starlette.exceptionsr
   starlette.requestsr   r   starlette.responsesr   starlette.websocketsr   r   r   rR   rH   rT   r\   rf   rl   r~   r   rV   r   r   <module>r      s    "   . ! " . . 6 0 *t_ III I 6	IX	) 	$ $
= =
$ $
 
( r   