
    Ng                    $   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KrSSKJr  SSKJr  SSKJr  SSKJr  \
\	\S
\\   S
4   \4   \S
\\4   4   r      SS jr        SS jr          SS jrg
)z
Call loop machinery
    )annotations)cast)	Generator)Mapping)NoReturn)Sequence)Tuple)UnionN   )HookImpl)HookCallError)Result)PluggyTeardownRaisedWarningc                z    U R                   n[        SUR                  UR                  UR                  U4-  5      e)Nzwrap_controller at %r %s:%d %s)gi_codeRuntimeErrorco_nameco_filenameco_firstlineno)wrap_controllermsgcos      /lib/python3.13/site-packages/pluggy/_callers.py_raise_wrapfailr      s>     
	 	 B
(::r~~r'8'8#
>	?     c                    SnUSUR                    SU  S3-  nU[        U5      R                   SU S3-  nUS-  n[        R                  " [        U5      SS9  g )	NzGA plugin raised an exception during an old-style hookwrapper teardown.
zPlugin: z, Hook: 
z: zvFor more information see https://pluggy.readthedocs.io/en/stable/api_reference.html#pluggy.PluggyTeardownRaisedWarning   )
stacklevel)plugin_nametype__name__warningswarnr   )	hook_name	hook_impler   s       r   _warn_teardown_exceptionr(   +   sq     UCXi++,HYKrBBCd1gr!B''C  D  DCMM-c2qAr   c           	        Sn/ nSnSn / n [        U5       GH  n	 U	R                   V
s/ sH  oU
   PM	     nn
U	R                  (       aR  Sn U	R
                  " W6 n[        [        S[        [           S4   U5      n[        U5        UR                  X45        M  U	R                  (       aL   U	R
                  " W6 n[        [        S[        [        4   U5      n[        U5        UR                  U5        M  U	R
                  " W6 nUc  M  UR                  U5        U(       d  GM    O    U(       a  U(       a  U(       a  US   OSnOUn[        U5       HF  n Ub  UR!                  U5        OUR#                  U5        UR%                  5         [        US5        MH     Ub  UR)                  UR*                  5      eU$ U(       a  [        U(       a  US   OSU5      nO[        XV5      n[        U5       H  n[-        U[.        5      (       a&   US   R#                  U5        [        US   S5        M>   UR2                  b  UR!                  UR2                  5        OUR#                  UR4                  5        UR%                  5         [        US5        M     UR;                  5       $ s  sn
f ! [         a+    U	R                   H  n
X;  d  M
  [        SU
< 35      e    GNf = f! [         a    [        WS5         GM  f = f! [         a    [        WS5         GM  f = f! [         a  nUn SnAGNSnAff = f! [         a  nUR&                  nSn SnAGM  SnAf[         a  nUn SnAGM  SnAff = f! [         a     GM  [         a  n[1        U US   U5        e SnAff = f! [         a'  nUR7                  UR&                  5         SnAGM  SnAf[         a  nUR9                  U5         SnAGM  SnAff = f! U(       a  U(       a  U(       a  US   OSnOUn[        W5       H  n Ub  UR!                  U5        OUR#                  U5        UR%                  5         O;! [         a  nUR&                  nSn SnAMY  SnAf[         a  nUn SnAMn  SnAff = f[        US5        M     Ub  UR)                  UR*                  5      eUs  s $ U(       a  [        U(       a  US   OSU5      nO[        XV5      n[        W5       GH(  n[-        U[.        5      (       aU   US   R#                  U5        [        US   S5        M?  ! [         a     ML  [         a  n[1        U US   U5        e SnAff = f UR2                  b  UR!                  UR2                  5        OUR#                  UR4                  5        UR%                  5         OX! [         a&  nUR7                  UR&                  5         SnAM  SnAf[         a  nUR9                  U5         SnAGM  SnAff = f[        US5        GM+     UR;                  5       s  s $ = f)	zExecute a call into multiple python functions/methods and return the
result(s).

``caller_kwargs`` comes from HookCaller.__call__().
TNz hook call must provide argument Fzdid not yieldr   zhas second yieldr   )reversedargnamesKeyErrorr   hookwrapperfunctionr   r   r   objectnextappendStopIterationr   wrapperBaseExceptionthrowsendclosevaluewith_traceback__traceback__
isinstancetupler(   
_exception_resultforce_resultforce_exception
get_result)r%   
hook_implscaller_kwargsfirstresult__tracebackhide__results	exceptiononly_new_style_wrappers	teardownsr&   argnameargsreswrapper_genfunction_genexcresultteardownsir'   outcomes                        r   
_multicallrT   5   s    GI"r($&	'	%j1	BKBTBTUBTw'2BTDU ((.3+F (00$7&*9T6&>45O+PRU&V[)!((+)AB &&G (00$7'+IdFF6J,KS'Q\*!((6 $,,d3Cs+&;!I 2R #'.D  %Y/ , y1 f- NN$  *<=# 0& $..y/F/FGG 9?")GAJtY: !4 %Y/h..I ((1 (5GH!"--9$NN7+=+=>$MM'//: !( $H.@A7 0: %%''[ V #,#5#5"7"/"B7+ N#  $6  ) F'_EEF ) G'oFFG  	I	* % XXF $I$  !I0 ) ( 0HQKK ) !,,RXX6 ( !//2 !C #'.D  %Y/ , y1 f- NN$$ XXF $I$  !I  *<=# 0& $..y/F/FGG 9?")GAJtY: !4 %Y/h..I ((1 (5GH ) ( 0HQKK!"--9$NN7+=+=>$MM'//: !(( !,,RXX6 ( !//2 ! $H.@A7 0: %%''s  P L$ J0J+J0L$ AK(L$ /A	L8L$ L$ )L$ *P +L$ -P 6L>M;7AN++J00K%K%!L$ $K%%L$ (L>L$ LL$ L!L$  L!!L$ $
L;.L60P 6L;;P >
M8MM8*M33M8;
N(		N(N##N(+
P5OP$O<<P.Y36Q*)Y*
R"	4R	YR"	R	YR"	"5YAY)U=Y
U:	Y	U:	$U5	5U:	:Y>AWY
X(	W>	8Y>X(	X#	Y#X(	(&Y)r   zGGenerator[None, Result[object], None] | Generator[None, object, object]r   strreturnr   )r%   rU   r&   r   r'   r4   rV   None)
r%   rU   rB   zSequence[HookImpl]rC   zMapping[str, object]rD   boolrV   zobject | list[object])__doc__
__future__r   typingr   r   r   r   r   r	   r
   r#   _hooksr   r>   r   r   	_warningsr   r/   Teardownr   r(   rT    r   r   <module>r`      s    #          "  2
 	)D&.$.
/
9:dFF"#%
O
 
	

 
BB'B,9B	BA(A("A( (A( 	A(
 A(r   