
    iR                     &   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m	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ ej        d	k    rd d
l mZ nd d
lmZ dedef         dz  defdZdedef         dedef         fdZe G d d                      ZdS )    N)Callable)	dataclassfield)cached_propertypartial)AnyLiteral)
ModelField)SecurityBase)DependencyCacheKey)      )iscoroutinefunctioncall.returnc                 P    | | S t          j        t          |                     }|S N)inspectunwrap
_impartial)r   	unwrappeds     X/root/projects/qq-shell/venv/lib/python3.11/site-packages/fastapi/dependencies/models.py_unwrapped_callr      s)    |z$//00I    funcc                 h    t          | t                    r| j        } t          | t                    | S r   )
isinstancer   r   )r   s    r   r   r      s4    
T7
#
# y T7
#
# Kr   c                      e Zd ZU  ee          Zee         ed<    ee          Zee         ed<    ee          Z	ee         ed<    ee          Z
ee         ed<    ee          Zee         ed<    ee          Zed          ed<   dZedz  ed	<   dZed
ef         dz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZee         dz  ed<   dZee         dz  ed<   dZeed<   dZedz  ed<   dZed         dz  ed<   edee         fd            Z ede!fd            Z"edefd            Z#edefd            Z$ede%fd            Z&eded          fd            Z'edefd             Z(edefd!            Z)edefd"            Z*ededz  fd#            Z+dS )$	Dependant)default_factorypath_paramsquery_paramsheader_paramscookie_paramsbody_paramsdependenciesNname.r   request_param_namewebsocket_param_namehttp_connection_param_nameresponse_param_namebackground_tasks_param_namesecurity_scopes_param_nameown_oauth_scopesparent_oauth_scopesT	use_cachepath)functionrequestscoper   c                     | j         r| j                                         ng }| j        pg D ]}||vr|                    |           |S r   )r/   copyr.   append)selfscopesr4   s      r   oauth_scopeszDependant.oauth_scopes5   s^    484LT)..000RT*0b 	% 	%EF""e$$$r   c                     | j         r0t          t          t          | j        pg                               nd}| j        || j        pdfS )N  )_uses_scopestuplesortedsetr:   r   computed_scope)r8   scopes_for_caches     r   	cache_keyzDependant.cache_key>   sZ     <@;LTE&T.4"5566777RT 	 I%2
 	
r   c                 d    | j         rdS | j        dS | j        rdS | j        D ]}|j        r dS dS )NTF)r.   r-   _is_security_schemer&   r>   )r8   sub_deps     r   r>   zDependant._uses_scopesI   s^      	4*64# 	4( 	 	G# ttur   c                 f    | j         dS t          | j                   }t          |t                    S )NF)r   r   r   r   r8   r   s     r   rF   zDependant._is_security_schemeV   s.    95#DI..	)\222r   c                 \    t          | j                  }t          |t                    sJ |S r   )r   r   r   r   rI   s     r   _security_schemezDependant._security_scheme^   s-    #DI..	)\22222r   c                 (    d | j         D             }|S )Nc                      g | ]}|j         	|S r<   )rF   ).0deps     r   
<listcomp>z4Dependant._security_dependencies.<locals>.<listcomp>f   s     UUUS=TUUUUr   )r&   )r8   security_depss     r   _security_dependenciesz Dependant._security_dependenciesd   s    UU(9UUUr   c                    | j         dS t          j        t          | j                             s&t          j        t	          | j                             rdS t          j        t	          | j                             rdS t          t          | j                   dd           }|dS t          j        t          |                    s!t          j        t	          |                    rdS t          t	          | j                   dd           }|dS t          j        t          |                    s!t          j        t	          |                    rdS dS NFT__call__)r   r   isgeneratorfunctionr   r   isclassgetattrr8   dunder_calldunder_unwrapped_calls      r   is_gen_callablezDependant.is_gen_callablei   sO   95&ty!!
 
 	()C)CDD	 4??495566 	5j33ZFF5&{##
 
 	()E)EFF	 4 '	(B(BJPT U U (5&,--
 
 	(9N)O)OPP	 4ur   c                    | j         dS t          j        t          | j                             s&t          j        t	          | j                             rdS t          j        t	          | j                             rdS t          t          | j                   dd           }|dS t          j        t          |                    s!t          j        t	          |                    rdS t          t	          | j                   dd           }|dS t          j        t          |                    s!t          j        t	          |                    rdS dS rT   )r   r   isasyncgenfunctionr   r   rW   rX   rY   s      r   is_async_gen_callablezDependant.is_async_gen_callable   sO   95%ty!!
 
 	'	(B(BCC	 4??495566 	5j33ZFF5%{##
 
 	'(D(DEE	 4 '	(B(BJPT U U (5%,--
 
 	'8M(N(NOO	 4ur   c                    | j         dS t          j        t          | j                             r#t	          t          | j                             rdS t          j        t          | j                             r#t	          t          | j                             rdS t          j        t          | j                             rdS t          t          | j                   dd           }|dS t	          t          |                    st	          t          |                    rdS t          t          | j                   dd           }|dS t	          t          |                    st	          t          |                    rdS dS rT   )r   r   	isroutiner   r   r   rW   rX   rY   s      r   is_coroutine_callablezDependant.is_coroutine_callable   s   95Z	2233 	8Kty!!9
 9
 	 4_TY7788 	=PDI&&>
 >
 	 4??495566 	5j33ZFF5z+6677 	;NK((<
 <
 	 4 '	(B(BJPT U U (5,--
 
 	 1F!G!GHH	 4ur   c                 B    | j         r| j         S | j        s| j        rdS d S )Nr3   )r4   r\   r_   )r8   s    r   rB   zDependant.computed_scope   s3    : 	: 	4#= 	9tr   ),__name__
__module____qualname__r   listr!   r
   __annotations__r"   r#   r$   r%   r&   r'   strr   r   r   r(   r)   r*   r+   r,   r-   r.   r/   r0   boolr1   r4   r	   r   r:   r   rD   r>   rF   r   rK   rR   r\   r_   rb   rB   r<   r   r   r   r      s        $)E$$?$?$?Kj!???%*U4%@%@%@L$z"@@@&+eD&A&A&AM4
#AAA&+eD&A&A&AM4
#AAA$)E$$?$?$?Kj!???&+eD&A&A&AL${#AAAD#*&*D(38
t
#***%)d
)))'+#*+++-1d
111&*t***.2t222-1d
111)-d3i$&---,0cT)000ItD#*37E7()D0777d3i    _ 
- 
 
 
 _
 
d 
 
 
 _
 3T 3 3 3 _3 ,    _
 [(9    _     _2 t    _2 t    _: d
    _  r   r   )r   syscollections.abcr   dataclassesr   r   	functoolsr   r   typingr   r	   fastapi._compatr
   fastapi.security.baser   fastapi.typesr   version_infor   asyncior   r   r   r<   r   r   <module>ru      s    



 $ $ $ $ $ $ ( ( ( ( ( ( ( ( . . . . . . . .         & & & & & & . . . . . . , , , , , ,w+++++++++++++(38,t3     Xc3h' HS#X,>     a a a a a a a a a ar   