o
     if                     @  s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 dd
lZddlmZ ddlmZ ddlmZ ddlmZ e
e	ed
ee d
f ef ed
eef f Zd)ddZd*ddZd+d'd(Zd
S ),z
Call loop machinery
    )annotations)cast)	Generator)Mapping)NoReturn)Sequence)Tuple)UnionN   )HookImpl)HookCallError)Result)PluggyTeardownRaisedWarningwrap_controllerGGenerator[None, Result[object], None] | Generator[None, object, object]msgstrreturnr   c                 C  s    | j }td|j|j|j|f )Nzwrap_controller at %r %s:%d %s)gi_codeRuntimeErrorco_nameco_filenameco_firstlineno)r   r   co r   H/var/www/html/corbot_env/lib/python3.10/site-packages/pluggy/_callers.py_raise_wrapfail   s   r   	hook_name	hook_implr   eBaseExceptionNonec                 C  sT   d}|d|j  d|  d7 }|t|j d| d7 }|d7 }tjt|dd d S )	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   )r   r   r   r   r   r   r   _warn_teardown_exception+   s
   r*   
hook_implsSequence[HookImpl]caller_kwargsMapping[str, object]firstresultboolobject | list[object]c                   s   d}g }d}d}zg }zt |D ]}	z fdd|	jD }
W n ty9   |	jD ]}| vr6td|q)Y nw |	jrld}z|	j|
 }ttdtt	 df |}t
| |||	f W q tyk   t|d Y qw |	jrz|	j|
 }ttdt	t	f |}t
| || W q ty   t|d Y qw |	j|
 }|dur|| |r nqW n ty } z|}W Y d}~nd}~ww W |r-|r|r|d nd}n|}t |D ]I}z|dur|| n|| |  W n, ty } z|j}d}W Y d}~qd}~w ty } z|}W Y d}~qd}~ww t|d	 q|dur+||j|S |r=t|r8|d nd|}nt||}t |D ]}t|trz	|d | W n  tyb   Y qF tyw } z	t| |d
 |  d}~ww t|d d	 qFz|jdur||j n||j |  W n2 ty } z||j W Y d}~qFd}~w ty } z|| W Y d}~qFd}~ww t|d	 qF| S |rO|r|r|d nd}n|}t |D ]M}z|dur|| n|| |  W n. ty } z|j}d}W Y d}~qd}~w ty4 } z	|}W Y d}~qd}~ww t|d	 q|durG||j|     Y S |r_t|rZ|d nd|}nt||}t |D ]}t|trz	|d | W n  ty   Y qh ty } z	t| |d
 |  d}~ww t|d d	 qhz|jdur||j n||j |  W n2 ty } z||j W Y d}~qhd}~w ty } z|| W Y d}~qhd}~ww t|d	 qh|      Y 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   r   ).0argnamer-   r   r   
<listcomp>I   s    z_multicall.<locals>.<listcomp>z hook call must provide argument Fzdid not yieldr   zhas second yieldr
   )reversedargnamesKeyErrorr   hookwrapperfunctionr   r   r   objectnextappendStopIterationr   wrapperr    throwsendclosevaluewith_traceback__traceback__
isinstancetupler*   
_exception_resultforce_resultforce_exception
get_result)r   r+   r-   r/   __tracebackhide__results	exceptiononly_new_style_wrappers	teardownsr   argsr3   reswrapper_genfunction_genexcresultteardownsir   outcomer   r4   r   
_multicall5   sF  













r[   )r   r   r   r   r   r   )r   r   r   r   r   r    r   r!   )
r   r   r+   r,   r-   r.   r/   r0   r   r1   )__doc__
__future__r   typingr   r   r   r   r   r   r	   r(   _hooksr   rI   r   r   	_warningsr   r;   Teardownr   r*   r[   r   r   r   r   <module>   s,    


