
    [j͎                     D   U d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z
 ddlmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* dd
l+m,Z, 	 ddlm-Z-m.Z. n# e/$ r ddl0m-Z-m.Z. Y nw xY w	 ddlm1Z1 n# e/$ r ddlm2Z2  e2d          Z1Y nw xY wej3        dk    rddlm4Z4 ndZ4ej3        dk    rddlm5Z5m6Z6m7Z7 n'	 ddl0m5Z5m6Z6m7Z7 n# e/$ r  e8            Z5d Z6d Z7Y nw xY wg Z9e"eegef                  e:d<   egZ;e"eege<f                  e:d<    ee/          5  ddl=m>Z? dedefdZ@e9A                    e@           ddd           n# 1 swxY w Y    ee/          5  ddlBmCZD dedefdZEe9A                    eE           ddd           n# 1 swxY w Y    ee/          5  ddlFm>ZG dedefdZHe9A                    eH           ddd           n# 1 swxY w Y    ee/          5  ddlImJZK dede<fdZLe;A                    eL           ddd           n# 1 swxY w Y    ee/          5  dd lMmNZO dede<fd!ZPe;A                    eP           ddd           n# 1 swxY w Y   dede<fd"ZQdede<fd#ZRd$d%lSmTZT d&ZU e(d'          ZV e(d(ed)ef         *          ZWerd$d+lXmYZY neZY G d, d-eZ          Z[ G d. d/e[          Z\ G d0 d1          Z] G d2 d3          Z^ G d4 d5          Z_ G d6 d7          Z`dede<fd8Zaddd9d9d:d;eYd<e#e e                  d=e#e e                  d>e<d?e<ddfd@ZbdddAd<e#e e                  d=e#e e                  ddfdBZcdCeWdeWfdDZd	 	 ddEedFeedCed)ef         dGe`d?e<dHefddfdIZg	 	 ddJe'dFeedKed)ef         dGe`d?e<dHefddfdLZhdEedFeedCed)ef         ddfdMZi	 	 ddNedFeedOdPdGe`d?e<dHefddfdQZjdRe_ddfdSZkdTede#dP         fdUZle1dCed)ef         de&eeeef         eeeef         f         fdV            Zm	 	 ddCed)ef         dGe`d?e<dHefddf
dWZndCed)ef         ddfdXZodY Zpde<fdZZqde<fd[ZrdCeWd\eeef         d]eeef         deWfd^Zsde<fd_Ztd`ede<fdaZud`edJe'de<fdbZv G dc dd          Zw G de dfew          ZxdexfdgZydexfdhZzdie'dexfdjZ{ G dk dlew          Z|de|fdmZ} G dn doew          Z~dpeede~fdqZ G dr dsew          ZdefdtZe)eeeTj        e         e&eeexf         e'eY         dPf         Zer G du dPe$          Zee:dv<   ee:dw<   ee:dx<   n7 G dy dP          Z G dz dve          Z G d{ dwe          Z G d| dxe          Z G d} d~          ZdeYddfdZdeYddfdZddZddZde<fdZ e]            Z e            Zd$dlmZ dCeWdRe^deWfdZdCeWdRe^deWfdZdCeWdRe^deWfdZ	 ddlmZ n# e/$ r dedeeeef         fdZY nw xY wdede e&eeef                  fdZddZdS )zWiring module.    N)suppress)wraps)import_moduleinvalidate_caches)		Parameter
getmembersisasyncgenfunction	isbuiltinisclassiscoroutinefunction
isfunctionismethod	signature)walk_packages)
ModuleType)TYPE_CHECKINGAnyAsyncIteratorCallableDictIterableIteratorListOptionalProtocolSetTupleTypeTypeVarUnioncast)warn)Selfassert_never)cache)	lru_cache)maxsize)   	   )GenericAlias)	Annotatedget_args
get_originc                     dS )N r/   )hints    ^/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/dependency_injector/wiring.pyr,   r,   D   s    2    c                     d S Nr/   )tps    r1   r-   r-   G   s    4r2   MARKER_EXTRACTORSINSPECT_EXCLUSION_FILTERS)Dependsparamreturnc                 >    t          | t                    r| j        S d S r4   )
isinstanceFastAPIDepends
dependencyr9   s    r1   extract_marker_from_fastapir@   Q   s"    e^,, 	$##tr2   )	Dependantc                 >    t          | t                    r| j        S d S r4   )r<   FastDependantr>   r?   s    r1   *extract_marker_from_dependant_fast_dependsrD   ]   s"    e]++ 	$##tr2   c                 >    t          | t                    r| j        S d S r4   )r<   FastDependsr>   r?   s    r1    extract_marker_from_fast_dependsrG   i   s"    e[)) 	$##tr2   )Requestobjc                 J    t          |           ot          | t                    S r4   )r   _safe_is_subclassStarletteRequestrI   s    r1   is_starlette_request_clsrN   t   s    s||H 1#7G H HHr2   )
LocalProxyc                 ,    t          | t                    S r4   )r<   WerkzeugLocalProxyrM   s    r1   is_werkzeug_local_proxyrR   }   s    #1222r2   c                 2    t          |           j        dk    S )z>Return True for Cython-compiled functions/methods (non-fused).cython_function_or_method)type__name__rM   s    r1   _is_cyfunctionrW      s    99!<<<r2   c                 >    t          |           pt          |           S )zDReturn True for pure-Python functions and Cython-compiled functions.)r   rW   rM   s    r1   _is_function_likerY      s    c??1nS111r2      )	providers)wireunwireinjectas_intas_floatas_required	invariantprovidedProvideProviderClosingregister_loader_containersunregister_loader_containersinstall_loaderuninstall_loaderis_loader_installedTF.)bound)	Containerc                       e Zd ZdZdS )DIWiringWarningz8Base class for all warnings raised by the wiring module.NrV   
__module____qualname____doc__r/   r2   r1   rr   rr      s        BBBBr2   rr   c                       e Zd ZdZdS )UnresolvedMarkerWarningzYWarning raised when a marker with string identifier cannot be resolved against container.Nrs   r/   r2   r1   rx   rx      s        ccccr2   rx   c                       e Zd ZddZddZdedeedef                  fd	Z	d
edef         ddfdZ
d
edef         defdZddZdeded         fdZdeddfdZdS )PatchedRegistryr:   Nc                 :    i | _         t                      | _        d S r4   )
_callablesset_attributesselfs    r1   __init__zPatchedRegistry.__init__   s    GI25%%r2   patchedPatchedCallablec                 $    || j         |j        <   d S r4   )r|   r   r   r   s     r1   register_callablez!PatchedRegistry.register_callable   s    +2(((r2   module.c              #      K   | j                                         D ]!}|                    |          s|j        V  "d S r4   )r|   valuesis_in_moduler   )r   r   patched_callables      r1   get_callables_from_modulez)PatchedRegistry.get_callables_from_module   s[       !% 6 6 8 8 	+ 	+#0088 "*****	+ 	+r2   fnc                 6    | j                             |          S r4   )r|   getr   r   s     r1   get_callablezPatchedRegistry.get_callable   s    ""2&&&r2   c                     || j         v S r4   )r|   r   s     r1   has_callablezPatchedRegistry.has_callable   s    T_$$r2   PatchedAttributec                 :    | j                             |           d S r4   )r~   addr   s     r1   register_attributez"PatchedRegistry.register_attribute   s    W%%%%%r2   c              #   R   K   | j         D ]}|                    |          s|V  d S r4   )r~   r   r   r   	attributes      r1   get_attributes_from_modulez*PatchedRegistry.get_attributes_from_module   sH       ) 	 	I))&11 OOOO	 	r2   c                     | j                                         D ]2}|                    |          s| j                             |           3d S r4   )r~   copyr   remover   s      r1   clear_module_attributesz'PatchedRegistry.clear_module_attributes   s]    )..00 	/ 	/I))&11 ##I....	/ 	/r2   r:   N)r   r   r:   N)r   r   r:   N)rV   rt   ru   r   r   r   r   r   r   r   r   boolr   r   r   r   r/   r2   r1   rz   rz      s%       8 8 8 83 3 3 3+ +	(38$	%+ + + +'xS1 '6G ' ' ' '%xS1 %d % % % %& & & & 	$	%   /j /T / / / / / /r2   rz   c                       e Zd ZdZ	 	 	 	 ddeedef                  deedef                  deeeef                  deeeef                  ddf
d	Zd
e	de
fdZdededdfdZdededdfdZddZdS )r   )r   originalreference_injections
injectionsreference_closingclosingNr   .r   r   r   r:   c                     || _         || _        |i }|                                | _        i | _        |i }|                                | _        i | _        d S r4   )r   r   r   r   r   r   r   )r   r   r   r   r   s        r1   r   zPatchedCallable.__init__   sd      '#% 4H4M4M4O4O!*,$ "1B1G1G1I1I')r2   r   c                 >    | j         dS | j         j        |j        k    S NF)r   rt   rV   r   r   s     r1   r   zPatchedCallable.is_in_module   s!    <5|&&/99r2   kwarg	injectionc                     || j         |<   d S r4   )r   r   r   r   s      r1   add_injectionzPatchedCallable.add_injection  s    !*r2   c                     || j         |<   d S r4   )r   r   s      r1   add_closingzPatchedCallable.add_closing  s    'Ur2   c                 "    i | _         i | _        d S r4   )r   r   r   s    r1   unwind_injectionsz!PatchedCallable.unwind_injections  s    r2   )NNNNr   )rV   rt   ru   	__slots__r   r   r   r   r   r   r   r   r   r   r   r/   r2   r1   r   r      s0       I 15159=6:* *(38,-* 8CH-.* 'tCH~6	*
 $DcN3* 
* * * *(:: :$ : : : :
+3 +3 +4 + + + +( ( ( ( ( ( (     r2   r   c                   V    e Zd ZdZdededdddfdZedefd	            Zd
e	de
fdZdS )r   membernamemarkerr   r   r   _Markerr:   Nc                 0    || _         || _        || _        d S r4   r   )r   r   r   r   s       r1   r   zPatchedAttribute.__init__  s    	r2   c                 f    t          | j        t                    r| j        j        S | j        j        S r4   )r<   r   r   rV   rt   r   s    r1   module_namezPatchedAttribute.module_name  s,    dk:.. 	*;'';))r2   r   c                 "    | j         |j        k    S r4   )r   rV   r   s     r1   r   zPatchedAttribute.is_in_module   s    6?22r2   )rV   rt   ru   r   r   strr   propertyr   r   r   r   r/   r2   r1   r   r     s        Is # y T    
 *S * * * X*3: 3$ 3 3 3 3 3 3r2   r   c            	          e Zd ZdZddZ	 ddeej        ef         de	d         de	ej                 fdZ
	 dd	ede	d         de	ej                 fd
Zdej        de	ej                 fdZdej        de	ej                 fdZ	 ddej        dede	ej                 fdZdej        de	ej                 fdZedededeej        ej        f         fd            ZdS )ProvidersMapz<container>r:   Nc                 h    || _         |                     ||j        r|j        n|          | _        d S )Ncurrent_containeroriginal_container)
_container_create_providers_mapdeclarative_parent_map)r   	containers     r1   r   zProvidersMap.__init__(  sD    #..' /	,, / 
 
			r2   providermodifierModifierc                 V   t          |t          j                  r|                     |          S t          |t          j        t          j        t          j        t          j        f          r|                     |          S t          |t          j	                  r| 
                    |          S t          |t          j                  r!| 
                    |j        |j                  S t          |t                    r|                     ||          S |                     |          S )N)ra   )r<   r[   Delegate_resolve_delegateProvidedInstanceAttributeGetter
ItemGetterMethodCaller_resolve_provided_instanceConfigurationOption_resolve_config_optionTypedConfigurationOptionoptionprovidesr   _resolve_string_id_resolve_providerr   r   r   s      r1   resolve_providerzProvidersMap.resolve_provider3  s   
 h	 233 	4))(333*)$&	
 
 	4 228<<<)"?@@ 	4..x888)"DEE 	4..xHDU.VVV#&& 	4**8X>>>))(333r2   idc                     || j         k    r| j        j        S | j        }|                    d          D ]%}	 t	          ||          }# t
          $ r Y  d S w xY w|r|                    ||           }|S )N.)providers_map)CONTAINER_STRING_IDr   __self__splitgetattrAttributeErrormodify)r   r   r   r   segments        r1   r   zProvidersMap._resolve_string_idM  s    
 )))?++?xx}} 	 	G"8W55!   ttt  	ExtDDHs   A
AAr   c                    g }t          |t          j        t          j        t          j        t          j        f          rY|                    d|           |j        }t          |t          j        t          j        t          j        t          j        f          Y|                     |          }|d S |D ]}t          |t          j                  r|j	        }$t          |t          j                  rt          ||j                  }Tt          |t          j                  r||j                 }|t          |t          j                  r |j        |j        i |j        }|S )Nr   )r<   r[   r   r   r   r   insertr   r   rd   r   r   callargskwargs)r   r   	modifiersnewr   s        r1   r   z'ProvidersMap._resolve_provided_instance`  se    	*)$&	
 
 
	) Q)))(H *)$&	
 
 
	) $$X..;4! 	 	H(I$>?? 
lHi&?@@ c8=11Hi&:;; (-(Hi&<== ch]o 
 
r2   c                 L    |                      |j                  }|r|j        }|S r4   )r   r   r   )r   r   r   s      r1   r   zProvidersMap._resolve_delegate  s/     ))(*;<< 	)(Hr2   ra   c                    |                                 }|                     |          }|d S t          t          j        |          }|                                D ]D}t          j        |          r|                     |          }||         }4t          ||          }E|	                                r|
                                }|r|                    |          }|S r4   )	_get_rootr   r!   r[   Configurationget_name_segmentsis_providerr   r   is_requiredrb   ra   )r   r   ra   original_rootr   r   s         r1   r   z#ProvidersMap._resolve_config_option  s    
 !**,,$$]33;49*C001133 	, 	,G$W-- ,//88'lc7++!! 	!,,..C 	''#,,C
r2   c                 @    	 | j         |         S # t          $ r Y d S w xY wr4   )r   KeyError)r   r   s     r1   r   zProvidersMap._resolve_provider  s6    	9X&& 	 	 	44	s    
r   r   c                 p   |j         }|j        |d<   |j         }|j        |d<   i }|                                D ]|\  }}||         }|||<   t          |t           j                  rPt          |t           j                  r6|                     |j        |j                  }	|                    |	           }|S )Nr   r   )r[   r   itemsr<   rp   r   r   update)
clsr   r   current_providersoriginal_providersr   provider_namecurrent_provideroriginal_providersubcontainer_maps
             r1   r   z"ProvidersMap._create_providers_map  s     .7(9(B*%/9);)D:&/@/F/F/H/H 	7 	7+M+ 2= A/?M+,*I,?@@ 7Z!9#6F F 7 $'#<#<&6&@'8'B $= $ $  $$%5666r2   r   r4   )rV   rt   ru   r   r   r    r[   rf   r   r   r   r   r   r   r   r   r   r   r   classmethodrp   r   r   r/   r2   r1   r   r   $  s       '	
 	
 	
 	
 *.4 4	*C/04 :&4 
)$	%	4 4 4 4: *.  :& 
)$	%	   &"$" 
)$	%" " " "H$ 
)$	%     /  
)$	%	   4$ 
)$	%    $ & 
i )"44	5	   [  r2   r   c                 6    t           D ]} ||           r dS dS )NTF)r7   )rI   is_excludeds     r1   is_excluded_from_inspectr
    s4    0  ;s 	44	5r2   F)modulespackages
keep_cachewarn_unresolvedr   r  r  r  r  c                   |rg |ng }|r'|D ]$}|                     t          |                     %t          |           }|D ]%}t          |          D ]\  }}	t	          |	          rt          |	          rt          |||	||d           :t          |	          rt          |||	||d           _t          |	          rt|	}
	 t          |
          }|D ]N\  }}t          |          rt          |
||||d           *t          |          rt          |
||||d           O# t          $ r Y w xY wt                              |          D ]}t          |||d           '|st!                       dS dS )z<Wire container providers with provided packages and modules.rZ   r  warn_unresolved_stacklevelN)extend_fetch_modulesr   _get_members_and_annotatedr
  
_is_marker_patch_attributerY   	_patch_fnr   
_is_method_patch_method	Exception_patched_registryr   _bind_injectionsclear_cache)r   r  r  r  r  packager   r   member_namer   r   cls_memberscls_member_name
cls_memberr   s                  r1   r\   r\     sd    $+jjjG 4 	4 	4GNN>'223333 ++M 9 9#=f#E#E 0	 0	K'// &!! , !$3/0     #6** #!$3/0      "<S"A"AK
 8C  3%j11 , # / * -0?;<     (
33 ) # / * -0?;<   	 !   H	8 )BB6JJ 	 	G /+,	    	   s   D''
D43D4)r  r  c                 8   | rg | ng } |r'|D ]$}|                      t          |                     %| D ]}t          |          D ]a\  }}t          |          rt	          |||           &t          |          r,t          |t                    D ]\  }}t	          |||           bt                              |          D ]}t          |           t          	                    |          D ]}	t          |	           t                              |           dS )zAWire provided packages and modules with previous wired providers.N)r  r  r   rY   _unpatchr   r  r   _unbind_injectionsr   _unpatch_attributer   )
r  r  r  r   r   r   method_namemethodr   patched_attributes
             r1   r]   r]   $  s[    $+jjjG 4 	4 	4GNN>'223333 : :&v.. 	: 	:LD& (( :v.... :+5f>O+P+P : :'KV[&9999(BB6JJ 	( 	(Gw''''!2!M!Mf!U!U 	2 	20111111&9999: :r2   r   c                     t          |           \  }}|st          dt          d           | S t          | ||          }t	          t
          |          S )z+Decorate callable with injecting decorator.z@inject is not required here   
stacklevel)_fetch_reference_injectionsr"   rr   _get_patchedr!   rn   )r   r   r   r   s       r1   r^   r^   @  s\    .I".M.M++ +_KKKK	235FGGG7r2   r   r   r   r  c                     t          |          s't          |          \  }}|sd S t          |||          }t          ||||dz              t	          | ||           d S )NrZ   r  )_is_patchedr.  r/  r  setattr)r   r   r   r   r  r  r   r   s           r1   r  r  L  s     r?? G2Mb2Q2Q//# 	F"24EFF
'#=#A	    FD"r2   r   r(  c                    t          | d          rE|| j        v r<t          | j        |         t          t          f          r| j        |         }|j        }n|}t          |          s't          |          \  }}|sd S t          |||          }t          ||||dz              ||u rd S t          |t          t          f          r t          |          |          }t          | ||           d S )N__dict__rZ   r  )hasattrr4  r<   r  staticmethod__func__r1  r.  r/  r  rU   r2  )	r   r   r(  r   r  r  r   r   r   s	            r1   r  r  d  s    	Z  CL  s|D)K+FGG ! d#_r?? G2Mb2Q2Q//# 	F"24EFF
'#=#A	    
V||&;566 T&\\"Crr2   c                     t          | d          rD|| j        v r;t          | j        |         t          t          f          r| j        |         }|j        }t          |          sd S t          |           d S )Nr4  )r5  r4  r<   r  r6  r7  r1  r%  )r   r   r   r(  s       r1   r$  r$    s}     	
##FO##vt,{L.IJJ $ &_r?? rr2   r   r   r   c                    |                     |j        |j                  }|$|r t          d| d| t          |dz              d S t
                              t          | ||                     t          |t                    r |            }t          | ||           d S t          |t                    rt          | ||           d S t          d|           )NUnresolved marker  in r+  r,  zUnknown type of marker )r   r   r   r"   rx   r  r   r   r<   re   r2  rf   r  )r   r   r   r   r  r  r   instances           r1   r  r    s     --fovOOH 	9T99v99'59   
 	(()9&$)O)OPPP&'"" <8::h'''''	FH	%	% <h''''':&::;;;r2   r   c                 F    t          | j        | j        | j                   d S r4   )r2  r   r   r   )r   s    r1   r&  r&    s     GNGL'.99999r2   	parameterc                     t          | j                  t          u rt          | j                  dd          }n| j        f}|D ]0}t
          D ]} ||          x}r|} nt          |          r|c S 1d S NrZ   )r-   
annotationr+   r,   defaultr6   r  )r>  
candidatesr   marker_extractor_markers        r1   _extract_markerrF    s    )&''944i233ABB7

')
   1 	 	**6222w   f 	MMM	4r2   c                    t           r5t          | t           u t          | dd           t           u f          r| j        } 	 t	          |           }nH# t
          $ r;}dt          |          v r	i i fcY d }~S dt          |          v r	i i fcY d }~S |d }~ww xY wi }i }|j                                        D ]=\  }}t          |          }|t          |t                    r|j        }|||<   |||<   >||fS )Nr7  zno signature foundznot supported by signature)r*   anyr   r   inspect_signature
ValueErrorr   
parametersr   rF  r<   rg   r   )r   r   	exceptionr   r   parameter_namer>  r   s           r1   r.  r.    sC     	|	WRT::lJK   [%b))		   3y>>11r6MMMMMM)S^^;;r6MMMMMMO JG%.%9%?%?%A%A 
, 
,!	 ++>fg&& 	-_F&,GN#%+
>""ws/   A 
BB,B2BBBBc           	         t                               |           }|d S |j                                        D ]P\  }}|                    |j        |j                  }|(|r%t          d| d| j         t          |dz              Pt          |t                    r|                    ||           nat          |t                    rLt          |t          j                  r|                    ||           n|                    ||j                   ||j        v rj|                    ||           |                    t          j        g          D ]2}|                    t)          t+          |                    |           3Rd S )Nr:  r;  r+  r,  )types)r  r   r   r   r   r   r   r"   ru   rx   r<   re   r   rf   r[   r   r   r   traverseBaseResourcer   r   )	r   r   r  r  r   r   r   r   resources	            r1   r  r    s    )55b99-BHHJJ J J	6 11&/6?SS IIIII+9A=   
 fg&& 	M**9h????)) 	M(I$677 M ..y(CCCC ..y(:KLLL(:::((H===$--Y5K4L-MM J J ,,SH->->IIII1J Jr2   c                 j    t                               |           }|d S |                                 d S r4   )r  r   r   )r   r   s     r1   r%  r%    s9    (55b99&&(((((r2   c                     | g}t          | d          rt          | d          s|S t          | j        | j        dz             D ]+}t	          |j                  }|                    |           ,|S )N__path__rV   r   )pathprefix)r5  r   rU  rV   r   r   append)r  r  module_infor   s       r1   r  r  #  s    iG7J'' ww
/K/K $#%     {/00vNr2   c                 >    t          |           pt          |           S r4   )r   rY   r   s    r1   r  r  0  s    F80888r2   c                 ,    t          | t                    S r4   )r<   r   r[  s    r1   r  r  4  s    fg&&&r2   r   r   c                    t          | ||          }t          |           rt          | |          }n0t          |           rt	          | |          }nt          | |          }||_        t                              |           |S )N)r   r   r   )	r   r   _get_async_patchedr	   _get_async_gen_patched_get_sync_patchedr   r  r   )r   r   r   patched_objectr   s        r1   r/  r/  8  s    
 %1+  N 2 8$R88	B		 8(^<<#B77$N''777Nr2   c                 6    t                               |           S r4   )r  r   )r   s    r1   r1  r1  P  s    ))"---r2   r<  c                 x    t          | t                    o%t          | dd          du ot          | dd           d u S )N__IS_CONTAINER__FTr   )r<   rU   r   )r<  s    r1   _is_declarative_containerre  T  sJ    8T"" 	BH0%88D@	BH2D99TAr2   c                 F    	 t          | |          S # t          $ r Y dS w xY wr   )
issubclass	TypeError)r<  r   s     r1   rK   rK   \  s9    (C(((   uus    
  c                   6    e Zd Zdej        dedej        fdZdS )r   r   r   r:   c                     d S r4   r/   r   r   r   s      r1   r   zModifier.modifye  s	     !Sr2   N)rV   rt   ru   r[   r   r   rf   r   r/   r2   r1   r   r   c  sJ        !/! $! 
		! ! ! ! ! !r2   r   c                   R    e Zd ZdeddfdZdej        dedej        fdZ	de
fdZdS )	TypeModifiertype_r:   Nc                     || _         d S r4   rn  r   rn  s     r1   r   zTypeModifier.__init__n  s    


r2   r   r   c                 6    |                     | j                  S r4   )ra   rn  rk  s      r1   r   zTypeModifier.modifyq  s    
 ||DJ'''r2   c                 0    | j         j         d| j        dS N())	__class__rV   rn  r   s    r1   __repr__zTypeModifier.__repr__x  s     .);;DJ;;;;r2   )rV   rt   ru   r   r   r[   r   r   rf   r   r   rx  r/   r2   r1   rm  rm  l  s        d t    (/( $( 
		( ( ( (<# < < < < < <r2   rm  c                  *    t          t                    S )zReturn int type modifier.)rm  intr/   r2   r1   r_   r_   |  s    r2   c                  *    t          t                    S )zReturn float type modifier.)rm  floatr/   r2   r1   r`   r`     s    r2   rn  c                      t          |           S )zReturn custom type modifier.)rm  rp  s    r1   ra   ra     s    r2   c                       e Zd Zddee         ddfdZdefdZdefdZde	defdZ
d	ej        d
edej        fdZdefdZdS )RequiredModifierNtype_modifierr:   c                     || _         d S r4   )r  )r   r  s     r1   r   zRequiredModifier.__init__  s    *r2   c                 8    t          t                    | _        | S r4   )rm  rz  r  r   s    r1   r_   zRequiredModifier.as_int  s    )#..r2   c                 8    t          t                    | _        | S r4   )rm  r|  r  r   s    r1   r`   zRequiredModifier.as_float  s    )%00r2   rn  c                 .    t          |          | _        | S r4   )rm  r  rq  s     r1   ra   zRequiredModifier.as_  s    )%00r2   r   r   c                 z    |                                 }| j        r|                    | j        j                  }|S r4   )rb   r  ra   rn  rk  s      r1   r   zRequiredModifier.modify  s<    
 $$&& 	>||D$6$<==Hr2   c                 \    | j         r| j        j         d| j         dS | j        j         dS )Nru  rv  ())r  rw  rV   r   s    r1   rx  zRequiredModifier.__repr__  sA     	Hn-GG0BGGGG.)----r2   r4   )rV   rt   ru   r   rm  r   r#   r_   r`   r   ra   r[   r   r   rf   r   r   rx  r/   r2   r1   r  r    s        + +h|&< + + + + +    $     $    / $ 
		   .# . . . . . .r2   r  c                      t                      S )zReturn required modifier.)r  r/   r2   r1   rb   rb         r2   c                   R    e Zd ZdeddfdZdej        dedej        fdZ	defdZ
dS )	InvariantModifierr   r:   Nc                     || _         d S r4   r   )r   r   s     r1   r   zInvariantModifier.__init__  s    r2   r   r   c                 F    |                     | j                  }||         S r4   )r   r   )r   r   r   invariant_segments       r1   r   zInvariantModifier.modify  s&    
 *::47CC)**r2   c                 0    | j         j         d| j        dS rt  )rw  rV   r   r   s    r1   rx  zInvariantModifier.__repr__  s     .)88DG8888r2   )rV   rt   ru   r   r   r[   r   r   rf   r   rx  r/   r2   r1   r  r    s        3 4    +/+ $+ 
		+ + + +9# 9 9 9 9 9 9r2   r  r   c                      t          |           S )zReturn invariant modifier.)r  r  s    r1   rc   rc     s    R   r2   c                       e Zd ZdZdZdZddZdedefdZ	defdZ
defd	Zd
ej        dedej        fdZdefdZeZdefdZdS )r   attritemr   r:   Nc                     g | _         d S r4   )segmentsr   s    r1   r   zProvidedInstance.__init__  s    r2   c                 H    | j                             | j        |f           | S r4   )r  rX  TYPE_ATTRIBUTEr   r  s     r1   __getattr__zProvidedInstance.__getattr__  s%    d148999r2   c                 H    | j                             | j        |f           | S r4   )r  rX  	TYPE_ITEMr  s     r1   __getitem__zProvidedInstance.__getitem__  s$    dnd3444r2   c                 L    | j                             | j        ||ff           | S r4   )r  rX  	TYPE_CALL)r   r   r   s      r1   r   zProvidedInstance.call  s(    dntVn=>>>r2   r   r   c                    |j         }| j        D ]x\  }}|t          j        k    rt	          ||          }&|t          j        k    r	||         }?|t          j        k    r |j        |d         i |d         }it          |           y|S )Nr   rZ   )	rd   r  r   r  r   r  r  r   r$   )r   r   r   rn  values        r1   r   zProvidedInstance.modify  s    
 $ M 	$ 	$LE5(777"8U33*444#E?*444(8=%(?eAh??U####r2   c                 Z   g }| j         D ]\  }}|t          j        k    r|                    d|            .|t          j        k    r|                    d|d           X|t          j        k    r|                    d           ~t          |           d                    |          S )Nr   []z.call() )r  r   r  rX  r  r  r$   join)r   r  rn  r  s       r1   _format_segmentsz!ProvidedInstance._format_segments  s     M 	$ 	$LE5(777E,,,,*444E////*444	****U####wwx   r2   c                 H    | j         j         d|                                  S )Nr  )rw  rV   r  r   s    r1   rx  zProvidedInstance.__repr__  s'    .)FFT-B-B-D-DFFFr2   r   )rV   rt   ru   r  r  r  r   r   r#   r  r  r   r[   rf   r   r   r  __str__rx  r/   r2   r1   r   r     s	       NII        4    t    $ $ 
		   "!# ! ! ! ! GG# G G G G G Gr2   r   c                      t                      S )z"Return provided instance modifier.)r   r/   r2   r1   rd   rd      r  r2   c                   R    e Zd ZU eed<   defdZdedefdZde	de	fdZ
defdZdS )	r   __IS_MARKER__r:   c                     d S r4   r/   r   s    r1   __call__z_Marker.__call__        r2   r  c                     d S r4   r/   r  s     r1   r  z_Marker.__getattr__  r  r2   c                     d S r4   r/   r  s     r1   r  z_Marker.__getitem__  r  r2   c                     d S r4   r/   r   s    r1   rx  z_Marker.__repr__  r  r2   N)rV   rt   ru   r   __annotations__r#   r  r   r  r   r  rx  r/   r2   r1   r   r     sl         'd''''5C5D55554C4C4444&c&&&&&&r2   re   rf   rg   c                   z    e Zd ZdZ	 ddeej        eef         de	e
         ddfdZdedefdZdefd	Zdefd
ZdS )r   TNr   r   r:   c                 N    t          |          r|j        }|| _        || _        d S r4   )re  r   r   r   r   s      r1   r   z_Marker.__init__!  s.    
 )22 -#,$DM$DMMMr2   r  c                 L    t          |t                    r | | S  | |          S r4   )r<   tuple)r   r  s     r1   __class_getitem__z_Marker.__class_getitem__+  s.    $&& "sDz!3t99r2   c                     | S r4   r/   r   s    r1   r  z_Marker.__call__0  s    Kr2   c                 l    | j         j        }| j        r| d| j        d| j        dS | d| j        dS )Nr  z, r  )rw  rV   r   r   )r   cls_names     r1   rx  z_Marker.__repr__3  sS    ~.H} K"JJT]JJJJJJ333333r2   r4   )rV   rt   ru   r  r    r[   rf   rp   r   r   r   r   
MarkerItemr#   r  r  rx  r/   r2   r1   r   r     s        
 ,0	% 	%I.	3>?	% x(	% 		% 	% 	% 	%	 	 	 	 	 	
	d 	 	 	 		4c 	4 	4 	4 	4 	4 	4r2   c                       e Zd ZdS )re   NrV   rt   ru   r/   r2   r1   re   re   9            r2   c                       e Zd ZdS )rf   Nr  r/   r2   r1   rf   rf   ;  r  r2   c                       e Zd ZdS )rg   Nr  r/   r2   r1   rg   rg   =  r  r2   c                   ^    e Zd ZdZddZddZddZddZede	fd            Z
dd	Zdd
ZdS )
AutoLoaderz]Auto-wiring module loader.

    Automatically wire containers when modules are imported.
    r:   Nc                 "    g | _         d | _        d S r4   )
containers
_path_hookr   s    r1   r   zAutoLoader.__init__F  s    r2   c                 t    | j                             |           | j        s|                                  d S d S r4   )r  r  	installedinstall)r   r  s     r1   register_containerszAutoLoader.register_containersJ  s=    z***~ 	LLNNNNN	 	r2   c                 ~    |D ]}| j                             |           | j         s|                                  d S d S r4   )r  r   	uninstall)r   r  r   s      r1   unregister_containersz AutoLoader.unregister_containersP  sT    # 	. 	.IO""9---- 	NN	 	r2   c                 H    | j         D ]}|                    |g           d S )N)r  )r  r\   )r   r   r   s      r1   wire_modulezAutoLoader.wire_moduleW  s6     	- 	-INNF8N,,,,	- 	-r2   c                 (    | j         t          j        v S r4   )r  sys
path_hooksr   s    r1   r  zAutoLoader.installed[  s    #.00r2   c                     | j         rd S |  G fddt          j        j                  } G fddt          j        j                  } G d dt          j        j                  }|t          j        j        f|t          j        j        f|t          j        j        fg}t          j        j	        j
        | | _        t          j                            d| j                   t          j                                         t#                       d S )Nc                   "     e Zd Z fdZ xZS )0AutoLoader.install.<locals>.SourcelessFileLoaderc                 t    t                                          |                               |           d S r4   superexec_moduler  r   r   rw  loaders     r1   r  z<AutoLoader.install.<locals>.SourcelessFileLoader.exec_modulef  5    ##F+++""6*****r2   rV   rt   ru   r  __classcell__rw  r  s   @r1   SourcelessFileLoaderr  e  >        + + + + + + + + + +r2   r  c                   "     e Zd Z fdZ xZS ),AutoLoader.install.<locals>.SourceFileLoaderc                 t    t                                          |                               |           d S r4   r  r  s     r1   r  z8AutoLoader.install.<locals>.SourceFileLoader.exec_modulek  r  r2   r  r  s   @r1   SourceFileLoaderr  j  r  r2   r  c                       e Zd ZdS )/AutoLoader.install.<locals>.ExtensionFileLoaderNr  r/   r2   r1   ExtensionFileLoaderr  o  r  r2   r  r   )r  	importlib	machineryr  r  r  BYTECODE_SUFFIXESSOURCE_SUFFIXESEXTENSION_SUFFIXES
FileFinder	path_hookr  r  r  r   path_importer_cacheclearinvalidate_import_caches)r   r  r  r  loader_detailsr  s        @r1   r  zAutoLoader.install_  s9   > 	F	+ 	+ 	+ 	+ 	+ 	+ 	+9#6#K 	+ 	+ 	+
	+ 	+ 	+ 	+ 	+ 	+ 	+y2C 	+ 	+ 	+
 	POOOO)"5"IOOO "9#6#HIy2BC )"5"HI
 $-8BNSa111%%''' """""r2   c                     | j         sd S t          j                            | j                   t          j                                         t                       d S r4   )r  r  r  r   r  r  r  r  r   s    r1   r  zAutoLoader.uninstall}  sP    ~ 	Fdo...%%''' """""r2   r   )rV   rt   ru   rv   r   r  r  r  r   r   r  r  r  r/   r2   r1   r  r  @  s         
         - - - - 14 1 1 1 X1# # # #<# # # # # #r2   r  r  c                  "    t          j        |   dS )z1Register containers in auto-wiring module loader.N)_loaderr  r  s    r1   rh   rh     s    ,,,,r2   c                  "    t          j        |   dS )z5Unregister containers from auto-wiring module loader.N)r  r  r  s    r1   ri   ri     s    !:....r2   c                  8    t                                            dS )z'Install auto-wiring module loader hook.N)r  r  r/   r2   r1   rj   rj     s    OOr2   c                  8    t                                            dS )z)Uninstall auto-wiring module loader hook.N)r  r  r/   r2   r1   rk   rk     s    r2   c                      t           j        S )z5Check if auto-wiring module loader hook is installed.)r  r  r/   r2   r1   rl   rl     s    r2   )DependencyResolverc                      t                     dt          dt          dt          f fd            }t          t          |          S )Nr   
raw_kwargsr:   c                     K   t          |j        j                  }|4 d {V } | i | d {V cd d d           d {V  S # 1 d {V swxY w Y   d S r4   r  r   r   r   r  resolverr   r   r   s       r1   _patchedz$_get_async_patched.<locals>._patched  s     %j'2DgoVV 	- 	- 	- 	- 	- 	- 	-vT,V,,,,,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   A
AAr   r   r!   rn   r   r   r  s   `` r1   r^  r^    s^    
2YY-c - - - - - - - - Y- 8r2   c                      t                     dt          dt          dt          t                   f fd            }t          t          |          S )Nr   r  r:   c                    K   t          |j        j                  }|4 d {V } | i |2 3 d {V }|W V  6 	 d d d           d {V  d S # 1 d {V swxY w Y   d S r4   r   )r   r  r  r   rI   r   r   s        r1   r  z(_get_async_gen_patched.<locals>._patched  s*     %j'2DgoVV 	 	 	 	 	 	 	vR000       c					 10	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	A=A
AA)r   r   r   r!   rn   r  s   `` r1   r_  r_    sc    
2YYc  s9K       Y 8r2   c                      t                     dt          dt          dt          f fd            }t          t          |          S )Nr   r  r:   c                      t          |j        j                  }|5 } | i |cd d d            S # 1 swxY w Y   d S r4   r   r  s       r1   r  z#_get_sync_patched.<locals>._patched  s    %j'2DgoVV 	'2t&v&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   488r  r  s   `` r1   r`  r`    s^    
2YY' '3 '3 ' ' ' ' ' ' Y' 8r2   )get_annotationsc                 $    t          | di           S )Nr  )r   rM   s    r1   r
  r
    s    s-r222r2   c                 *   t          |           }t          |           }|                                D ]_\  }}t          |          t          u rDt          |          }|dd          D ]*}t          |          r|                    ||f            n+`|S r@  )r   r
  r   r-   r+   r,   r  rX  )rI   membersannotationsannotation_namerA  r   args          r1   r  r    s    ooG!#&&K'2'8'8':':  #j!!Y..J''DABBx  c?? NNOS#9:::E Nr2   c                  8    t                                            dS )z&Clear all caches used by :func:`wire`.N)r.  cache_clearr/   r2   r1   r  r    s    ++-----r2   )Fr   r   )rv   importlib.machineryr  r  
contextlibr   	functoolsr   r   r   r  inspectr   r   r	   r
   r   r   r   r   r   rI  pkgutilr   rO  r   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   warningsr"   r#   r$   ImportErrortyping_extensionsr%   r&   version_infor*   r+   r,   r-   objectr6   r  r7   r   fastapi.paramsr8   r=   r@   rX  fast_depends.dependencies.modelrA   rC   rD   fast_depends.dependenciesrF   rG   starlette.requestsrH   rL   rN   werkzeug.localrO   rQ   rR   rW   rY   r  r[   __all__rm   rn   r  rp   RuntimeWarningrr   rx   rz   r   r   r   r
  r\   r]   r^   r   rz  r  r  r$  r  r&  rF  r.  r  r%  r  r  r  r/  r1  re  rK   r   rm  r_   r`   ra   r  rb   r  rc   r   rd   rf   r  r   re   rg   r  rh   ri   rj   rk   rl   r  r  _cwiringr  r^  r_  r`  r
  r  r  r/   r2   r1   <module>r&     sT          



             R R R R R R R R
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 " ! ! ! ! !                                         $      5))))))))) 5 5 544444444445$ $ $ $######Id###EEE$ v"""""""Lv66666666666
EEEEEEEEEEE   FHH		 	 		 	 	 	 	 13 4#,- 2 2 2:C 4# 56 D D DXk : :8888883 3    
 8999: : : : : : : : : : : : : : : Xk 
I 
I     # #    
 GHHH
I 
I 
I 
I 
I 
I 
I 
I 
I 
I 
I 
I 
I 
I 
I Xk 
? 
?          
 =>>>
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? 
? Xk ? ?>>>>>>Ic Id I I I I $$%=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Xk > >??????3S 3T 3 3 3 3 $$%<===> > > > > > > > > > > > > > >= = = = = =
23 24 2 2 2 2
      ( GCLLGCxS)*** %%%%%%%IC C C C Cn C C Cd d d d do d d d&/ &/ &/ &/ &/ &/ &/ &/R, , , , , , , ,^3 3 3 3 3 3 3 30f f f f f f f fR# $     /3/3!M M MM hz*+M x
+,	M
 M M 
M M M Md /3/3: : :hz*+: x
+,: 
	: : : :8	q 	Q 	 	 	 	" "&' 
 	c  	
  !$ 
   : "&'& &	&
& S#X&  	&
 & !$& 
& & & &R
 	c 
	   0 "&'< <<
< <  	<
 < !$< 
< < < <:: 0 :T : : : :y Xi-@      "c"
4S>4S>)*" " " "P "&'	"J "Jc"J"J "J !$	"J
 
"J "J "J "JJ)8CH- )$ ) ) ) )
 
 
9$ 9 9 9 9'$ ' ' ' '	sCx. CH~ 	   0.t . . . .      $ 4    ! ! ! ! ! ! ! !< < < < <8 < < <     
,    
t     
. . . . .x . . .B"    
9 9 9 9 9 9 9 9"!# !+ ! ! ! !
6G 6G 6G 6G 6Gx 6G 6G 6Gr"    
 s	#|
O	
  / ' ' ' ' '( ' ' ' 4 4 4 4 4 4 4 48  '     7   'C# C# C# C# C# C# C# C#L-I -$ - - - -
/i /D / / / /
   
   
T    
 $O%% 
*,, ) ( ( ( ( (
1  1    	q 	? 	q 	 	 	 	! o !    3''''''' 3 3 33S 3T#s(^ 3 3 3 3 3 33
C HU38_,E    . . . . . .s   -A6 6BB
B B+*B+
C$ $C<;C<7$E''E+.E+=$F--F14F1$G33G7:G7	$H99H= H=$I??JJ$W+ +XX