o
    Zh4
                     @  s   d Z ddlm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ZddlmZmZ G dd	 d	eZG d
d deZG dd dZG dd dZG dd deeZG dd deeZee_G dd deje ZdS )zUFuture-returning APIs for tornado coroutines.

.. seealso::

    :mod:`zmq.asyncio`

    )annotationsN)Any)Future)IOLoop)_AsyncPoller_AsyncSocketc                   @  s   e Zd ZdS )CancelledErrorN)__name__
__module____qualname__ r   r   K/var/www/html/lang_env/lib/python3.10/site-packages/zmq/eventloop/future.pyr      s    r   c                   @  s    e Zd ZdZdd Zdd ZdS )_TornadoFuturez2Subclass Tornado Future, reinstating cancellation.c                 C  s   |   rdS | t  dS )NFT)doneZset_exceptionr   selfr   r   r   cancel   s   z_TornadoFuture.cancelc                 C  s   |   o
t|  tS N)r   
isinstance	exceptionr   r   r   r   r   	cancelled%   s   z_TornadoFuture.cancelledN)r	   r
   r   __doc__r   r   r   r   r   r   r      s    r   c                   @     e Zd Zdd Zdd ZdS )_CancellableTornadoTimeoutc                 C  s   || _ || _d S r   )looptimeout)r   r   r   r   r   r   __init__*   s   
z#_CancellableTornadoTimeout.__init__c                 C  s   | j | j d S r   )r   Zremove_timeoutr   r   r   r   r   r   .   s   z!_CancellableTornadoTimeout.cancelN)r	   r
   r   r   r   r   r   r   r   r   )       r   c                   @  s6   e Zd ZU eZded< ejZej	Z
dd Zdd ZdS )_AsyncTornadoztype[asyncio.Future]_Futurec                 C  s   t  S r   )r   currentr   r   r   r   _default_loop:   s   z_AsyncTornado._default_loopc                 C  s   |   }|||}t||S r   )Z	_get_loopZ
call_laterr   )r   delaycallbackio_loopr   r   r   r   _call_later=   s   
z_AsyncTornado._call_laterN)r	   r
   r   r   r   __annotations__r   READZ_READWRITEZ_WRITEr!   r%   r   r   r   r   r   5   s   
 r   c                   @  r   )Pollerc                   s   | | fdd| dS )z"Schedule callback for a raw socketc                    s     S r   r   )argsfr   r   <lambda>F   s    z*Poller._watch_raw_socket.<locals>.<lambda>N)add_handler)r   r   socketZevtr,   r   r+   r   _watch_raw_socketD   s   zPoller._watch_raw_socketc                 G  s   |D ]}| | qdS )z$Unschedule callback for a raw socketN)Zremove_handler)r   r   Zsocketsr/   r   r   r   _unwatch_raw_socketsH   s   zPoller._unwatch_raw_socketsN)r	   r
   r   r0   r1   r   r   r   r   r)   C   r   r)   c                   @  s   e Zd ZeZdS )SocketN)r	   r
   r   r)   Z_poller_classr   r   r   r   r2   N   s    r2   c                      s2   e Zd ZdZdZedd Zd fd
dZ  ZS )ContextNc                 C  s
   t | |S r   )r2   )r   socket_typer   r   r   _socket_class[   s   
zContext._socket_classr   r*   r   kwargsreturnNonec                   sD   | dd }|d urtj| jj dtdd t j|i | d S )Nr$   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*   r6   r$   r>   r   r   r   _   s   zContext.__init__)r   r3   r*   r   r6   r   r7   r8   )	r	   r
   r   Z	_instancer$   staticmethodr5   r   __classcell__r   r   rA   r   r3   U   s    
r3   )r   
__future__r   Zasyncior<   typingr   Ztornado.concurrentr   Ztornado.ioloopr   ZzmqZ_zmqZzmq._futurer   r   	Exceptionr   r   r   r   r)   r2   r5   r3   r   r   r   r   <module>   s"    
