+
    ‹°³j˜  ã                   ó  € ^ RI t ^ RIt^ RIHt ^ RIHtHtHtHt ^RI	H	t	 ^RI
HtHt ^RIHt ^ RIHt ] P$                  ! 4       t]]]]],          ]],          3,          t ! R R	4      t ! R
 R]4      tRR/R R lltRRR/R R llltR# )é    N©Úwraps)ÚOptionalÚUnionÚAnyÚSequence)Úflags)Útransform_tensor_metricsÚset_metric_kernels)Úmetadata_state)Úprotonc                   óX   a € ] tR t^t o RtRV 3R lR lltR tR tR tR t	R	 t
R
tV tR# )ÚscopeaÉ  
A context manager and decorator for entering and exiting a scope.

Usage:
    context manager:
    ```python
    with proton.scope("test0", {metric_name: metric_value}):
        foo[1,](x, y)
    ```

    decorator:
    ```python
    @proton.scope("test0", {metric_name: metric_value})
    def foo(x, y):
        ...
    ```

Args:
    name (str): The name of the scope.
    metrics (dict[str, float], optional): The metrics of the scope. Default is None.
Nc                óP   <€ V ^8„  d   QhRS[ RS[S[S[ S[3,          ,          RR/# ©é   ÚnameÚmetricsÚreturnN©Ústrr   Údictr   )ÚformatÚ__classdict__s   "€ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/triton/profiler/scope.pyÚ__annotate__Úscope.__annotate__'   s/   ø€ ÷ ñ ™Sð ©8±D¹¹c¸µNÕ+Cð Ètñ ó    c                ó,   € Wn         W n        R V n        R # ©N©r   r   Úid)Úselfr   r   s   &&&r   Ú__init__Úscope.__init__'   s   € ØŒ	ØŒØˆŽr   c                óÄ  € \         P                  '       g   R # \        P                  ! 4       V n        \        P
                  ! V P                  V P                  4       V P                  '       d]   \        4       ;_uu_ 4        \        4        \        P                  ! V P                  .\        V P                  4      O5!   R R R 4       R # R #   + '       g   i     R # ; ir    )r	   Úprofiling_onÚ	libprotonÚrecord_scoper"   Úenter_scoper   r   r   r   Úadd_metricsr
   ©r#   s   &r   Ú_enter_scopeÚscope._enter_scope,   s‰   € Ü×!×!Ð!ÙÜ×(Ò(Ó*ˆŒÜ×Ò˜dŸg™g t§y¡yÔ1Ø�<�<ˆ<Ü×!Õ!Ü"Ô$Ü×%Ò% d§g¡gÐWÔ0HÈÏÉÓ0VÔW÷ "Ñ!ñ ß!×!Ð!ús   ÂA CÃC	c                ó¨   € \         P                  '       d   V P                  f   R # \        P                  ! V P                  V P
                  4       R # r    )r	   r'   r"   r(   Ú
exit_scoper   r,   s   &r   Ú_exit_scopeÚscope._exit_scope6   s1   € Ü×!×!Ð! T§W¡W¢_ÙÜ×Ò˜TŸW™W d§i¡iÖ0r   c                ó&   € V P                  4        V # r    )r-   r,   s   &r   Ú	__enter__Úscope.__enter__;   s   € Ø×ÑÔØˆr   c                ó&   € V P                  4        R # r    )r1   )r#   Úexc_typeÚ	exc_valueÚ	tracebacks   &&&&r   Ú__exit__Úscope.__exit__?   s   € Ø×ÑÖr   c                ó4   a a€ \        S4      VV 3R  l4       pV# )c                  ó€   <€ SP                  4         S! V / VB SP                  4        #   SP                  4        i ; ir    )r-   r1   )ÚargsÚkwargsÚfuncr#   s   *,€€r   ÚwrapperÚscope.__call__.<locals>.wrapperD   s:   ø€ à×ÑÔð#Ù˜TÐ, VÑ,à× Ñ Õ"ø�× Ñ Õ"ús   “+ «=r   )r#   r@   rA   s   ff r   Ú__call__Úscope.__call__B   s    ù€ ä	ˆt‹õ	#ó 
ð	#ð ˆr   )r"   r   r   r    )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r$   r-   r1   r4   r:   rC   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s3   ø‡ € ñ÷,ò ò
Xò1ò
ò÷
ð 
r   r   c                   ó^   a a€ ] tR t^Ot oRtRV3R lV 3R llltV 3R ltV 3R ltRtVt	V ;t
# )Úcpu_timed_scopez´
A scope that measures elapsed time (cpu_time).

Args:
    name (str): The name of the scope.
    metrics (dict[str, float], optional): Additional metrics to add. Default is None.
c                óP   <€ V ^8„  d   QhRS[ RS[S[S[ S[3,          ,          RR/# r   r   )r   r   s   "€r   r   Úcpu_timed_scope.__annotate__X   s4   ø€ ÷ Hñ H™Sð H©8±D¹¹c¸µNÕ+Cð HÈtñ Hr   c                ól   <€ \         SV `  W4       R V n        V'       d   RV9   d   \        R4      hR # R # )NÚcpu_timez'The metric name 'cpu_time' is reserved.)Úsuperr$   Ú
start_timeÚ
ValueError)r#   r   r   Ú	__class__s   &&&€r   r$   Úcpu_timed_scope.__init__X   s4   ø€ Ü‰Ñ˜Ô'ØˆŒß�z WÔ,ÜÐFÓGÐGñ -‰7r   c                óˆ   <€ \         P                  '       g   R # \        P                  ! 4       V n        \
        SV `  4        R # r    )r	   r'   ÚtimeÚperf_counter_nsrS   rR   r-   )r#   rU   s   &€r   r-   Úcpu_timed_scope._enter_scope^   s-   ø€ Ü×!×!Ð!ÙÜ×.Ò.Ó0ˆŒÜ‰ÑÖr   c                ó  <€ \         P                  '       g   R # V P                  eJ   \        P                  ! 4       V P                  ,
          p\
        P                  ! V P                  RV/4       \        SV `%  4        R # )Nzcpu_time (ns)(exc))
r	   r'   rS   rX   rY   r(   r+   r"   rR   r1   )r#   rQ   rU   s   & €r   r1   Úcpu_timed_scope._exit_scoped   sX   ø€ Ü×!×!Ð!ÙØ�?‰?Ò&Ü×+Ò+Ó-°·±Õ?ˆHÜ×!Ò! $§'¡'Ð,@À(Ð+KÔLÜ‰ÑÖr   )rS   r    )rE   rF   rG   rH   rI   r$   r-   r1   rJ   rK   Ú__classcell__)rU   r   s   @@r   rM   rM   O   s%   ù‡ € ñ÷Hõ Hõ÷õ r   rM   r   c                óŠ   € V ^8„  d   QhR\         R\        \        \         \        3,          ,          R\        \        ,          /# ©r   r   r   r   )r   r   r   r   Úint)r   s   "r   r   r   m   s3   € ÷ ñ ”cð ¤x´´S¼#°XµÕ'?ð Ì8ÔTWÍ=ñ r   c                óÈ  € \         P                  '       g   R # \        P                  ! 4       p\	        \
        R. 4      \
        n        \
        P                  P                  W 34       \        P                  ! W 4       V'       dI   \        4       ;_uu_ 4        \        4        \        P                  ! V.\        V4      O5!   R R R 4       V# V#   + '       g   i     T# ; i)NÚscopes)r	   r'   r(   r)   ÚgetattrÚthread_local_scopesrb   Úappendr*   r   r   r+   r
   r!   s   &$ r   r*   r*   m   s¡   € Ü××ÐÙÜ	×	Ò	Ó	!€BÜ!(Ô)<¸hÈÓ!KÔÔÜ×Ñ×%Ñ% r jÔ1Ü×Ò˜"Ô#ßÜ×ÕÜÔ Ü×!Ò! "ÐIÔ'?ÀÓ'HÔI÷ ð €Iˆ2€I÷ Öð €Iús   Â,CÃC!	c                ó    € V ^8„  d   QhR\         \        ,          R\         \        \        \        3,          ,          R\         \        ,          /# r_   )r   r   r   r   r`   )r   s   "r   r   r   {   s9   € ÷ ñ ”Xœc•]ð ´xÄÄSÌ#ÀXÅÕ7Oð Ô[cÔdgÕ[hñ r   c                ó¶  € \         P                  '       g   R # \        P                  P	                  4       w  r#V '       d   W8w  d   \        RV  RV 24      hV '       g   Tp V'       dG   \        4       ;_uu_ 4        \        4        \        P                  ! V.\        V4      O5!   R R R 4       \        P                  ! W 4       V#   + '       g   i     L(; i)NzScope name mismatch: z != )r	   r'   rd   rb   ÚpoprT   r   r   r(   r+   r
   r0   )r   r   r"   Úpopped_names   &$  r   r0   r0   {   sž   € ä××ÐÙÜ)×0Ñ0×4Ñ4Ó6�O€Bß�Ô#ÜÐ0°°°d¸;¸-ÐHÓIÐIßØˆßÜ×ÕÜÔ Ü×!Ò! "ÐIÔ'?ÀÓ'HÔI÷ ô ×Ò˜Ô"Ø€I÷	 ×ús   Á<,CÃC	r    )Ú	threadingrX   Ú	functoolsr   Útypingr   r   r   r   r	   Úmetricr
   r   Ústater   Útriton._C.libprotonr   r(   Úlocalrd   Úfloatr`   ÚMetricValueTyper   rM   r*   r0   © r   r   Ú<module>rt      s}   ðÛ Û Ý ß 1Ó 1å ß @Ý !Ý 3à—o’oÓ'Ð à˜˜s H¨U¥O°X¸cµ]ÐBÕC€÷<ñ <ô~�eô ð<À$÷ ñÐRV÷ ò r   