Edit File: tasks.cpython-36.opt-2.pyc
3 � \�a��������������� ���@���s���d�ddddddddd d ddg Z�d dlZd dlZd dlZd dlZd dlZddlmZ�ddlm Z �ddlm Z �ddlmZ�ddlmZ�ddl m Z �G�dd���d�ej�ZeZyd dlZW�n�ek r����Y�nX�ej�ZZejjZejjZejjZe dded�dd��Zdd��Ze dd�dd��Ze dd���Zddd�d d�Ze d.dd�d!d��Zdd�d"d#�Zee��d<�de_[dd�d$d�Z e d%d&���Z!G�d'd(��d(ej�Z"dd)d*�d+d �Z#dd�d,d �Z$d-d��Z%dS�)/�Task�FIRST_COMPLETED�FIRST_EXCEPTION� ALL_COMPLETED�wait�wait_for�as_completed�sleep�async�gather�shield� ensure_future�run_coroutine_threadsafe�����N����)� base_tasks)�compat)� coroutines)�events)�futures)� coroutinec�������������������s����e�Zd�Zej��Zi�ZdZeddd��Z eddd��Z dd���fdd � Zej rTd d��Zdd ��Zdd�dd�Zddd�dd�Zdd��Zd��fdd� Zdd��Z���ZS�)r���TNc�������������C���s���|d�krt�j��}|�jj|�S�)N)r����get_event_loop�_current_tasks�get)�cls�loop��r����%/usr/lib64/python3.6/asyncio/tasks.py�current_task.���s����zTask.current_taskc����������������s$�����d�krt�j������fdd�|�jD��S�)Nc����������������s���h�|�]}|j���kr|�qS�r���)�_loop)�.0�t)r���r���r���� <setcomp>B���s����z!Task.all_tasks.<locals>.<setcomp>)r���r���� _all_tasks)r���r���r���)r���r���� all_tasks:���s����zTask.all_tasks)r���c���������������sN���t���j|d��|�jr|�jd=�||�_d�|�_d|�_|�jj|�j��|�j j j|���d�S�)N)r���r���F���)�super�__init__�_source_traceback�_coro�_fut_waiter�_must_cancelr���� call_soon�_step� __class__r"����add)�self�coror���)r-���r���r���r&���D���s����z Task.__init__c�������������C���sH���|�j�tjkr8|�jr8|�dd�}|�jr,|�j|d<�|�jj|��tjj|���d�S�)Nz%Task was destroyed but it is pending!)�task�messageZsource_traceback) Z_stater���Z_PENDING�_log_destroy_pendingr'���r���Zcall_exception_handler�Future�__del__)r/����contextr���r���r���r5���S���s���� zTask.__del__c�������������C���s ���t�j|��S�)N)r���Z_task_repr_info)r/���r���r���r���� _repr_info^���s����zTask._repr_info)�limitc������������C���s���t�j|�|�S�)N)r���Z_task_get_stack)r/���r8���r���r���r���� get_stacka���s����zTask.get_stack)r8����filec������������C���s���t�j|�||�S�)N)r���Z_task_print_stack)r/���r8���r:���r���r���r����print_stackx���s���� zTask.print_stackc�������������C���s4���d|�_�|�j��rdS�|�jd�k r*|�jj��r*dS�d|�_dS�)NFT)Z_log_traceback�doner)����cancelr*���)r/���r���r���r���r=�������s���� zTask.cancelc����������������sf��|�j�r t|tj�stj��}d|�_�|�j}d�|�_|�|�jj|�j<��zy"|d�krT|j d��}n |j |�}W�n��tk r��}�z.|�j�r�d|�_�|�jtj����n|�j |j��W�Y�d�d�}~X��n��tjk r����t��j���Y��n|�tk r��}�z|�j|��W�Y�d�d�}~X��nP�tk �r(�}�z|�j|����W�Y�d�d�}~X��n X�t|dd��}|d�k �r�|j|�jk �rl|�jj|�jtdj|�|����n||�r�||�k�r�|�jj|�jtdj|�����n2d|_|j|�j��||�_|�j��r�|�jj���r�d|�_�n|�jj|�jtdj|�|����n^|d�k�r|�jj|�j��nDtj|��r.|�jj|�jtdj|�|����n|�jj|�jtdj|����W�d�|�jjj|�j��d�}�X�d�S�)NF�_asyncio_future_blockingz6Task {!r} got Future {!r} attached to a different loopz!Task cannot await on itself: {!r}z;yield was used instead of yield from in task {!r} with {!r}zIyield was used instead of yield from for generator in task {!r} with {!r}zTask got bad yield: {!r})r*���� isinstancer����CancelledErrorr(���r)���r-���r���r����send�throw� StopIteration� set_exception� set_result�valuer%���r=���� Exception� BaseException�getattrr+���r,����RuntimeError�formatr>����add_done_callback�_wakeup�inspectZisgenerator�pop)r/����excr0����resultZblocking)r-���r���r���r,�������s~���� z Task._stepc�������������C���sJ���y|j����W�n,�tk r8�}�z|�j|��W�Y�d�d�}~X�n X�|�j���d�}�d�S�)N)rQ���rG���r,���)r/����futurerP���r���r���r���rM�������s����zTask._wakeup)N)N)N)�__name__� __module__�__qualname__�weakref�WeakSetr"���r���r3����classmethodr���r#���r&���r���ZPY34r5���r7���r9���r;���r=���r,���rM���� __classcell__r���r���)r-���r���r������s ��� !T)r����timeout�return_whenc������������#���s����t�j|��stj|��r&tdt|��j���|�s2td��|tt t fkrNtdj|�����d�kr^tj ������fdd�t|��D��}�t|�||���E�d�H�S�)Nz expect a list of futures, not %sz#Set of coroutines/Futures is empty.zInvalid return_when value: {}c����������������s���h�|�]}t�|��d���qS�))r���)r���)r����f)r���r���r���r!���7��s����zwait.<locals>.<setcomp>)r����isfuturer����iscoroutine� TypeError�typerS���� ValueErrorr���r���r���rK���r���r����set�_wait)�fsr���rZ���r[���r���)r���r���r�����s����c�������������G���s���|�j���s|�jd���d�S�)N)r<���rE���)�waiter�argsr���r���r����_release_waiter<��s����rg���)r���c������������c���s����|d�krt�j��}|d�kr"|�E�d�H�S�|j��}|j|t|�}tjt|�}t|�|d�}�|�j|��zhy|E�d�H��W�n*�t j k r����|�j|��|�j�����Y�nX�|�j ��r�|�j��S�|�j|��|�j���t j���W�d�|j���X�d�S�)N)r���)r���r���� create_future� call_laterrg���� functools�partialr���rL���r���r@����remove_done_callbackr=���r<���rQ����TimeoutError)�futrZ���r���re����timeout_handle�cbr���r���r���r���A��s,���� c�������������#���s����|j����d��|d�k r"|j|t���t|���������fdd�}x|�D�]}|j|��qBW�z�E�d�H��W�d��d�k rt�j���X�t��t���}}x4|�D�],}|j|��|j��r�|j |��q�|j |��q�W�||fS�)Nc����������������s\�����d8�����dks6�t�ks6�tkrX|�j���rX|�j��d�k rX�d�k rF�j����j��sX�jd���d�S�)Nr���r���)r���r���� cancelled� exceptionr=���r<���rE���)r\���)�counterr[���ro���re���r���r����_on_completion|��s����z_wait.<locals>._on_completion) rh���ri���rg����lenrL���r=���rb���rl���r<���r.���)rd���rZ���r[���r���rt���r\���r<����pendingr���)rs���r[���ro���re���r���rc���o��s&���� rc���)r���rZ���c������������#���s����t�j|��stj|��r&tdt|��j����d�k r2�ntj����fdd�t |��D���ddl m}�|�d��d������fdd�}���fd d ���t�fdd��}x�D�]}|j ����q�W��r�|d�k rʈj||��xtt���D�]}|��V��q�W�d�S�) Nz expect a list of futures, not %sc����������������s���h�|�]}t�|��d���qS�))r���)r���)r���r\���)r���r���r���r!������s����zas_completed.<locals>.<setcomp>r���)�Queue)r���c�����������������s.���x �D�]}�|�j������jd���qW��j���d�S�)N)rl���� put_nowait�clear)r\���)rt���r<����todor���r����_on_timeout���s���� z!as_completed.<locals>._on_timeoutc����������������s6����sd�S��j�|�����j|�����r2�d�k r2�j���d�S�)N)�removerx���r=���)r\���)r<���ro���rz���r���r���rt������s���� z$as_completed.<locals>._on_completionc��������������3���s$�����j���E�d�H�}�|�d�krtj�|�j��S�)N)r���r���rm���rQ���)r\���)r<���r���r���� _wait_for_one���s����z#as_completed.<locals>._wait_for_one)r���r]���r���r^���r_���r`���rS���r���r���rb���Zqueuesrw���r���rL���ri����rangeru���)rd���r���rZ���rw���r{���r}���r\����_r���)rt���r<���r���ro���rz���r���r������s ���� c��������� ���c���sX���|�dkrd�V��|S�|d�kr"t�j��}|j��}|jj|�tj||�}z |E�d�H�S�|j���X�d�S�)Nr���)r���r���rh���r���ri���r���Z_set_result_unless_cancelledr=���)ZdelayrQ���r���rR����hr���r���r���r������s���� c������������C���s���t�jdtdd��t|�|d�S�)Nz;asyncio.async() function is deprecated, use ensure_future()����)� stacklevel)r���)�warnings�warn�DeprecationWarningr���)�coro_or_futurer���r���r���r����async_���s����r����c������������C���s����t�j|��r(|d�k r$||�jk r$td��|�S�tj|��r^|d�krBtj��}|j|��}|j rZ|j d=�|S�t jr~tj |��r~tt|��|d�S�td��d�S�)Nz$loop argument must agree with Futurer���)r���z:An asyncio.Future, a coroutine or an awaitable is requiredr$���)r���r]���r���ra���r���r^���r���r���Zcreate_taskr'���r���ZPY35rN���Zisawaitabler����_wrap_awaitabler_���)r����r���r1���r���r���r���r������s���� c�������������c���s���|�j���E�d�H�S�)N)� __await__)Z awaitabler���r���r���r������s����r����c�������������������s*���e�Zd�Zdd���fdd� Zdd��Z���ZS�)�_GatheringFutureN)r���c���������������s���t���j|d��||�_d|�_d�S�)N)r���F)r%���r&���� _children�_cancel_requested)r/����childrenr���)r-���r���r���r&���$��s����z_GatheringFuture.__init__c�������������C���s:���|�j���rdS�d}x|�jD�]}|j��rd}qW�|r6d|�_|S�)NFT)r<���r����r=���r����)r/���ZretZchildr���r���r���r=���)��s����z_GatheringFuture.cancel)rS���rT���rU���r&���r=���rY���r���r���)r-���r���r������s���r����F)r����return_exceptionsc����������������s��|s*|�d�krt�j��}�|�j����jg����S�i���xjt|�D�]^}tj|�sht||�d�}|�d�kr`|j}�d|_ n&|}|�d�kr||j}�n|j|�k r�t d��|��|<�q8W���fdd�|D��}t|��t||�d��d�d�g��������fdd�}x&t |�D�]\}}|jtj||���q�W��S�) N)r���Fz)futures are tied to different event loopsc����������������s���g�|�]}��|��qS�r���r���)r����arg)� arg_to_futr���r���� <listcomp>h��s����zgather.<locals>.<listcomp>r���c����������������s�����j���r|j��s|j���d�S�|j��r@tj��}�sl�j|��d�S�n,|jd�k rf|j��}�sl�j|��d�S�n|j}|�|�<��d7�����kr��jr��jtj����n �j ���d�S�)Nr���) r<���rq���rr���r���r@���rD���Z _exceptionZ_resultr����rE���)�irn����res)� nchildren� nfinished�outer�resultsr����r���r����_done_callbackn��s*���� zgather.<locals>._done_callback)r���r���rh���rE���rb���r���r]���r���r���r3���ra���ru���r����� enumeraterL���rj���rk���)r���r����Zcoros_or_futuresr����rn���r����r����r����r���)r����r����r����r����r����r����r���r ���8��s8���� c���������������s@���t�|�|d�}|j��r|S�|j}|j������fdd�}|j|����S�)N)r���c����������������s\�����j���r|�j���s|�j���d�S�|�j���r.��j���n*|�j��}|d�k rJ��j|��n��j|�j����d�S�)N)rq���rr���r=���rD���rE���rQ���)�innerrP���)r����r���r���r�������s���� zshield.<locals>._done_callback)r���r<���r���rh���rL���)r����r���r����r����r���)r����r���r������s���� c����������������s:���t�j���std��tjj�������fdd�}�j|���S�)NzA coroutine object is requiredc�����������������sT���yt�jt���d����W�n6�tk rN�}��z�j��r<�j|�����W�Y�d�d�}�~�X�nX�d�S�)N)r���)r���Z _chain_futurer���rG���Zset_running_or_notify_cancelrD���)rP���)r0���rR���r���r���r����callback���s���� z*run_coroutine_threadsafe.<locals>.callback)r���r^���r_���� concurrentr���r4���Zcall_soon_threadsafe)r0���r���r����r���)r0���rR���r���r���r ������s���� )N)&�__all__Zconcurrent.futuresr����rj���rN���r����rV�����r���r���r���r���r���r���r4���r���Z_PyTaskZ_asyncio�ImportErrorZ_CTaskr���r���r���r���rg���r���rc���r���r���r�����globalsrS���r���r����r����r ���r���r ���r���r���r���r����<module>���sX��� �s --8 W5