o
    Nrf                  
   @  s  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d Z
dd	 Zd
d Zdd Ze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d ZzddlZW n eyj   dZY nw ejdg ddd Zejdg ddd Zdd Zdd ZdS )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                 c  s    t t}d V  W d    n1 sw   Y  tt|j}dd |D }|d dks2J ||dd  | ks>J |d S )Nc                 S  s   g | ]}|d  j jqS )r   )f_codeco_name).0frame r	   b/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/dask/tests/test_traceback.py
<listcomp>   s    z$assert_tb_levels.<locals>.<listcomp>r   assert_tb_levels   )pytestZraisesZeroDivisionErrorlist	tracebackwalk_tbtb)expecteframesZframe_namesr	   r	   r
   r      s   r   c                   C  s   dd S )Nr   r   r	   r	   r	   r	   r
   f1   s   r   c                   C  
   t  d S )N   )r   r	   r	   r	   r
   f2!      
r   c                   C  r   )Nr   )r   r	   r	   r	   r
   f3%   r   r   zregexes,expect)test_shorten_tracebackr   r   r   Znomatchz.*r   testsc              
   C  s   t jd| i; t| t  t  W d   n1 sw   Y  W d   n1 s.w   Y  W d   dS W d   dS 1 sFw   Y  dS )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   r	   r	   r
   r   )   s   
"	scheduler)threads	processessyncc                 C     t t }d}| dkrtsdg}ng d}|dg|}t| t j| | d W d    n1 s3w   Y  |ddg|}t| |j| d W d    d S 1 sUw   Y  d S )Ntest_compute_shorten_tracebackr&   reraiser   r   r   computer$   )r    delayedr   tblibr   r,   r$   d	TEST_NAMEZremote_stackr   r	   r	   r
   r)   I      

"r)   c                 C  r(   )Ntest_persist_shorten_tracebackr&   r*   r+   persistr-   )r    r.   r   r/   r   r5   r0   r	   r	   r
   r4   \   r3   r4   c               	   C  st  t d} | jddd tt }t|\}| }d}|dddd	g}t| t|  W d    n1 s;w   Y  |ddddd	g}t| |  W d    n1 s[w   Y  |dddd	g}t| t| W d    n1 s{w   Y  |ddddd	g}t| |  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )
NdistributedFz:0)r&   Zdashboard_address"test_distributed_shorten_tracebackr,   r   r   r   )	r   ZimportorskipZClientr    r.   r   r5   r   r,   )r6   r1   Zdp1Zdp2r2   r   r	   r	   r
   r7   o   s2   






"r7   c                 C  s   i }t jj|d t jjd|d}t|trt|dksJ i }t| d d}|d W d   n1 s7w   Y  t	
t t jj|| gd W d   n1 sUw   Y  t jjd|d}|d	gksiJ dS )
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   ZwarnsFutureWarning)Ztmp_pathr1   actualfhr	   r	   r
   test_deprecated_config   s   rD   )__doc__
__future__r   r   
contextlibr   r   r    Z
dask.utilsr   r   r   r   r   markZparametrizer   r/   ImportErrorr)   r4   r7   rD   r	   r	   r	   r
   <module>   sB    
	




