o
    ڷiI                     @  s   d Z ddlmZ ddlmZ G dd deZG dd deZG dd	 d	eZ	G d
d deZ
G dd deZG dd de	ZG dd de	ZG dd de	eZd"ddZdadaG dd deZ	d#d$dd Zg d!ZdS )%z 0MQ Error classes and functions.    )annotations)EINTRc                      "   e Zd ZdZd fdd	Z  ZS )DraftFDWarningzRWarning for using experimental FD on draft sockets.

    .. versionadded:: 27
     c                   s   |sd}t  | d S )Na!  pyzmq's back-fill socket.FD support on thread-safe sockets is experimental, and may be removed. This warning will go away automatically if/when libzmq implements socket.FD on thread-safe sockets. You can suppress this warning with `warnings.simplefilter('ignore', zmq.error.DraftFDWarning))super__init__)selfmsg	__class__ ?/home/ubuntu/vllm_env/lib/python3.10/site-packages/zmq/error.pyr      s   zDraftFDWarning.__init__)r   __name__
__module____qualname____doc__r   __classcell__r   r   r   r   r   
       r   c                   @     e Zd ZdZdS )ZMQBaseErrorz.Base exception class for 0MQ errors in Python.Nr   r   r   r   r   r   r   r   r          r   c                   @  sF   e Zd ZU dZdZded< ded< ddd	d
ZdddZdddZdS )ZMQErrorzWrap an errno style error.

    Parameters
    ----------
    errno : int
        The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
        used.
    msg : str
        Description of the error or None.
    N
int | Noneerrnostrstrerrorr
   
str | Nonec                 C  sn   ddl m}m} |du r| }t|tr'|| _|du r"||| _dS || _dS |du r2t|| _dS || _dS )a  Wrap an errno style error.

        Parameters
        ----------
        errno : int
            The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
            used.
        msg : string
            Description of the error or None.
        r   )r   	zmq_errnoN)zmq.backendr   r    
isinstanceintr   r   )r	   r   r
   r   r    r   r   r   r   -   s   


zZMQError.__init__returnc                 C  s   | j S N)r   r	   r   r   r   __str__M   s   zZMQError.__str__c                 C  s   | j j dt|  dS )Nz(''))r   r   r   r&   r   r   r   __repr__P   s   zZMQError.__repr__)NN)r   r   r
   r   )r$   r   )	r   r   r   r   r   __annotations__r   r'   r)   r   r   r   r   r      s   
 
 r   c                   @  r   )ZMQBindErrorznAn error for ``Socket.bind_to_random_port()``.

    See Also
    --------
    .Socket.bind_to_random_port
    Nr   r   r   r   r   r+   T   r   r+   c                   @  r   )NotDonezRaised when timeout is reached while waiting for 0MQ to finish with a Message

    See Also
    --------
    .MessageTracker.wait : object for tracking when ZeroMQ is done
    Nr   r   r   r   r   r,   ]   r   r,   c                      r   )ContextTerminatedz6Wrapper for zmq.ETERM

    .. versionadded:: 13.0
    ignoredc                      ddl m} t | d S )Nr   )ETERM)zmqr0   r   r   )r	   r   r
   r0   r   r   r   r   l      zContextTerminated.__init__r.   r.   r   r   r   r   r   r-   f   r   r-   c                      r   )Againz7Wrapper for zmq.EAGAIN

    .. versionadded:: 13.0
    r.   c                   r/   )Nr   )EAGAIN)r1   r5   r   r   )r	   r   r
   r5   r   r   r   r   x   r2   zAgain.__init__r3   r   r   r   r   r   r4   r   r   r4   c                      s<   e Zd ZU dZeZded< d	 fdd	Z fddZ  Z	S )
InterruptedSystemCallzWrapper for EINTR

    This exception should be caught internally in pyzmq
    to retry system calls, and not propagate to the user.

    .. versionadded:: 14.7
    r   r   r.   c                   s   t  t d S r%   )r   r   r   )r	   r   r
   r   r   r   r         zInterruptedSystemCall.__init__c                   s   t   }|d S )NzB: This call should have been retried. Please report this to pyzmq.)r   r'   )r	   sr   r   r   r'      s   
zInterruptedSystemCall.__str__r3   )
r   r   r   r   r   r   r*   r   r'   r   r   r   r   r   r6   ~   s   
 r6   NTc                 C  s~   | dkr=|du rddl m} | }|dkr|sdS ddlm}m} |tkr)t|||kr1t|||kr9t|t	|dS )zhinternal utility for checking zmq return condition

    and raising the appropriate Exception class
    Nr   )r    )r5   r0   )
r!   r    r1   r5   r0   r   r6   r4   r-   r   )rcr   error_without_errnor    r5   r0   r   r   r   	_check_rc   s   r<   c                   @  s0   e Zd ZdZdZddddZd	d
 Zdd ZdS )ZMQVersionErrorzgRaised when a feature is not provided by the linked version of libzmq.

    .. versionadded:: 14.2
    NFeaturemin_versionr   r
   c                 C  s0   t d u rddlm} | a || _|| _t | _d S )Nr   )zmq_version)_zmq_versionr1   r@   r
   r?   version)r	   r?   r
   r@   r   r   r   r      s   
zZMQVersionError.__init__c                 C  s   dt |  dS )NzZMQVersionError('r(   r   r&   r   r   r   r)      r7   zZMQVersionError.__repr__c                 C  s   | j  d| j d| j S )Nz requires libzmq >= z, have )r
   r?   rB   r&   r   r   r   r'      s   zZMQVersionError.__str__r>   )r?   r   r
   r   )r   r   r   r   r?   r   r)   r'   r   r   r   r   r=      s    
r=   r>   min_version_info3tuple[int] | tuple[int, int] | tuple[int, int, int]r
   r   c                 C  sD   t du rddlm} | a t | k r ddd | D }t||dS )zCheck for libzmq

    raises ZMQVersionError if current zmq version is not at least min_version

    min_version_info is a tuple of integers, and will be compared against zmq.zmq_version_info().
    Nr   )zmq_version_info.c                 s  s    | ]}t |V  qd S r%   rC   ).0vr   r   r   	<genexpr>   s    z!_check_version.<locals>.<genexpr>)_zmq_version_infor1   rG   joinr=   )rE   r
   rG   r?   r   r   r   _check_version   s   
rN   )	r   r   r+   r   r,   r-   r6   r4   r=   )NTrD   )rE   rF   r
   r   )r   
__future__r   r   r   RuntimeWarningr   	Exceptionr   r   r+   r,   r-   r4   InterruptedErrorr6   r<   rL   rA   NotImplementedErrorr=   rN   __all__r   r   r   r   <module>   s$    6		
