HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux vps109042.inmotionhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: cisa (1010)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/imh-python/lib/python3.9/asyncio/__pycache__/tasks.cpython-39.opt-2.pyc
a

b�h��@sndZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddl
mZddl
m
Z
ddl
mZddl
mZdd	lmZe�d�jZdAd
d�ZdBdd
�ZdCdd�Zdd�ZGdd�dej�ZeZzddlZWney�Yn0ejZZdd�dd�ZejjZejj Z ejj!Z!dde!d�dd�Z"dd�Z#dd�dd�Z$dd �Z%d!d"�Z&ddd#�d$d%�Z'ej(d&d'��Z)dDdd�d(d)�Z*dd�d*d+�Z+ej(d,d-��Z,ee,_Gd.d/�d/ej-�Z.dd0d1�d2d3�Z/dd�d4d5�Z0d6d7�Z1e	�2�Z3iZ4d8d9�Z5d:d;�Z6d<d=�Z7d>d?�Z8e5Z9e8Z:e6Z;e7Z<z$dd@lm5Z5m8Z8m6Z6m7Z7m3Z3m4Z4Wne�yXYn0e5Z=e8Z>e6Z?e7Z@dS)E)�Task�create_task�FIRST_COMPLETED�FIRST_EXCEPTION�
ALL_COMPLETED�wait�wait_for�as_completed�sleep�gather�shield�
ensure_future�run_coroutine_threadsafe�current_task�	all_tasks�_register_task�_unregister_task�_enter_task�_leave_task�N�)�
base_tasks)�
coroutines)�events)�
exceptions)�futures)�
_is_coroutinecCs|durt��}t�|�S�N)r�get_running_loop�_current_tasks�get��loop�r"�./opt/imh-python/lib/python3.9/asyncio/tasks.pyr"srcs\�durt���d}ztt�}WqJtyD|d7}|dkr@�Yq0qJq�fdd�|D�S)Nrr��cs&h|]}t�|��ur|��s|�qSr")r�	_get_loop�done��.0�tr r"r#�	<setcomp><s�zall_tasks.<locals>.<setcomp>)rr�list�
_all_tasks�RuntimeError�r!�iZtasksr"r r#r)srcs\�durt���d}ztt�}WqJtyD|d7}|dkr@�Yq0qJq�fdd�|D�S)Nrrr$csh|]}t�|��ur|�qSr")rr%r'r r"r#r*U�z$_all_tasks_compat.<locals>.<setcomp>)r�get_event_loopr+r,r-r.r"r r#�_all_tasks_compat@sr2cCs2|dur.z
|j}Wnty$Yn
0||�dSr)�set_name�AttributeError)�task�namer3r"r"r#�_set_task_nameXs
r7cs�eZdZdZddd��fdd�
Z�fdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�dd�Z
ddd�dd�Zd"dd�Zd#�fdd�	Zd d!�Z�ZS)$rTN)r!r6cs�t�j|d�|jr|jd=t�|�s:d|_td|����|durRdt���|_n
t	|�|_d|_
d|_||_t
��|_|jj|j|jd�t|�dS)Nr ���Fza coroutine was expected, got zTask-��context)�super�__init__�_source_tracebackr�iscoroutine�_log_destroy_pending�	TypeError�_task_name_counter�_name�str�_must_cancel�_fut_waiter�_coro�contextvarsZcopy_context�_context�_loop�	call_soon�_Task__stepr)�self�coror!r6��	__class__r"r#r<ts


z
Task.__init__csF|jtjkr8|jr8|dd�}|jr,|j|d<|j�|�t���dS)Nz%Task was destroyed but it is pending!)r5�messageZsource_traceback)	�_staterZ_PENDINGr?r=rIZcall_exception_handlerr;�__del__)rLr:rNr"r#rR�s�
zTask.__del__cCs|Srr")�cls�typer"r"r#�__class_getitem__�szTask.__class_getitem__cCs
t�|�Sr)rZ_task_repr_info�rLr"r"r#�
_repr_info�szTask._repr_infocCs|jSr)rFrVr"r"r#�get_coro�sz
Task.get_corocCs|jSr)rBrVr"r"r#�get_name�sz
Task.get_namecCst|�|_dSr)rCrB)rL�valuer"r"r#r3�sz
Task.set_namecCstd��dS)Nz*Task does not support set_result operation�r-)rL�resultr"r"r#�
set_result�szTask.set_resultcCstd��dS)Nz-Task does not support set_exception operationr[)rL�	exceptionr"r"r#�
set_exception�szTask.set_exception)�limitcCst�||�Sr)rZ_task_get_stack)rLr`r"r"r#�	get_stack�szTask.get_stack)r`�filecCst�|||�Sr)rZ_task_print_stack)rLr`rbr"r"r#�print_stack�s	zTask.print_stackcCs>d|_|��rdS|jdur.|jj|d�r.dSd|_||_dS�NF��msgT)Z_log_tracebackr&rE�cancelrD�_cancel_message)rLrfr"r"r#rg�s
zTask.cancelc
s|��rt�d|�d|����|jr>t|tj�s8|��}d|_|j}d|_t	|j
|��z�z"|durp|�d�}n
|�|�}Wn�t
y�}z:|jr�d|_t�j|jd�nt��|j�WYd}~�n d}~0tj�y}z||_t���WYd}~�n�d}~0ttf�y>}zt��|��WYd}~�n�d}~0t�yp}zt��|�WYd}~�n~d}~00t|dd�}|du�rjt�|�|j
u�r�td|�d|�d��}|j
j|j||jd	�n�|�r>||u�r�td
|���}|j
j|j||jd	�n>d|_|j |j!|jd	�||_|j�rh|jj|jd��rhd|_n*td|�d|���}|j
j|j||jd	�n||du�r�|j
j|j|jd	�n\t"�#|��r�td
|�d|���}|j
j|j||jd	�n$td|���}|j
j|j||jd	�Wt$|j
|�d}nt$|j
|�d}0dS)Nz_step(): already done: z, Fre�_asyncio_future_blockingzTask z got Future z attached to a different loopr9zTask cannot await on itself: z-yield was used instead of yield from in task z with z;yield was used instead of yield from for generator in task zTask got bad yield: )%r&r�InvalidStateErrorrD�
isinstance�CancelledError�_make_cancelled_errorrFrErrI�send�throw�
StopIterationr;rgrhr]rZZ_cancelled_exc�KeyboardInterrupt�
SystemExitr_�
BaseException�getattrrr%r-rJrKrHri�add_done_callback�
_Task__wakeup�inspectZisgeneratorr)rL�excrMr\�blocking�new_excrNr"r#Z__step�s��$ $
��
�
�
������
�
���
�
��zTask.__stepc
CsLz|��Wn.ty:}z|�|�WYd}~nd}~00|��d}dSr)r\rsrK)rL�futurerxr"r"r#Z__wakeupFs z
Task.__wakeup)N)N)�__name__�
__module__�__qualname__r?r<rRrUrWrXrYr3r]r_rarcrgrKrv�
__classcell__r"r"rNr#rbs
"Wr)r6cCs t��}|�|�}t||�|Sr)rrrr7)rMr6r!r5r"r"r#rcs

r)r!�timeout�return_whenc�s�t�|�st�|�r(tdt|�j����|s4td��|tt	t
fvrPtd|�����durbt���nt
jdtdd�t|�}tdd�|D��r�t
jd	tdd��fd
d�|D�}t|||��IdHS)Nzexpect a list of futures, not z#Set of coroutines/Futures is empty.zInvalid return_when value: �[The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10.���
stacklevelcss|]}t�|�VqdSr)rr>�r(�fr"r"r#�	<genexpr>�r0zwait.<locals>.<genexpr>z�The explicit passing of coroutine objects to asyncio.wait() is deprecated since Python 3.8, and scheduled for removal in Python 3.11.csh|]}t|�d��qS�r �rr�r r"r#r*�r0zwait.<locals>.<setcomp>)r�isfuturerr>r@rTr|�
ValueErrorrrrrr�warnings�warn�DeprecationWarning�set�any�_wait)�fsr!r�r�r"r r#rus$
��rcGs|��s|�d�dSr)r&r])�waiter�argsr"r"r#�_release_waiter�sr�r c
�s�|durt��}ntjdtdd�|dur4|IdHS|dkr�t||d�}|��rX|��St||d�IdHz|��Wn0t	j
y�}zt	��|�WYd}~nd}~00t	���|��}|�
|t|�}t�t|�}t||d�}|�|�z�z|IdHWnTt	j
�yL|���r*|��YW|��S|�|�t||d�IdH�Yn0|���rj|��W|��S|�|�t||d�IdHz|��Wn2t	j
�y�}zt	��|�WYd}~nd}~00t	���W|��n
|��0dS)Nr�r�r�rr )rrr�r�r�rr&r\�_cancel_and_waitrrl�TimeoutError�
create_future�
call_laterr��	functools�partialrurg�remove_done_callback)�futr�r!rxr��timeout_handle�cbr"r"r#r�sZ

�
 

�

�
 
rc
�s�|���d�|dur"|�|t���t|������fdd�}|D]}|�|�q@z2�IdHW�durn���|D]}|�|�qrn&�dur����|D]}|�|�q�0t�t�}}|D]"}|��r�|�	|�q�|�	|�q�||fS)NcsZ�d8��dks4�tks4�tkrV|��sV|��durV�durD������sV��d�dS)Nrr)rr�	cancelledr^rgr&r]�r��Zcounterr�r�r�r"r#�_on_completions���
�z_wait.<locals>._on_completion)
r�r�r��lenrurgr�r�r&�add)r�r�r�r!r�r�r&�pendingr"r�r#r��s0�r�c	�sP|��}t�t|�}|�|�z |��|IdHW|�|�n|�|�0dSr)r�r�r�r�rurgr�)r�r!r�r�r"r"r#r�!s
r�)r!r�c#s�t�|�st�|�r(tdt|�j����ddlm}|�d���durPt	�
��ntjdt
dd��fdd	�t|�D��d����fd
d�}���fdd
���fdd�}�D]}|���q��r�|dur҈�||��tt���D]}|�Vq�dS)Nz#expect an iterable of futures, not r)�Queuer r�r�r�csh|]}t|�d��qSr�r�r�r r"r#r*Pr0zas_completed.<locals>.<setcomp>cs*�D]}|�����d�q���dSr)r��
put_nowait�clearr�)r�r&�todor"r#�_on_timeoutSs
z!as_completed.<locals>._on_timeoutcs4�sdS��|���|��s0�dur0���dSr)�remover�rgr�)r&r�r�r"r#r�Ys

z$as_completed.<locals>._on_completionc�s$���IdH}|durtj�|��Sr)rrr�r\r�)r&r"r#�
_wait_for_oneasz#as_completed.<locals>._wait_for_one)rr�rr>r@rTr|�queuesr�rr1r�r�r�r�rur��ranger�)r�r!r�r�r�r�r��_r")r�r&r!r�r�r#r2s(

�rccs
dVdSrr"r"r"r"r#�__sleep0ps	r�c�s~|durtjdtdd�|dkr0t�IdH|S|dur@t��}|��}|�|tj	||�}z|IdHW|�
�S|�
�0dS)Nr�r�r�r)r�r�r�r�rrr�r�rZ_set_result_unless_cancelledrg)�delayr\r!r{�hr"r"r#r	|s&��
�r	cCs�t�|�r6|durt��}|�|�}|jr2|jd=|St�|�rb|dur^|t�|�ur^t	d��|St
�|�r|tt
|�|d�Std��dS)Nr8zRThe future belongs to a different loop than the one specified as the loop argumentr z:An asyncio.Future, a coroutine or an awaitable is required)rr>rr1rr=rr�r%r�rwZisawaitabler�_wrap_awaitabler@)Zcoro_or_futurer!r5r"r"r#r�s



rccs|��EdHSr)�	__await__)Z	awaitabler"r"r#r��sr�cs,eZdZdd��fdd�
Zddd�Z�ZS)�_GatheringFutureNr cst�j|d�||_d|_dS)Nr F)r;r<�	_children�_cancel_requested)rL�childrenr!rNr"r#r<�sz_GatheringFuture.__init__cCs:|��rdSd}|jD]}|j|d�rd}q|r6d|_|Srd)r&r�rgr�)rLrf�ret�childr"r"r#rg�s
z_GatheringFuture.cancel)N)r|r}r~r<rgrr"r"rNr#r��sr�F)r!�return_exceptionscs�|durtjdtdd�|sB|dur,t��}|�����g��S�����fdd�}i}g�d�d�|D]f}||vr�t||d�}|dur�t�	|�}||ur�d|_
�d	7�|||<|�|�n||}��|�qjt
�|d���S)
Nr�r�r�cs��d7����r$|��s |��dS�sd|��rF|��}��|�dS|��}|durd��|�dS��kr�g}�D]J}|��r�t�|jdur�dn|j�}n|��}|dur�|��}|�	|�qt�j
r�|��}��|�n
��|�dS)Nr�)r&r�r^rmr_rrlrhr\�appendr�r])r�rx�results�res�r�Z	nfinishedZnfuts�outerr�r"r#�_done_callback�s<

�zgather.<locals>._done_callbackrr Fr)r�r�r�rr1r�r]rrr%r?rur�r�)r!r�Zcoros_or_futuresr�Z
arg_to_fut�argr�r"r�r#r
�s:�
7
r
cst|durtjdtdd�t||d�����r0�St���}|����fdd����fdd�}������|��S)	Nr�r�r�r cs\���r|��s|��dS|��r.���n*|��}|durJ��|�n��|���dSr)r�r^rgr_r]r\)�innerrx�r�r"r#�_inner_done_callbackxs
z$shield.<locals>._inner_done_callbackcs���s����dSr)r&r�r�)r�r�r"r#�_outer_done_callback�sz$shield.<locals>._outer_done_callback)	r�r�r�rr&rr%r�ru)r�r!r�r")r�r�r�r#rSs�


rcs:t���std��tj������fdd�}��|��S)NzA coroutine object is requiredc
slzt�t��d���WnNttfy0�Yn8tyf}z ���rP��|��WYd}~n
d}~00dS)Nr )rZ
_chain_futurerrrrqrs�set_running_or_notify_cancelr_)rx�rMr{r!r"r#�callback�s
z*run_coroutine_threadsafe.<locals>.callback)rr>r@�
concurrentr�FutureZcall_soon_threadsafe)rMr!r�r"r�r#r
�s



r
cCst�|�dSr)r,r��r5r"r"r#r�srcCs4t�|�}|dur(td|�d|�d���|t|<dS)NzCannot enter into task z while another task z is being executed.�rrr-�r!r5rr"r"r#r�s

�
rcCs2t�|�}||ur(td|�d|�d���t|=dS)Nz
Leaving task z! does not match the current task �.r�r�r"r"r#r�s

�
rcCst�|�dSr)r,�discardr�r"r"r#r�sr)rrrrr,r)N)N)N)N)A�__all__�concurrent.futuresr�rGr�rw�	itertools�typesr��weakrefr�rrrrrr�count�__next__rArrr2r7Z	_PyFuturerZ_PyTaskZ_asyncio�ImportErrorZ_CTaskrrrrrr�rr�r�r�	coroutiner�r	rr�r�r�r
rr
�WeakSetr,rrrrrZ_py_register_taskZ_py_unregister_taskZ_py_enter_taskZ_py_leave_taskZ_c_register_taskZ_c_unregister_taskZ
_c_enter_taskZ
_c_leave_taskr"r"r"r#�<module>s�	



v

+P,>

?$