
    MhI                    D   d Z ddlmZ ddlmZ  G d de          Z G d de          Z G d d	e          Z	 G d
 de          Z
 G d de          Z G d de	          Z G d de	          Z G d de	e          Zd dZdada G d de          Z	 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	Z xZS )DraftFDWarningzRWarning for using experimental FD on draft sockets.

    .. versionadded:: 27
     c                R    |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__s     I/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/zmq/error.pyr
   zDraftFDWarning.__init__   s6     	q 
 	    )r   __name__
__module____qualname____doc__r
   __classcell__r   s   @r   r   r   
   sG         
         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      s        8888r   r   c                  F    e Zd ZU dZdZded<   ded<   ddd	ZddZ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                    ddl m}m} |
 |            }t          |t                    r$|| _        | ||          | _        dS || _        dS |t          |          | _        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#   s        r   r
   zZMQError.__init__-   s     	43333333=IKKEeS!! 
	$DJ{ ( #{ #E

 #r   returnc                    | j         S N)r    r   s    r   __str__zZMQError.__str__M   s
    }r   c                @    | j         j         dt          |            dS )Nz(''))r   r   r   r*   s    r   __repr__zZMQError.__repr__P   s$    .)::SYY::::r   )NN)r   r   r   r!   )r'   r   )	r   r   r   r   r   __annotations__r
   r+   r.   r   r   r   r   r      s~         	 	 EMMM$ $ $ $ $@   ; ; ; ; ; ;r   r   c                      e Zd ZdZdS )ZMQBindErrorznAn error for ``Socket.bind_to_random_port()``.

    See Also
    --------
    .Socket.bind_to_random_port
    Nr   r   r   r   r1   r1   T              r   r1   c                      e Zd ZdZdS )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   r4   r4   ]   r2   r   r4   c                  $     e Zd ZdZd fd	Z xZS )ContextTerminatedz6Wrapper for zmq.ETERM

    .. versionadded:: 13.0
    ignoredc                V    ddl m} t                                          |           d S )Nr   )ETERM)zmqr9   r	   r
   )r   r   r   r9   r   s       r   r
   zContextTerminated.__init__l   s3    r   r7   r7   r   r   s   @r   r6   r6   f   sG         
                   r   r6   c                  $     e Zd ZdZd fd	Z xZS )Againz7Wrapper for zmq.EAGAIN

    .. versionadded:: 13.0
    r7   c                V    ddl m} t                                          |           d S )Nr   )EAGAIN)r:   r?   r	   r
   )r   r   r   r?   r   s       r   r
   zAgain.__init__x   s3         r   r;   r   r   s   @r   r=   r=   r   sG         
! ! ! ! ! ! ! ! ! !r   r=   c                  >     e Zd ZU dZeZded<   d fd	Z fdZ x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    r7   c                T    t                                          t                     d S r)   )r	   r
   r   )r   r   r   r   s      r   r
   zInterruptedSystemCall.__init__   s!    r   c                N    t                                                      }|dz   S )NzB: This call should have been retried. Please report this to pyzmq.)r	   r+   )r   sr   s     r   r+   zInterruptedSystemCall.__str__   s"    GGOOWWWr   r;   )
r   r   r   r   r   r   r/   r
   r+   r   r   s   @r   rA   rA   ~   s{           EMMM           X X X X X X X X Xr   rA   NTc                    | dk    rw|ddl m}  |            }|dk    r|sdS ddlm}m} |t
          k    rt          |          ||k    rt          |          ||k    rt          |          t          |          dS )zhinternal utility for checking zmq return condition

    and raising the appropriate Exception class
    Nr   )r#   )r?   r9   )
r$   r#   r:   r?   r9   r   rA   r=   r6   r   )rcr   error_without_errnor#   r?   r9   s         r   	_check_rcrI      s    
 
Rxx=------IKKEA::1:F%%%%%%%%E>>'...f__,,e^^#E***5//!! xr   c                  ,    e Zd ZdZdZd
ddZd Z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                h    t           ddlm}  |            a || _        || _        t           | _        d S )Nr   )zmq_version)_zmq_versionr:   rO   r   rM   version)r   rM   r   rO   s       r   r
   zZMQVersionError.__init__   s?    ''''''&;==L&#r   c                (    dt          |            dS )NzZMQVersionError('r-   r   r*   s    r   r.   zZMQVersionError.__repr__   s    03t990000r   c                4    | j          d| j         d| j         S )Nz requires libzmq >= z, have )r   rM   rQ   r*   s    r   r+   zZMQVersionError.__str__   s%    (WW0@WWWWWr   rL   )rM   r   r   r   )r   r   r   r   rM   r
   r.   r+   r   r   r   rK   rK      sa         
 K$ $ $ $ $1 1 1X X X X Xr   rK   rL   min_version_info3tuple[int] | tuple[int, int] | tuple[int, int, int]r   r   c                    t           ddlm}  |            a t           | k     r/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              3  4   K   | ]}t          |          V  d S r)   rS   ).0vs     r   	<genexpr>z!_check_version.<locals>.<genexpr>   s(      @@!s1vv@@@@@@r   )_zmq_version_infor:   rY   joinrK   )rV   r   rY   rM   s       r   _check_versionra      sp      ((((((,,..+++hh@@/?@@@@@k3/// ,+r   )	r   r   r1   r   r4   r6   rA   r=   rK   )NTrU   )rV   rW   r   r   )r   
__future__r   r   r   RuntimeWarningr   	Exceptionr   r   r1   r4   r6   r=   InterruptedErrorrA   rI   r_   rP   NotImplementedErrorrK   ra   __all__r   r   r   <module>rh      s   & & # " " " " "          ^    9 9 9 9 99 9 9 93; 3; 3; 3; 3;| 3; 3; 3;l    <       l   	  	  	  	  	  	  	  	 	! 	! 	! 	! 	!H 	! 	! 	!X X X X XH&6 X X X(" " " "0  X X X X X) X X X6 0 0 0 0 0(
 
 
r   