
    Ef

                        d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
ZddlmZmZ  G d de      Z G d	 d
e      Z G d d      Z G d d      Z G d dee      Z G d dee      Zee_         G d dej.                  e         Zy)zUFuture-returning APIs for tornado coroutines.

.. seealso::

    :mod:`zmq.asyncio`

    N)AnyType)Future)IOLoop)_AsyncPoller_AsyncSocketc                       e Zd Zy)CancelledErrorN)__name__
__module____qualname__     6/usr/lib/python3/dist-packages/zmq/eventloop/future.pyr
   r
      s    r   r
   c                       e Zd ZdZd Zd Zy)_TornadoFuturez2Subclass Tornado Future, reinstating cancellation.c                 X    | j                         ry| j                  t                      y)NFT)doneset_exceptionr
   selfs    r   cancelz_TornadoFuture.cancel   s"    99;>+,r   c                 b    | j                         xr t        | j                         t              S N)r   
isinstance	exceptionr
   r   s    r   	cancelledz_TornadoFuture.cancelled$   s!    yy{Kz$..*:NKKr   N)r   r   r   __doc__r   r   r   r   r   r   r      s    <Lr   r   c                       e Zd Zd Zd Zy)_CancellableTornadoTimeoutc                      || _         || _        y r   )looptimeout)r   r"   r#   s      r   __init__z#_CancellableTornadoTimeout.__init__)   s    	r   c                 N    | j                   j                  | j                         y r   )r"   remove_timeoutr#   r   s    r   r   z!_CancellableTornadoTimeout.cancel-   s    		  .r   N)r   r   r   r$   r   r   r   r   r    r    (   s    /r   r    c                   r    e Zd ZU eZeej                     ed<   e	j                  Ze	j                  Zd Zd Zy)_AsyncTornado_Futurec                 *    t        j                         S r   )r   currentr   s    r   _default_loopz_AsyncTornado._default_loop9   s    ~~r   c                 ^    | j                         }|j                  ||      }t        ||      S r   )	_get_loop
call_laterr    )r   delaycallbackio_loopr#   s        r   _call_laterz_AsyncTornado._call_later<   s-    .."$$UH5)'7;;r   N)r   r   r   r   r)   r   asyncior   __annotations__r   READ_READWRITE_WRITEr,   r3   r   r   r   r(   r(   4   s1    $2GT'..!2KKE\\F <r   r(   c                       e Zd Zd Zd Zy)Pollerc                 2    |j                  |fd|       y)z"Schedule callback for a raw socketc                              S r   r   )argsfs    r   <lambda>z*Poller._watch_raw_socket.<locals>.<lambda>E   s	    qs r   N)add_handler)r   r"   socketevtr?   s       `r   _watch_raw_socketzPoller._watch_raw_socketC   s    !2C8r   c                 4    |D ]  }|j                  |        y)z$Unschedule callback for a raw socketN)remove_handler)r   r"   socketsrB   s       r   _unwatch_raw_socketszPoller._unwatch_raw_socketsG   s     	(F'	(r   N)r   r   r   rD   rH   r   r   r   r;   r;   B   s    9(r   r;   c                       e Zd ZeZy)SocketN)r   r   r   r;   _poller_classr   r   r   rJ   rJ   M   s    Mr   rJ   c                   H     e Zd ZdZdZed        Zdd dededdf fdZ xZ	S )ContextNc                     t        | |      S r   )rJ   )r   socket_types     r   _socket_classzContext._socket_class[   s    dK((r   r   r>   kwargsreturnc                     |j                  dd       }|3t        j                  | j                  j                   dt
        d       t        |   |i | y )Nr2   z^(io_loop) argument is deprecated in pyzmq 22.2. The currently active loop will always be used.   )
stacklevel)popwarningswarn	__class__r   DeprecationWarningsuperr$   )r   r>   rQ   r2   rY   s       r   r$   zContext.__init___   s[    **Y-MM>>**+ ,B B"	 	$)&)r   )
r   r   r   	_instancer2   staticmethodrP   r   r$   __classcell__)rY   s   @r   rM   rM   T   sG     IG) )	*y 	* 	* 	* 	* 	*r   rM   )r   r4   rW   typingr   r   tornado.concurrentr   tornado.ioloopr   zmq_zmqzmq._futurer   r   	Exceptionr
   r   r    r(   r;   rJ   rP   rM   r   r   r   <module>rf      s       % !  2	Y 	
LV 
L/ /< <(]L (]L   *dll6" *r   