a
    ӗa	                     @   sD   d dl Z d dlZddlmZ ddlmZ dd Zdd Zd	d
 ZdS )    N   )base_futures)
coroutinesc                 C   sn   t | }| jrd|d< |dd|    t| j}|dd| d | jd urj|dd	| j |S )
NZ
cancellingr   r   zname=%r   zcoro=<>   z	wait_for=)	r   _future_repr_infoZ_must_cancelinsertget_namer   _format_coroutine_coroZ_fut_waiter)taskinfocoro r   5/home/manager/Python-3.9.10/Lib/asyncio/base_tasks.py_task_repr_info   s    

r   c                 C   s   g }t | jdr| jj}n0t | jdr0| jj}nt | jdrF| jj}nd }|d ur|d ur|d urt|dkrlq|d8 }|| |j}qR|  nH| jd ur| jj	}|d ur|d ur|dkrq|d8 }||j
 |j}q|S )Ncr_framegi_frameag_framer   r   )hasattrr   r   r   r   appendf_backreverse
_exception__traceback__tb_frametb_next)r   limitZframesftbr   r   r   _task_get_stack   s6    





r!   c                 C   s   g }t  }| j|dD ]Z}|j}|j}|j}|j}	||vrN|| t| t	|||j
}
||||	|
f q| j}|std| |d n2|d urtd| d|d ntd| d|d tj||d |d urt|j|D ]}
t|
|dd qd S )	N)r   zNo stack for )filezTraceback for z (most recent call last):z
Stack for  )r"   end)setZ	get_stackf_linenof_codeco_filenameco_nameadd	linecache
checkcachegetline	f_globalsr   r   print	traceback
print_listformat_exception_only	__class__)r   r   r"   extracted_listcheckedr   linenocofilenamenamelineexcr   r   r   _task_print_stack<   s,    

r<   )r+   r0   r#   r   r   r   r!   r<   r   r   r   r   <module>   s   #