
    Zd	
                     B   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dS )zUFuture-returning APIs for tornado coroutines.

.. seealso::

    :mod:`zmq.asyncio`

    N)AnyType)Future)IOLoop)_AsyncPoller_AsyncSocketc                       e Zd ZdS )CancelledErrorN)__name__
__module____qualname__     4lib/python3.11/site-packages/zmq/eventloop/future.pyr
   r
      s        Dr   r
   c                       e Zd ZdZd Zd ZdS )_TornadoFuturez2Subclass Tornado Future, reinstating cancellation.c                 t    |                                  rdS |                     t                                 dS )NFT)doneset_exceptionr
   selfs    r   cancelz_TornadoFuture.cancel   s6    99;; 	5>++,,,tr   c                 x    |                                  o&t          |                                 t                    S N)r   
isinstance	exceptionr
   r   s    r   	cancelledz_TornadoFuture.cancelled$   s)    yy{{Kz$..*:*:NKKKr   N)r   r   r   __doc__r   r   r   r   r   r   r      s=        <<  L L L L Lr   r   c                       e Zd Zd Zd ZdS )_CancellableTornadoTimeoutc                 "    || _         || _        d S r   )looptimeout)r   r"   r#   s      r   __init__z#_CancellableTornadoTimeout.__init__)   s    	r   c                 D    | j                             | j                   d S r   )r"   remove_timeoutr#   r   s    r   r   z!_CancellableTornadoTimeout.cancel-   s     	  .....r   N)r   r   r   r$   r   r   r   r   r    r    (   s2          / / / / /r   r    c                   \    e Zd ZU eZeej                 ed<   e	j
        Ze	j        Zd Zd ZdS )_AsyncTornado_Futurec                 (    t          j                    S r   )r   currentr   s    r   _default_loopz_AsyncTornado._default_loop9   s    ~r   c                 v    |                                  }|                    ||          }t          ||          S r   )	_get_loop
call_laterr    )r   delaycallbackio_loopr#   s        r   _call_laterz_AsyncTornado._call_later<   s6    ..""$$UH55)'7;;;r   N)r   r   r   r   r)   r   asyncior   __annotations__r   READ_READWRITE_WRITEr,   r3   r   r   r   r(   r(   4   sY         $2GT'.!222KE\F     < < < < <r   r(   c                       e Zd Zd Zd ZdS )Pollerc                 <    |                     |fd|           dS )z"Schedule callback for a raw socketc                                   S r   r   )argsfs    r   <lambda>z*Poller._watch_raw_socket.<locals>.<lambda>E   s    qqss r   N)add_handler)r   r"   socketevtr?   s       `r   _watch_raw_socketzPoller._watch_raw_socketC   s+    !2!2!2!2C88888r   c                 :    |D ]}|                     |           dS )z$Unschedule callback for a raw socketN)remove_handler)r   r"   socketsrB   s       r   _unwatch_raw_socketszPoller._unwatch_raw_socketsG   s2     	( 	(F''''	( 	(r   N)r   r   r   rD   rH   r   r   r   r;   r;   B   s2        9 9 9( ( ( ( (r   r;   c                       e Zd ZeZdS )SocketN)r   r   r   r;   _poller_classr   r   r   rJ   rJ   M   s        MMMr   rJ   c                   N     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_classZ   s    dK(((r   r   r>   kwargsreturnc                     |                     dd           }|)t          j        | j        j         dt
          d            t                      j        |i | d S )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__^   sy    **Y--M>* B B B"	    	$)&)))))r   )
r   r   r   	_instancer2   staticmethodrP   r   r$   __classcell__)rY   s   @r   rM   rM   T   s|        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 2 2 2 2 2 2 2	 	 	 	 	Y 	 	 	
L 
L 
L 
L 
LV 
L 
L 
L/ / / / / / / /< < < < < < < <( ( ( ( (]L ( ( (    ]L     * * * * *dl6" * * * * *r   