Ë
    ×Bæj’-  ã                  ó˜  — U 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	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 ddlmZ ddlmZ eeee   eeef   egeee   z  f   Zded<   e G d„ d«      «       ZeZ ee!eeef   ee
gdf   dz  f      Z"ded<    G d„ d«      Z#e#Z$ G d„ de#«      Z%y)z
Hook callers and relay.
é    )Úannotations)ÚCallable)ÚMapping)ÚSequence)ÚSet)ÚAny)ÚFinal)Úfinal)ÚTYPE_CHECKING)Ú	TypeAliasNé   )ÚHookimplOpts)ÚHookspecOpts)Ú
_Namespace)ÚHookSpec)Ú_Plugin)ÚHookImplr   Ú	_HookExecc                  ó*   — e Zd ZdZdZdd„Zerdd„Zyy)Ú	HookRelayzaHook holder object for performing 1:N hook calls where N is the number
    of registered plugins.)Ú__dict__c                 ó   — y©z:meta private:N© ©Úselfs    úQ/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/pluggy/_caller.pyÚ__init__zHookRelay.__init__'   ó   � ó    c                 ó   — y ©Nr   )r   Únames     r   Ú__getattr__zHookRelay.__getattr__,   r   r    N)ÚreturnÚNone)r#   Ústrr%   Ú
HookCaller)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r$   r   r    r   r   r       s    „ ñð €Ióñ ä;ð r    r   Ú_CallHistoryc                  óÄ   — e Zd ZdZdZ	 	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zdd„Zdd„Z	 	 d	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Zy) r(   zCA caller of all registered implementations of a hook specification.)Ú_call_historyÚ	_hookexecÚ
_hookimplsr#   ÚspecNc                ó|   — || _         || _        g | _        d| _        d| _        |�|€J ‚| j                  ||«       yyr   )r#   r1   r2   r0   r3   Úset_specification)r   r#   Úhook_executeÚspecmodule_or_classÚ	spec_optss        r   r   zHookCaller.__init__C   sR   € ð  ˆŒ	Ø ,ˆŒð 24ˆŒØ26ˆÔà%)ˆŒ	ØÐ*ØÐ(Ð(Ð(Ø×"Ñ"Ð#6¸	ÕBð +r    c                ó   — | j                   d uS r"   )r3   r   s    r   Úhas_speczHookCaller.has_spec^   s   € Ø�y‰y Ð$Ð$r    c                óø   — | j                   �9t        d| j                   j                  ›d| j                   j                  › �«      ‚t	        || j                  |«      | _         |j                  d«      rg | _        y y )NzHook z( is already registered within namespace Úhistoric)r3   Ú
ValueErrorr#   Ú	namespacer   Úgetr0   )r   r7   r8   s      r   r5   zHookCaller.set_specificationb   su   € ð
 �9‰9Ð ÜØ˜Ÿ	™	Ÿ™Ð)ð *$Ø$(§I¡I×$7Ñ$7Ð#8ð:óð ô Ð0°$·)±)¸YÓGˆŒ	Ø�=‰=˜Ô$Ø!#ˆDÕð %r    c                ó   — | j                   duS )z2Whether this caller is :ref:`historic <historic>`.N)r0   r   s    r   Úis_historiczHookCaller.is_historicp   s   € à×!Ñ!¨Ð-Ð-r    c                óÞ   — | j                   D �cg c]  }|j                  |k7  sŒ|‘Œ }}t        |«      t        | j                   «      k(  rt        d|›d�«      ‚|| j                   dd yc c}w )z?Remove all hook implementations registered by the given plugin.zplugin z
 not foundN)r2   ÚpluginÚlenr=   )r   rC   ÚimplÚ	remainings       r   Ú_remove_pluginzHookCaller._remove_plugint   sa   € à&*§o¡oÖO˜d¸¿¹ÈÓ9N’TÐOˆ	ÐOÜˆy‹>œS §¡Ó1Ò1Ü˜w v j°
Ð;Ó<Ð<Ø&ˆ�‰™Ñùò Ps
   �A*¤A*c                ó6   — | j                   j                  «       S )z6Get all registered hook implementations for this hook.)r2   Úcopyr   s    r   Úget_hookimplszHookCaller.get_hookimpls{   s   € à�‰×#Ñ#Ó%Ð%r    c                óx  — t        | j                  «      D ]!  \  }}|j                  s|j                  sŒ|} n t	        | j                  «      }|j                  s|j                  r|t	        | j                  «      }}nd|}}|j
                  r| j                  j                  ||«       y|j                  r| j                  j                  ||«       y|dz
  }||k\  r=| j                  |   j                  r$|dz  }||k\  r| j                  |   j                  rŒ$| j                  j                  |dz   |«       y)z,Add an implementation to the callback chain.r   r   N)Ú	enumerater2   ÚhookwrapperÚwrapperrD   ÚtrylastÚinsertÚtryfirst)r   ÚhookimplÚiÚmethodÚ
splitpointÚstartÚends          r   Ú_add_hookimplzHookCaller._add_hookimpl   s	  € ä" 4§?¡?Ó3ò 	.‰IˆAˆvØ×!Ò! V§^£^Ø�
Ùð	.ô
 ˜TŸ_™_Ó-ˆJØ×Ò 8×#3Ò#3Ø#¤S¨¯©Ó%9�3‰Eà˜J�3ˆEà×ÒØ�O‰O×"Ñ" 5¨(Õ3Ø×ÒØ�O‰O×"Ñ" 3¨Õ1ð �a‘ˆAØ�u’* §¡°Ñ!3×!<Ò!<Ø�Q‘�ð �u’* §¡°Ñ!3×!<Ó!<à�O‰O×"Ñ" 1 q¡5¨(Õ3r    c                ó"   — d| j                   ›d�S )Nz<HookCaller ú>©r#   r   s    r   Ú__repr__zHookCaller.__repr__—   s   € Ø˜dŸi™i˜]¨!Ð,Ð,r    c                ó~   — | j                   �| j                   j                  s|S i | j                   j                  ¥|¥S r"   )r3   Úkwargdefaults)r   Úkwargss     r   Ú_apply_defaultszHookCaller._apply_defaultsš   s7   € Ø�9‰9Ð D§I¡I×$;Ò$;ØˆMØ4�$—)‘)×)Ñ)Ð4¨VÐ4Ð4r    c                óô   ‡— | j                   rk| j                   j                  D ]Q  }|‰vsŒdj                  ˆfd„| j                   j                  D «       «      }t        j                  d|› d�d¬«        y  y y )Nz, c              3  ó<   •K  — | ]  }|‰vrt        |«      –— Œ y ­wr"   )Úrepr)Ú.0Úargnamer_   s     €r   ú	<genexpr>z;HookCaller._verify_all_args_are_provided.<locals>.<genexpr>¤   s'   øè ø€ ò *à#ð #¨&Ñ0ô	 ˜WŸñ*ùs   ƒzArgument(s) zE which are declared in the hookspec cannot be found in this hook callé   )Ú
stacklevel)r3   ÚargnamesÚjoinÚwarningsÚwarn)r   r_   re   Ú	notincalls    `  r   Ú_verify_all_args_are_providedz(HookCaller._verify_all_args_are_providedŸ   s~   ø€ à�9Š9ØŸ9™9×-Ñ-ò �Ø &Ò(Ø $§	¡	ó *à'+§y¡y×'9Ñ'9ô*ó !�Iô —M‘MØ& y kð 2<ð <ð
 $%õñ ñ#ð r    c                óH  — | j                  «       rJ d«       ‚| j                  |«      }| j                  |«       | j                  r&| j                  j                  j                  dd«      nd}| j                  | j                  | j                  j                  «       ||«      S )zÑCall the hook.

        Only accepts keyword arguments, which should match the hook
        specification.

        Returns the result(s) of calling all registered plugins, see
        :ref:`calling`.
        úACannot directly call a historic hook - use call_historic instead.ÚfirstresultF)
rA   r`   rn   r3   Úoptsr?   r1   r#   r2   rI   )r   r_   Úcall_kwargsrq   s       r   Ú__call__zHookCaller.__call__µ   sŽ   € ð ×#Ñ#Ô%ð 	
ØOó	
Ð%ð ×*Ñ*¨6Ó2ˆØ×*Ñ*¨;Ô7ØBFÇ)Â)�d—i‘i—n‘n×(Ñ(¨¸Ô>ÐQVˆà�~‰~Ø�I‰I�t—‘×+Ñ+Ó-¨{¸Kó
ð 	
r    c                ó\  — | j                   €J ‚|xs i }| j                  |«      }| j                  |«       | j                   j                  ||f«       | j	                  | j
                  | j                  j                  «       |d«      }|€yt        |t        «      r|D ]
  } ||«       Œ yy)a<  Call the hook with given ``kwargs`` for all registered plugins and
        for all plugins which will be registered afterwards, see
        :ref:`historic`.

        :param result_callback:
            If provided, will be called for each non-``None`` result obtained
            from a hook implementation.
        NF)
r0   r`   rn   Úappendr1   r#   r2   rI   Ú
isinstanceÚlist)r   Úresult_callbackr_   ÚresÚxs        r   Úcall_historiczHookCaller.call_historicÉ   s¬   € ð ×!Ñ!Ð-Ð-Ð-Ø’˜2ˆØ×%Ñ% fÓ-ˆØ×*Ñ*¨6Ô2Ø×Ñ×!Ñ! 6¨?Ð";Ô<ð �n‰n˜TŸY™Y¨¯©×(<Ñ(<Ó(>ÀÈÓNˆØÐ"ØÜ�cœ4Ô Øò #�Ù Õ"ñ#ð !r    c                ó¦  — | j                  «       rJ d«       ‚| j                  |«      }| j                  |«       dddddddœ}| j                  j	                  «       }|D ]Ÿ  }t        dd||«      }t        |«      dz
  }|dk\  rg||   j                  s||   j                  s||   j                  r:|dz  }|dk\  r0||   j                  rŒ||   j                  rŒ*||   j                  rŒ:|j                  |dz   |«       Œ¡ | j                  r&| j                  j                  j                  dd«      nd}| j                  | j                  |||«      S )	zžCall the hook with some additional temporarily participating
        methods using the specified ``kwargs`` as call parameters, see
        :ref:`call_extra`.rp   FN)rN   rM   ÚoptionalhookrO   rQ   Úspecnamez<temp>r   r   rq   )rA   r`   rn   r2   rI   r   rD   rM   rN   rQ   rP   r3   rr   r?   r1   r#   )	r   Úmethodsr_   rr   Ú	hookimplsrT   rR   rS   rq   s	            r   Ú
call_extrazHookCaller.call_extraå   sU  € ð ×#Ñ#Ô%ð 	
ØOó	
Ð%ð ×%Ñ% fÓ-ˆØ×*Ñ*¨6Ô2àØ Ø!ØØØñ
ˆð —O‘O×(Ñ(Ó*ˆ	Øò 	.ˆFÜ  h°¸Ó=ˆHä�I“ Ñ"ˆAØ�q’&à˜1‘×)Ò)¨Y°q©\×-AÒ-Aà˜Q‘<×(Ò(à�Q‘�ð �q’&à˜1‘×)Ó)¨Y°q©\×-AÓ-Aà˜Q‘<×(Ó(ð ×Ñ˜Q ™U HÕ-ð	.ð CGÇ)Â)�d—i‘i—n‘n×(Ñ(¨¸Ô>ÐQVˆØ�~‰~˜dŸi™i¨°F¸KÓHÐHr    c                óî   — | j                  «       re| j                  €J ‚| j                  D ]G  \  }}| j                  | j                  |g|d«      }|sŒ(|€Œ+t	        |t
        «      sJ ‚ ||d   «       ŒI yy)zAApply call history to a new hookimpl if it is marked as historic.NFr   )rA   r0   r1   r#   rw   rx   )r   rT   r_   ry   rz   s        r   Ú_maybe_apply_historyzHookCaller._maybe_apply_history  s}   € à×ÑÔØ×%Ñ%Ð1Ð1Ð1Ø+/×+=Ñ+=ò ,Ñ'�˜Ø—n‘n T§Y¡Y°°¸&À%ÓH�Ú˜?Ñ6ä% c¬4Ô0Ð0Ð0Ù# C¨¡FÕ+ñ,ð r    )NN)
r#   r'   r6   r   r7   z_Namespace | Noner8   zHookspecOpts | Noner%   r&   )r%   Úbool)r7   r   r8   r   r%   r&   )rC   r   r%   r&   ©r%   zlist[HookImpl])rR   r   r%   r&   ©r%   r'   )r_   úMapping[str, object]r%   rˆ   )r_   rˆ   r%   r&   )r_   Úobjectr%   r   )ry   zCallable[[Any], None] | Noner_   zMapping[str, object] | Noner%   r&   )r€   zSequence[Callable[..., object]]r_   rˆ   r%   r   )rT   r   r%   r&   )r)   r*   r+   r,   r-   r   r:   r5   rA   rG   rJ   rX   r\   r`   rn   rt   r|   r‚   r„   r   r    r   r(   r(   8   sí   „ ÙMð€Ið 26Ø)-ðCàðCð  ðCð /ð	Cð
 'ðCð 
óCó6%ð$à'ð$ð  ð$ð 
ó	$ó.ó'ó&ó4ó0-ó5ó
ó,
ð, 9=Ø.2ð#à5ð#ð ,ð#ð 
ó	#ð8!IØ6ð!IØ@Tð!Ià	ó!IôF	,r    r(   c                  óZ   — e Zd ZdZdZd	d„Zed
d„«       Zedd„«       Zedd„«       Z	dd„Z
y)Ú_SubsetHookCallerztA proxy to another HookCaller which manages calls to all registered
    plugins except the ones from remove_plugins.)Ú_origÚ_remove_pluginsc                ód   — || _         || _        |j                  | _        |j                  | _        y r"   )rŒ   r�   r#   r1   )r   ÚorigÚremove_pluginss      r   r   z_SubsetHookCaller.__init__+  s'   € ØˆŒ
Ø-ˆÔØ—I‘IˆŒ	ØŸ™ˆ�r    c                ó„   — | j                   j                  D �cg c]  }|j                  | j                  vr|‘Œ c}S c c}w r"   )rŒ   r2   rC   r�   )r   rE   s     r   r2   z_SubsetHookCaller._hookimpls1  s@   € ð Ÿ
™
×-Ñ-ö
àØ�{‰{ $×"6Ñ"6Ñ6ò ò
ð 	
ùò 
s   ™!=c                ó.   — | j                   j                  S r"   )rŒ   r3   r   s    r   r3   z_SubsetHookCaller.spec9  s   € à�z‰z�‰Ðr    c                ó.   — | j                   j                  S r"   )rŒ   r0   r   s    r   r0   z_SubsetHookCaller._call_history=  s   € à�z‰z×'Ñ'Ð'r    c                ó"   — d| j                   ›d�S )Nz<_SubsetHookCaller rZ   r[   r   s    r   r\   z_SubsetHookCaller.__repr__A  s   € Ø$ T§Y¡Y M°Ð3Ð3r    N)r�   r(   r�   zAbstractSet[_Plugin]r%   r&   r†   )r%   zHookSpec | None)r%   z_CallHistory | Noner‡   )r)   r*   r+   r,   r-   r   Úpropertyr2   r3   r0   r\   r   r    r   r‹   r‹     sT   „ ñ4ð€Ió
(ð ò
ó ð
ð òó ðð ò(ó ð(ô4r    r‹   )&r,   Ú
__future__r   Úcollections.abcr   r   r   r   ÚAbstractSetÚtypingr   r	   r
   r   r   rk   Ú_configr   r   Ú_decoratorsr   r   Ú_implr   r   r'   r‰   r…   rx   r   Ú__annotations__r   Ú
_HookRelayÚtupler.   r(   Ú_HookCallerr‹   r   r    r   ú<module>r¡      sö   ðòõ #å $Ý #Ý $Ý .Ý Ý Ý Ý  Ý Û å !Ý !Ý #Ý !Ý Ý ð  Øˆ(�8Ñ
˜g c¨6 kÑ2°DÐ9Ø
ˆT�&‰\Ñðñ€	ˆ9ó ð ÷<ð <ó ð<ð €
ð Ø	ˆ'�#�v�+Ñ
 ¨#¨°¨Ñ 5¸Ñ <Ð
<Ñ=ñ€ˆió ÷
Y,ñ Y,ðz €ô*4˜
õ *4r    