
    u(f                    $   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      1/usr/lib/python3/dist-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% J1J,J1L% AK)L% 0A	L9L% L% *L% +P ,L% .P 6L?M<8AN,,J11K&K&"L% %K&&L% )L?L% LL% L"L% !L""L% %
L</L71P 7L<<P ?
M9	MM9+M44M9<
N)
	N)N$$N),
P6OP%O==P.Y46Q+*Y+
R#	5R		Y	R#	R	YR#	#5YAY*U>Y
U;	Y	U;	%U6	6U;	;Y?AWY
X)	W?	9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   