
    bi              
         d Z ddlmZ ddlZddlmZ ddlZddlZddlm	Z	 ed        Z
d Zd Zd	 Zej                  j                  d
dg dfg g dfdgg dfdgddgfdgddgfg      d        Z	 ddlZej                  j                  dg d      d        Zej                  j                  dg d      d        Zd Zd Zy# e$ r dZY Xw xY w)zTests on traceback shortening heuristics

See Also
--------
distributed/tests/test_client.py::test_short_tracebacks
distributed/tests/test_client.py::test_short_tracebacks_async
    )annotationsN)contextmanager)shorten_tracebackc              #  R  K   t        j                  t              5 }d  d d d        t        t	        j
                  j                              }|D cg c]  }|d   j                  j                   }}|d   dk(  sJ |       |dd  | k(  sJ |       y # 1 sw Y   vxY wc c}w w)Nr   assert_tb_levels   )	pytestraisesZeroDivisionErrorlist	tracebackwalk_tbtbf_codeco_name)expecteframesframeframe_namess        T/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/tests/test_traceback.pyr   r      s     	(	) Q)##ADD)*F8>?u58??**?K?q>//<</qr?f$1k1$  @s'   B'B4B' B"5!B'BB'c                     ddz  S )Nr   r    r       r   f1r      s    q5Lr   c                     t               dz   S )N   )r   r   r   r   f2r   "       4!8Or   c                     t               dz   S )Nr   )r   r   r   r   f3r!   &   r   r   zregexes,expect)test_shorten_tracebackr!   r   r   nomatchz.*r"   r   testsc                   t         j                  j                  d| i      5  t        |      5  t	               5  t                ddd       ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w)z
    See also
    --------
    test_distributed.py::test_shorten_traceback_excepthook
    test_distributed.py::test_shorten_traceback_ipython
    admin.traceback.shortenN)daskconfigsetr   r   r!   )regexesr   s     r   r"   r"   *   sq    ( 
3W=	> f% 	"$ 	  	 	 s9   A5A)AA)A5A&"A))A2	.A55A>	scheduler)threads	processessyncc                `    t        j                  t                     }d}| dk(  r
t        sdg}ng d}|dg|}t	        |      5  t        j
                   |       |        d d d        |ddg|}t	        |      5  |j                  |        d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)Ntest_compute_shorten_tracebackr-   reraiser!   r   r   computer+   )r'   delayedr!   tblibr   r3   r+   d	TEST_NAMEremote_stackr   s        r   r0   r0   J       RA0IK!{)2\2F	&	! /QSI./ I==F	&	! '			I	&' '	/ /' '   B<B$B!$B-c                `    t        j                  t                     }d}| dk(  r
t        sdg}ng d}|dg|}t	        |      5  t        j
                   |       |        d d d        |ddg|}t	        |      5  |j                  |        d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)Ntest_persist_shorten_tracebackr-   r1   r2   persistr4   )r'   r5   r!   r6   r   r?   r7   s        r   r>   r>   ]   r;   r<   c                    t        j                  d      } | j                  dd      5   t        j                  t
                     }t        j                  |      \  }|j                         }d}|dddd	g}t        |      5  t        j                   |              d d d        |ddddd	g}t        |      5  |j                          d d d        |dddd	g}t        |      5  t        j                  |       d d d        |ddddd	g}t        |      5  |j                          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   VxY w# 1 sw Y   6xY w# 1 sw Y   y xY w)
NdistributedFz:0)r-   dashboard_address"test_distributed_shorten_tracebackr3   r!   r   r   )	r	   importorskipClientr'   r5   r!   r?   r   r3   )rA   r8   dp1dp2r9   r   s         r   rC   rC   p   s[   %%m4K			et		D DLLaiik8	YdD9f% 	LL	 Y	4tDf% 	IIK	 YdD9f% 	LL	 Y	4tDf% 	KKM	) 	 		 		 		 	) sl   AE'D7E'9E
E'$E:E'E&E'7E 	<E'E	E'E	E'E$	 E''E0c                *   i }t         j                  j                  |       t         j                  j                  d|      }t	        |t
              rt        |      dkD  sJ i }t        | dz  d      5 }|j                  d       ddd       t        j                  t              5  t         j                  j                  || g       ddd       t         j                  j                  d|      }|d	gk(  sJ y# 1 sw Y   wxY w# 1 sw Y   ?xY w)
z@Test config override in the format between 2023.6.1 and 2023.8.1)r(   r&      z	dask.yamlwz
            admin:
              traceback:
                shorten:
                  when:
                    - dask/base.py
                  what:
                    - dask/core.py
            N)r(   pathszdask/core.py)r'   r(   refreshget
isinstancer   lenopenwriter	   warnsFutureWarning)tmp_pathr8   actualfhs       r   test_deprecated_configrW      s    
AKKq![[__6q_AFfd#Fa77
A	h$c	* 
b

	

 
m	$ 81XJ78[[__6q_AFn%%%%!
 
8 8s   5C=(#D	=D	D)__doc__
__future__r   r   
contextlibr   r	   r'   
dask.utilsr   r   r   r   r!   markparametrizer"   r6   ImportErrorr0   r>   rC   rW   r   r   r   <module>r_      s"   #  %   ( 2 2 	;<	9:
BC *D12
-t45	


 &FG' H'$ &FG' H'$4&I  Es   1C CC