
    @OOf              	       @   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 dddeded	edz  d
e j                  fdZddde j                  ded	edz  d
dfdZddded	edz  d
dfdZde j                  d
efdZed
ed   fd       Zed
ed   fd       Zy)    N)	Coroutine)Iterator)contextmanager)human)clientcoronamer   returnc                L    t        j                  |       }t        |||       |S )zV
    Like asyncio.create_task, but also store some debug info on the task object.
    r	   r   )asynciocreate_taskset_task_debug_info)r   r	   r   ts       ^/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/utils/asyncio_utils.pyr   r      s%     	D!AV4H    taskc                    t        j                          | _        ddu r*t        j                  j	                  dd      x}r| d| d}| j                  |       |r|| _        yy)z.Set debug info for an externally-spawned task.TPYTEST_CURRENT_TESTNz [created in ])timecreatedosenvirongetset_namer   )r   r	   r   tests       r   r   r      s`     99;DLDbjjnn5JD&QQdQ}TF!,MM$ r   c                 P    t        j                         }|sJ t        || |       y)z$Set debug info for the current task.r   N)r   current_taskr   )r	   r   r   s      r   set_current_task_debug_infor    )   s%     !DK447r   c                     | j                         }t        | dd      }|rdt        j                         |z
  dd}nd}t        | dd      }|rt        j                  |       d}| | | S )	z*Get a task representation with debug info.r   r   z (age: z.0fzs) r   z: )get_namegetattrr   r   format_address)r   r	   aager   s        r   	task_reprr(   4   sz    ==?DtY*A		a,B/T8R(F((014XdVC5!!r   c              #      K   t        j                         }|j                         }|j                  |        	 d  |j                  |       y # |j                  |       w xY ww)N)r   get_running_loopget_exception_handlerset_exception_handler)handlerloopexistings      r   install_exception_handlerr0   B   sT     ##%D))+Hw'-""8,""8,s   6A%A A%A""A%c               #     K   t        j                         } t        j                  dk  rd  y | j	                         }| j                  t         j                         	 d  | j                  |       y # | j                  |       w xY ww)N)      )r   r*   sysversion_infoget_task_factoryset_task_factoryeager_task_factory)r.   r/   s     r   set_eager_task_factoryr9   M   sk     ##%D
'!((*g889	,!!(+D!!(+s   ABA5 #B5BB)r   r   r4   r   collections.abcr   r   
contextlibr   mitmproxy.utilsr   strtupleTaskr   r   r    r(   r0   r9    r   r   <module>rA      s    	 
  % $ % !  	
  DL	
 \\$  	
,,  DL	
 
$  8
8 DL8 
	8"GLL "S " -(4. - - 
, 
, 
,r   