a XC?hd �@sdddlZddlZddlZddlZddlZddlmZdd�Zdd�Zdd �Z dd d �Z dd d�Z dS)�N�)� constantscCsVt�|�}t�|�r&|j}|j|jfSt|tj�r&�z*_format_args_and_kwargs..css&|]\}}|�dt�|���VqdS)�=Nr)r�k�vrrrr(rz({})z, )�extend�items�format�join)r�kwargsr#rrr�_format_args_and_kwargss r'�cCs�t|tj�r.t||�|}t|j|j|j|�St|d�rF|j rF|j }n t|d�r^|j r^|j }nt |�}|t||�7}|r�||7}|S)N� __qualname__�__name__) r r r r'rr r�keywords�hasattrr)r*r)r rr&�suffixrrrrr,s rcCsD|durt��j}|dur tj}tjjt�|�|dd�}|� �|S)zlReplacement for traceback.extract_stack() that only does the necessary work for asyncio debug mode. NF)�limit� lookup_lines) �sys� _getframe�f_backrZDEBUG_STACK_DEPTH� traceback� StackSummary�extract� walk_stack�reverse)�fr.�stackrrr� extract_stack>s �r:)r()NN) r rrr0r3r(rr rr'rr:rrrr�s