a
    ܌xd1                     @   s,   d Z ddlZddlmZmZmZ dd ZdS )z
Call loop machinery
    N   )HookCallError_Result_raise_wrapfailc                    s  d}g }d}z\g }zt |D ]}z fdd|jD }	W n4 tyn   |jD ]}
|
 vrNtd|
qNY n0 |jrz |j|	 }t| || W q ty   t	|d Y q0 q|j|	 }|dur|| |r qqW n t
y   t }Y n0 W |rt|r|d nd|}n
t||}t |D ]4}z|| t	|d W n ty^   Y n0 q.| S |rt|r|d nd|}n
t||}t |D ]4}z|| t	|d W n ty   Y n0 q|      Y S 0 dS )	zExecute a call into multiple python functions/methods and return the
    result(s).

    ``caller_kwargs`` comes from _HookCaller.__call__().
    TNc                    s   g | ]} | qS  r   ).0argnamecaller_kwargsr   G/var/www/html/Ranjet/env/lib/python3.9/site-packages/pluggy/_callers.py
<listcomp>       z_multicall.<locals>.<listcomp>z hook call must provide argument zdid not yieldr   zhas second yield)reversedargnamesKeyErrorr   ZhookwrapperfunctionnextappendStopIterationr   BaseExceptionsysexc_infor   sendZ
get_result)	hook_nameZ
hook_implsr
   ZfirstresultZ__tracebackhide__resultsexcinfoZ	teardownsZ	hook_implargsr   genresoutcomer   r	   r   
_multicall	   sb    










r    )__doc__r   _resultr   r   r   r    r   r   r   r   <module>   s   