
    @lj                        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d       G d d             Zeeeeef   f   ZdZ G d d      Zdede e!   fdZ"dddededz  defdZ#dddededz  defdZ$dedefd Z%dedefd!Z& ee"      d#edefd$       Z'dedef   dz  defd%Z( ee"      d#edefd&       Z)dedef   dz  defd'Z* ee"      d#edefd(       Z+dedef   dz  defd)Z,dede!dz  fd*Z-y)+    N)Callable)	dataclassfield)	lru_cachepartial)AnyLiteral)
ModelField)SecurityBase)DependencyCacheKey)      )iscoroutinefunctioncall.returnc                 J    | | S t        j                  t        |             }|S N)inspectunwrap
_impartial)r   	unwrappeds     N/root/.hermes/venv/lib/python3.12/site-packages/fastapi/dependencies/models.py_unwrapped_callr      s%    |z$/0I    funcc                 `    t        | t              r| j                  } t        | t              r| S r   )
isinstancer   r   )r   s    r   r   r      s&    
T7
#yy T7
#Kr   T)slotsc                      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<   y)	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scope)__name__
__module____qualname__r   listr"   r
   __annotations__r#   r$   r%   r&   r'   r(   strr   r   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   boolr2   r5   r	    r   r   r    r       sO   $)$$?Kj!?%*4%@L$z"@&+D&AM4
#A&+D&AM4
#A$)$$?Kj!?&+D&AL${#AD#*&*D(38
t
#*%)d
)'+#*+-1d
1&*t*.2t2-1d
1)-d3i$&-,0cT)0ItD#*37E7()D07r   r    i   c                   F    e Zd ZdZdedef   ddfdZdefdZde	de
fd	Zy)
_CallIdentityr   r   .r   Nc                     || _         y r   r@   )selfr   s     r   __init__z_CallIdentity.__init__=   s	    	r   c                 ,    t        | j                        S r   )idr   )rB   s    r   __hash__z_CallIdentity.__hash__@   s    $))}r   otherc                 V    t        |t              xr | j                  |j                  u S r   )r   r?   r   )rB   rG   s     r   __eq__z_CallIdentity.__eq__C   s!    %/KDII4KKr   )r6   r7   r8   	__slots__r   r   rC   intrF   objectr<   rI   r=   r   r   r?   r?   :   sE    IXc3h/ D # LF Lt Lr   r?   	dependantc                     | j                   r| j                   j                         ng }| j                  xs g D ]  }||vs|j                  |        |S r   )r0   copyr/   append)rM   scopesr5   s      r   _get_oauth_scopesrR   G   s[    090M0M	%%**,SU  ++1r !MM% ! Mr   )uses_scopes_cacherS   c           	          t        | |      r't        t        t        t	        |                         nd}| j
                  |t        |       xs dfS )NrM   cacherM   r=    )_uses_scopestuplesortedsetrR   r   _get_computed_scope)rM   rS   scopes_for_caches      r   _get_cache_keyr_   R   sT     )3DE 	fS*Y?@AB  	i06B r   )rV   rV   c                    i t        |       }j                  |      }||d   | u r|d   S | j                  rd}n<| j                  d}n-t	        |       rd}nt        fd| j                  D              }| |f|<   |S )Nr      TrW   c              3   8   K   | ]  }t        |         yw)rU   N)rY   ).0sub_deprV   s     r   	<genexpr>z_uses_scopes.<locals>.<genexpr>s   s#      
 7%88
s   )rE   getr/   r.   _is_security_schemeanyr'   )rM   rV   	cache_keycachedresults    `   r   rY   rY   c   s     }9IYYy!FfQi94ay!!		-	-	9	y	1 
$11
 
 "6*E)Mr   c                 f    | j                   yt        | j                         }t        |t              S NF)r   r   r   r   rM   r   s     r   rg   rg   {   s*    ~~	/Ii..r   c                 T    t        | j                        }t        |t              sJ |S r   )r   r   r   r   rn   s     r   _get_security_schemerp      s&    	/Ii...r   )maxsizecall_identityc                 ,   | j                   }t        j                  t        |            st        j                  t	        |            ryt        j
                  t	        |            ryt        t        |      dd       }|yt        j                  t        |            st        j                  t	        |            ryt        t	        |      dd       }|yt        j                  t        |            xs t        j                  t	        |            S NTF__call__)r   r   isgeneratorfunctionr   r   isclassgetattrrr   r   dunder_calldunder_unwrapped_calls       r   _is_gen_callable_cachedr|      s    D"":d#348S8S9 t,-*T*J=K"";		$	$_[%A	B#OD$9:tL$&&() M		$	$_5J%K	LMr   c                 0    | yt        t        |             S rm   )r|   r?   r@   s    r   _is_gen_callabler~      s    |"=#677r   c                 ,   | j                   }t        j                  t        |            st        j                  t	        |            ryt        j
                  t	        |            ryt        t        |      dd       }|yt        j                  t        |            st        j                  t	        |            ryt        t	        |      dd       }|yt        j                  t        |            xs t        j                  t	        |            S rt   )r   r   isasyncgenfunctionr   r   rw   rx   ry   s       r   _is_async_gen_callable_cachedr      s    D!!*T"23w7Q7Q8 t,-*T*J=K!!;		#	#OK$@	A#OD$9:tL$%%() L		#	#O4I$J	KLr   c                 0    | yt        t        |             S rm   )r   r?   r@   s    r   _is_async_gen_callabler          |(t)<==r   c                 .   | j                   }t        j                  t        |            rt	        t        |            ryt        j                  t        |            rt	        t        |            ryt        j                  t        |            ryt        t        |      dd       }|yt	        t        |            st	        t        |            ryt        t        |      dd       }|yt	        t        |            xs t	        t        |            S rt   )r   r   	isroutiner   r   r   rw   rx   ry   s       r   _is_coroutine_callable_cachedr      s    DD)*/B:dCS/T./4G5 t,-*T*J=K:k237J$8 #OD$9:tL$() E	_-BC	DEr   c                 0    | yt        t        |             S rm   )r   r?   r@   s    r   _is_coroutine_callabler      r   r   c                     | j                   r| j                   S t        | j                        st        | j                        ryy )Nr4   )r5   r~   r   r   rW   s    r   r]   r]      s1    	'+A)..+Qr   ).r   syscollections.abcr   dataclassesr   r   	functoolsr   r   typingr   r	   fastapi._compatr
   fastapi.security.baser   fastapi.typesr   version_infor   asyncior   r   r    dictrK   rZ   r<   _UsesScopesCache#_CALLABLE_CLASSIFICATION_CACHE_SIZEr?   r9   r;   rR   r_   rY   rg   rp   r|   r~   r   r   r   r   r]   r=   r   r   <module>r      sS    
 $ ( (  & . ,w++(38,t3  Xc3h' HS#X,>  8 8 8, U9d?334 &* #
L 
LI $s)  26 ($. 	$ ?C$4t$;	0/i /D /y \  67M= MT M 8M.88CH-4 8 8 67L L4 L 8L.>#s(!3d!: >t > 67E E4 E 8E2>#s(!3d!: >t >i C$J r   