
    0jV                     $   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"d#lQmRZR d$ZS e(d%          ZT e(d&ed'ef         (          ZUerd"d)lVmWZW neZW G d* d+eX          ZY G d, d-eY          ZZ G d. d/          Z[ G d0 d1          Z\ G d2 d3          Z] G d4 d5          Z^dede<fd6Z_ddd7d7d8d9eWd:e#e e                  d;e#e e                  d<e<d=e<ddfd>Z`ddd?d:e#e e                  d;e#e e                  ddfd@ZadAeUdeUfdBZb	 	 ddCedDecdAed'ef         dEe^d=e<dFedddfdGZe	 	 ddHe'dDecdIed'ef         dEe^d=e<dFedddfdJZfdCedDecdAed'ef         ddfdKZg	 	 ddLedDecdMdNdEe^d=e<dFedddfdOZhdPe]ddfdQZidRede#dN         fdSZje1dAed'ef         de&eecef         eecef         f         fdT            Zk	 	 ddAed'ef         dEe^d=e<dFedddf
dUZldAed'ef         ddfdVZmdW Znde<fdXZode<fdYZpdAeUdZeeef         d[eeef         deUfd\Zqde<fd]Zrd^ede<fd_Zsd^edHe'de<fd`Zt G da db          Zu G dc ddeu          ZvdevfdeZwdevfdfZxdge'devfdhZy G di djeu          ZzdezfdkZ{ G dl dmeu          Z|dnecde|fdoZ} G dp dqeu          Z~de~fdrZe)eceRj        e         e&ecevf         e'eW         dNf         Zer G ds dNe$          Zee:dt<   ee:du<   ee:dv<   n7 G dw dN          Z G dx dte          Z G dy due          Z G dz dve          Z G d{ d|          Zd}eWddfd~Zd}eWddfdZddZddZde<fdZ e[            Z e            Zd"dlmZ dAeUdPe\deUfdZdAeUdPe\deUfdZdAeUdPe\deUfdZ	 ddlmZ n# e/$ r dedeecef         fdZY nw xY wdede e&ece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    b/home/rurouni/.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      )	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__name__
__module____qualname____doc__r/   r2   r1   rk   rk      s        BBBBr2   rk   c                       e Zd ZdZdS )UnresolvedMarkerWarningzYWarning raised when a marker with string identifier cannot be resolved against container.Nrl   r/   r2   r1   rr   rr      s        ccccr2   rr   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   )rv   r|   rz   r|   s     r1   register_callablez!PatchedRegistry.register_callable   s    +2(((r2   module.c              #      K   | j                                         D ]!}|                    |          s|j        V  "d S r4   )rv   valuesis_in_moduler|   )rz   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   )rv   getrz   r   s     r1   get_callablezPatchedRegistry.get_callable   s    ""2&&&r2   c                     || j         v S r4   )rv   r   s     r1   has_callablezPatchedRegistry.has_callable   s    T_$$r2   PatchedAttributec                 :    | j                             |           d S r4   )rx   addr   s     r1   register_attributez"PatchedRegistry.register_attribute   s    W%%%%%r2   c              #   R   K   | j         D ]}|                    |          s|V  d S r4   )rx   r   rz   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   )rx   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)rm   rn   ro   r{   r   r   r   r   r   r   r   boolr   r   r   r   r/   r2   r1   rt   rt      s%       8 8 8 83 3 3 3+ +	(38$	%+ + + +'xS1 '6G ' ' ' '%xS1 %d % % % %& & & & 	$	%   /j /T / / / / / /r2   rt   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   )rz   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|   rn   rm   rz   r   s     r1   r   zPatchedCallable.is_in_module   s!    <5|&&/99r2   kwarg	injectionc                     || j         |<   d S r4   )r   rz   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   ry   s    r1   unwind_injectionsz!PatchedCallable.unwind_injections   s    r2   )NNNNr   )rm   rn   ro   	__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   )rz   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   rm   rn   ry   s    r1   module_namezPatchedAttribute.module_name  s,    dk:.. 	*;'';))r2   r   c                 "    | j         |j        k    S r4   )r   rm   r   s     r1   r   zPatchedAttribute.is_in_module  s    6?22r2   )rm   rn   ro   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)rz   	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)rZ   )r<   rT   Delegate_resolve_delegateProvidedInstanceAttributeGetter
ItemGetterMethodCaller_resolve_provided_instanceConfigurationOption_resolve_config_optionTypedConfigurationOptionoptionprovidesr   _resolve_string_id_resolve_providerrz   r   r   s      r1   resolve_providerzProvidersMap.resolve_provider(  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)rz   r   r   r   segments        r1   r   zProvidersMap._resolve_string_idB  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<   rT   r   r   r   r   insertr   r   r]   r   r   callargskwargs)rz   r   	modifiersnewr   s        r1   r   z'ProvidersMap._resolve_provided_instanceU  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   )rz   r   r   s      r1   r   zProvidersMap._resolve_delegatey  s/     ))(*;<< 	)(Hr2   rZ   c                    |                                 }|                     |          }|d S t          t          j        |          }|                                D ]D}t          j        |          r|                     |          }||         }4t          ||          }E|	                                r|
                                }|r|                    |          }|S r4   )	_get_rootr   r!   rT   Configurationget_name_segmentsis_providerr   r   is_requiredr[   rZ   )rz   r   rZ   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)rz   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   )rT   r   itemsr<   ri   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   )rm   rn   ro   r   r{   r    rT   r_   r   r   r   r   r   r   r   r   r   r   r   classmethodri   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.rS   r  warn_unresolved_stacklevelN)extend_fetch_modulesr   _get_members_and_annotatedr  
_is_marker_patch_attributer   	_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   rU   rU     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     F## #!$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   r   _unpatchr   r  r   _unbind_injectionsr   _unpatch_attributer   )
r  r  r  r   r   r   method_namemethodr|   patched_attributes
             r1   rV   rV     sZ    $+jjjG 4 	4 	4GNN>'223333 : :&v.. 	: 	:LD&&!! :v.... :+5fj+I+I : :'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"   rk   _get_patchedr!   rg   )r   r   r   r|   s       r1   rW   rW   5  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 )NrS   r
  )_is_patchedr(  r)  r  setattr)r   r   r   r   r  r  r   r   s           r1   r  r  A  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__rS   r
  )hasattrr.  r<   r  staticmethod__func__r+  r(  r)  r  typer,  )	r   r   r"  r   r  r  r   r   r   s	            r1   r  r  Y  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 )Nr.  )r/  r.  r<   r  r0  r1  r+  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"   rr   r  r   r   r<   r^   r,  r_   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   )r,  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 NrS   )r-   
annotationr+   r,   defaultr6   r  )r9  
candidatesr   marker_extractor_markers        r1   _extract_markerrA    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 )Nr1  zno signature foundznot supported by signature)r*   anyr   r{   inspect_signature
ValueErrorr   
parametersr   rA  r<   r`   r   )r   r   	exceptionr   r   parameter_namer9  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 )Nr5  r6  r%  r&  )types)r  r   r   r   r   r   r   r"   ro   rr   r<   r^   r   r_   rT   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__rm   r   )pathprefix)r/  r   rP  rm   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   r   r   s    r1   r  r  %  s    F1z&111r2   c                 ,    t          | t                    S r4   )r<   r   rV  s    r1   r  r  )  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)  -  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   r+  r+  E  s    ))"---r2   r7  c                 x    t          | t                    o%t          | dd          du ot          | dd           d u S )N__IS_CONTAINER__FTr   )r<   r2  r   )r7  s    r1   _is_declarative_containerr`  I  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)r7  r   s     r1   rK   rK   Q  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/   rz   r   r   s      r1   r   zModifier.modifyZ  s	     !Sr2   N)rm   rn   ro   rT   r   r   r_   r   r/   r2   r1   r   r   X  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   ri  rz   ri  s     r1   r{   zTypeModifier.__init__c  s    


r2   r   r   c                 6    |                     | j                  S r4   )rZ   ri  rf  s      r1   r   zTypeModifier.modifyf  s    
 ||DJ'''r2   c                 0    | j         j         d| j        dS N())	__class__rm   ri  ry   s    r1   __repr__zTypeModifier.__repr__m  s     .);;DJ;;;;r2   )rm   rn   ro   r   r{   rT   r   r   r_   r   r   rs  r/   r2   r1   rh  rh  a  s        d t    (/( $( 
		( ( ( (<# < < < < < <r2   rh  c                  *    t          t                    S )zReturn int type modifier.)rh  intr/   r2   r1   rX   rX   q  s    r2   c                  *    t          t                    S )zReturn float type modifier.)rh  floatr/   r2   r1   rY   rY   v  s    r2   ri  c                      t          |           S )zReturn custom type modifier.)rh  rk  s    r1   rZ   rZ   {  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{  )rz   r{  s     r1   r{   zRequiredModifier.__init__  s    *r2   c                 8    t          t                    | _        | S r4   )rh  ru  r{  ry   s    r1   rX   zRequiredModifier.as_int  s    )#..r2   c                 8    t          t                    | _        | S r4   )rh  rw  r{  ry   s    r1   rY   zRequiredModifier.as_float  s    )%00r2   ri  c                 .    t          |          | _        | S r4   )rh  r{  rl  s     r1   rZ   zRequiredModifier.as_  s    )%00r2   r   r   c                 z    |                                 }| j        r|                    | j        j                  }|S r4   )r[   r{  rZ   ri  rf  s      r1   r   zRequiredModifier.modify  s<    
 $$&& 	>||D$6$<==Hr2   c                 \    | j         r| j        j         d| j         dS | j        j         dS )Nrp  rq  ())r{  rr  rm   ry   s    r1   rs  zRequiredModifier.__repr__  sA     	Hn-GG0BGGGG.)----r2   r4   )rm   rn   ro   r   rh  r{   r#   rX   rY   r   rZ   rT   r   r   r_   r   r   rs  r/   r2   r1   rz  rz    s        + +h|&< + + + + +    $     $    / $ 
		   .# . . . . . .r2   rz  c                      t                      S )zReturn required modifier.)rz  r/   r2   r1   r[   r[         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   )rz   r   s     r1   r{   zInvariantModifier.__init__  s    r2   r   r   c                 F    |                     | j                  }||         S r4   )r   r   )rz   r   r   invariant_segments       r1   r   zInvariantModifier.modify  s&    
 *::47CC)**r2   c                 0    | j         j         d| j        dS ro  )rr  rm   r   ry   s    r1   rs  zInvariantModifier.__repr__  s     .)88DG8888r2   )rm   rn   ro   r   r{   rT   r   r   r_   r   rs  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   r\   r\     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   )segmentsry   s    r1   r{   zProvidedInstance.__init__  s    r2   c                 H    | j                             | j        |f           | S r4   )r  rS  TYPE_ATTRIBUTErz   r  s     r1   __getattr__zProvidedInstance.__getattr__  s%    d148999r2   c                 H    | j                             | j        |f           | S r4   )r  rS  	TYPE_ITEMr  s     r1   __getitem__zProvidedInstance.__getitem__  s$    dnd3444r2   c                 L    | j                             | j        ||ff           | S r4   )r  rS  	TYPE_CALL)rz   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   rS   )	r]   r  r   r  r   r  r  r   r$   )rz   r   r   ri  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  rS  r  r  r$   join)rz   r  ri  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  )rr  rm   r  ry   s    r1   rs  zProvidedInstance.__repr__  s'    .)FFT-B-B-D-DFFFr2   r   )rm   rn   ro   r  r  r  r{   r   r#   r  r  r   rT   r_   r   r   r  __str__rs  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   r]   r]     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/   ry   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/   ry   s    r1   rs  z_Marker.__repr__  r  r2   N)rm   rn   ro   r   __annotations__r#   r  r   r  r   r  rs  r/   r2   r1   r   r     sl         'd''''5C5D55554C4C4444&c&&&&&&r2   r^   r_   r`   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   )r`  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/   ry   s    r1   r  z_Marker.__call__%  s    Kr2   c                 l    | j         j        }| j        r| d| j        d| j        dS | d| j        dS )Nr  z, r  )rr  rm   r   r   )rz   cls_names     r1   rs  z_Marker.__repr__(  sS    ~.H} K"JJT]JJJJJJ333333r2   r4   )rm   rn   ro   r  r    rT   r_   ri   r   r   r   r{   
MarkerItemr#   r  r  rs  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 )r^   Nrm   rn   ro   r/   r2   r1   r^   r^   .            r2   c                       e Zd ZdS )r_   Nr  r/   r2   r1   r_   r_   0  r  r2   c                       e Zd ZdS )r`   Nr  r/   r2   r1   r`   r`   2  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_hookry   s    r1   r{   zAutoLoader.__init__;  s    r2   c                 t    | j                             |           | j        s|                                  d S d S r4   )r  r  	installedinstall)rz   r  s     r1   register_containerszAutoLoader.register_containers?  s=    z***~ 	LLNNNNN	 	r2   c                 ~    |D ]}| j                             |           | j         s|                                  d S d S r4   )r  r   	uninstall)rz   r  r   s      r1   unregister_containersz AutoLoader.unregister_containersE  sT    # 	. 	.IO""9---- 	NN	 	r2   c                 H    | j         D ]}|                    |g           d S )N)r  )r  rU   )rz   r   r   s      r1   wire_modulezAutoLoader.wire_moduleL  s6     	- 	-INNF8N,,,,	- 	-r2   c                 (    | j         t          j        v S r4   )r  sys
path_hooksry   s    r1   r  zAutoLoader.installedP  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  rz   r   rr  loaders     r1   r  z<AutoLoader.install.<locals>.SourcelessFileLoader.exec_module[  5    ##F+++""6*****r2   rm   rn   ro   r  __classcell__rr  r  s   @r1   SourcelessFileLoaderr  Z  >        + + + + + + + + + +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_module`  r  r2   r  r  s   @r1   SourceFileLoaderr  _  r  r2   r  c                       e Zd ZdS )/AutoLoader.install.<locals>.ExtensionFileLoaderNr  r/   r2   r1   ExtensionFileLoaderr  d  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)rz   r  r  r  loader_detailsr  s        @r1   r  zAutoLoader.installT  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  ry   s    r1   r  zAutoLoader.uninstallr  sP    ~ 	Fdo...%%''' """""r2   r   )rm   rn   ro   rp   r{   r  r  r  r   r   r  r  r  r/   r2   r1   r  r  5  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   ra   ra   {  s    ,,,,r2   c                  "    t          j        |   dS )z5Unregister containers from auto-wiring module loader.N)r  r  r  s    r1   rb   rb     s    !:....r2   c                  8    t                                            dS )z'Install auto-wiring module loader hook.N)r  r  r/   r2   r1   rc   rc     s    OOr2   c                  8    t                                            dS )z)Uninstall auto-wiring module loader hook.N)r  r  r/   r2   r1   rd   rd     s    r2   c                      t           j        S )z5Check if auto-wiring module loader hook is installed.)r  r  r/   r2   r1   re   re     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!   rg   r   r|   r  s   `` r1   rY  rY    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!   rg   r   s   `` r1   rZ  rZ    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  rS  )rI   membersannotationsannotation_namer<  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   )rp   importlib.machineryr  r  
contextlibr   	functoolsr   r   r   r  inspectr   r   r	   r
   r   r   r   r   r   rD  pkgutilr   rJ  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@   rS  fast_depends.dependencies.modelrA   rC   rD   fast_depends.dependenciesrF   rG   starlette.requestsrH   rL   rN   werkzeug.localrO   rQ   rR   r  rT   __all__rf   rg   r  ri   RuntimeWarningrk   rr   rt   r}   r   r   r  rU   rV   rW   r   ru  r  r  r  r  r   rA  r(  r  r  r  r  r  r)  r+  r`  rK   r   rh  rX   rY   rZ   rz  r[   r  r\   r   r]   r_   r  r   r^   r`   r  ra   rb   rc   rd   re   r  r  _cwiringr  rY  rZ  r[  r  r  r  r/   r2   r1   <module>r!     s          



             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 $$%<===> > > > > > > > > > > > > > >      ( 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- )$ ) ) ) )
 
 
2$ 2 2 2 2'$ ' ' ' '	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 W32W3