
    	h*                       d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm	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#dS ),    )annotationsN)Sequence)AnyCallable)	urlencode)   
   )	ParamSpec)is_async_callable)HTTPException)HTTPConnectionRequest)RedirectResponse)	WebSocket_Pconnr   scopesSequence[str]returnboolc                2    |D ]}|| j         j        vr dS dS )NFT)authr   )r   r   scopes      e/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/starlette/authentication.pyhas_required_scoper      s2      	(((55 )4      str | Sequence[str]status_codeintredirect
str | None0Callable[[Callable[_P, Any]], Callable[_P, Any]]c                j    t          | t                    r| gnt          |           dfd}|S )NfuncCallable[_P, Any]r   c                    t          j                   }t          |j                                                  D ]$\  }|j        dk    s|j        dk    r	|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 ""args_P.argskwargs	_P.kwargsr   Nonec                   K   |                     dt          |           k     r|          nd           }t          |t                    sJ t	          |          s|                                 d {V  d S  | i | d {V  d S )Nr)   )getlen
isinstancer   r   close)r+   r-   r)   r%   idxscopes_lists      r   websocket_wrapperz6requires.<locals>.decorator.<locals>.websocket_wrapper3   s      "JJ{s4yyDIIVZ[[	!)Y77777))[AA 0#//+++++++++++$////////////r   r   c                   K   |                     dt          |           k     r|          nd           }t          |t                    sJ t	          |          s`Nt          dt          |j                  i          }|                               d| }t          |d          S t          	           | i | d {V S Nr(   next?i/  )urlr   )r   r1   r2   r3   r   r   r   strr<   url_forr   r   
r+   r-   r(   orig_request_qparamnext_urlr%   r5   r!   r6   r   s
        r   async_wrapperz2requires.<locals>.decorator.<locals>.async_wrapperA   s       **YS3t99__S		RVWW!'733333)';?? A+.7W[AQAQ8R.S.S+&-ooh&?&?#W#WBU#W#W/H#NNNN'K@@@@!T426222222222r   c                    |                     dt          |           k     r|          nd           }t          |t                    sJ t	          |          s`Nt          dt          |j                  i          }|                               d| }t          |d          S t          	           | i |S r9   r=   r@   s
        r   sync_wrapperz1requires.<locals>.decorator.<locals>.sync_wrapperR   s     **YS3t99__S		RVWW!'733333)';?? A+.7W[AQAQ8R.S.S+&-ooh&?&?#W#WBU#W#W/H#NNNN'K@@@@tT,V,,,r   )r+   r,   r-   r.   r   r/   )r+   r,   r-   r.   r   r   )
inspect	signature	enumerate
parametersvaluesname	Exception	functoolswrapsr   )r%   sig	parametertype_r7   rC   rE   r5   r!   r6   r   s   `      @r   	decoratorzrequires.<locals>.decorator&   s    %%'(=(=(?(?@@ 	Z 	ZNC~**in.K.K! /L XQUXXXYYYK_T""0 0 0 0 0 0 0 #"0 %$t$$  	 _T""
3 
3 
3 
3 
3 
3 
3 
3 
3 #"
3 !  _T""
- 
- 
- 
- 
- 
- 
- 
- 
- #"
-  r   )r%   r&   r   r&   )r3   r>   list)r   r   r!   rR   r6   s    `` @r   requiresrT      sX    
 )55G6((4<<K9  9  9  9  9  9  9  9 v r   c                      e Zd ZdS )AuthenticationErrorN)__name__
__module____qualname__ r   r   rV   rV   d   s        Dr   rV   c                      e Zd ZddZdS )AuthenticationBackendr   r   r   'tuple[AuthCredentials, BaseUser] | Nonec                "   K   t                      NNotImplementedError)selfr   s     r   authenticatez"AuthenticationBackend.authenticatei   s      !###r   N)r   r   r   r]   )rW   rX   rY   rc   rZ   r   r   r\   r\   h   s(        $ $ $ $ $ $r   r\   c                      e Zd ZdddZdS )AuthCredentialsNr   Sequence[str] | Nonec                6    |g nt          |          | _        d S r_   )rS   r   )rb   r   s     r   __init__zAuthCredentials.__init__n   s    "NbbVr   r_   )r   rf   )rW   rX   rY   rh   rZ   r   r   re   re   m   s-        = = = = = = =r   re   c                  V    e Zd Zedd            Zed	d            Zed	d            ZdS )
BaseUserr   r   c                    t                      r_   r`   rb   s    r   is_authenticatedzBaseUser.is_authenticateds       !###r   r>   c                    t                      r_   r`   rl   s    r   display_namezBaseUser.display_namew   rn   r   c                    t                      r_   r`   rl   s    r   identityzBaseUser.identity{   rn   r   Nr   r   r   r>   )rW   rX   rY   propertyrm   rp   rr   rZ   r   r   rj   rj   r   sr        $ $ $ X$ $ $ $ X$ $ $ $ X$ $ $r   rj   c                  F    e Zd Zd
dZedd            Zedd            Zd	S )
SimpleUserusernamer>   r   r/   c                    || _         d S r_   rx   )rb   rx   s     r   rh   zSimpleUser.__init__   s     r   r   c                    dS )NTrZ   rl   s    r   rm   zSimpleUser.is_authenticated   s    tr   c                    | j         S r_   rz   rl   s    r   rp   zSimpleUser.display_name   s
    }r   N)rx   r>   r   r/   rs   rt   )rW   rX   rY   rh   ru   rm   rp   rZ   r   r   rw   rw      sh        ! ! ! !    X    X  r   rw   c                  >    e Zd Zedd            Zedd            ZdS )	UnauthenticatedUserr   r   c                    dS )NFrZ   rl   s    r   rm   z$UnauthenticatedUser.is_authenticated   s    ur   r>   c                    dS )N rZ   rl   s    r   rp   z UnauthenticatedUser.display_name   s    rr   Nrs   rt   )rW   rX   rY   ru   rm   rp   rZ   r   r   r~   r~      sR           X    X  r   r~   )r   r   r   r   r   r   )r   N)r   r   r   r    r!   r"   r   r#   )$
__future__r   rM   rF   syscollections.abcr   typingr   r   urllib.parser   version_infor
   typing_extensionsstarlette._utilsr   starlette.exceptionsr   starlette.requestsr   r   starlette.responsesr   starlette.websocketsr   r   r   rT   rL   rV   r\   re   rj   rw   r~   rZ   r   r   <module>r      sN   " " " " " "      



 $ $ $ $ $ $                 " " " " " "w       ++++++ . . . . . . . . . . . . 6 6 6 6 6 6 6 6 0 0 0 0 0 0 * * * * * *Yt__    B B B B BJ	 	 	 	 	) 	 	 	$ $ $ $ $ $ $ $
= = = = = = = =
$ $ $ $ $ $ $ $
 
 
 
 
 
 
 
    (     r   