
    f                        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e      ZddZdada G d de      Z	 d	 	 	 ddZg dZy)z 0MQ Error classes and functions.    )annotations)EINTRc                      e Zd ZdZy)ZMQBaseErrorz.Base exception class for 0MQ errors in Python.N__name__
__module____qualname____doc__     D/var/www/cvtools/html/venv/lib/python3.12/site-packages/zmq/error.pyr   r   
   s    8r   r   c                  :    e Zd ZU dZdZded<   dd	dZd
dZd
dZy)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errnoc                    ddl m}m} | |       }t        |t              r|| _        | ||      | _        y|| _        y|t        |      | _        y|| _        y)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   )strerror	zmq_errnoN)zmq.backendr   r   
isinstanceintr   str)selfr   msgr   r   s        r   __init__zZMQError.__init__   sR     	4=KEeS!DJ{ ( #{ #E
 #r   c                    | j                   S N)r   r   s    r   __str__zZMQError.__str__<   s    }}r   c                L    | j                   j                   dt        |        dS )Nz(''))	__class__r   r   r   s    r   __repr__zZMQError.__repr__?   s$    ..))*"SYKr::r   )NN)r   r   r   z
str | None)returnr   )	r   r	   r
   r   r   __annotations__r   r    r$   r   r   r   r   r      s#    	 E:$@;r   r   c                      e Zd ZdZy)ZMQBindErrorznAn error for ``Socket.bind_to_random_port()``.

    See Also
    --------
    .Socket.bind_to_random_port
    Nr   r   r   r   r(   r(   C       r   r(   c                      e Zd ZdZy)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+   L   r)   r   r+   c                  $     e Zd ZdZd fd	Z xZS )ContextTerminatedz6Wrapper for zmq.ETERM

    .. versionadded:: 13.0
    c                0    ddl m} t        |   |       y )Nr   )ETERM)zmqr/   superr   )r   r   r   r/   r#   s       r   r   zContextTerminated.__init__[   s    r   ignoredr3   r   r	   r
   r   r   __classcell__r#   s   @r   r-   r-   U   s    
   r   r-   c                  $     e Zd ZdZd fd	Z xZS )Againz7Wrapper for zmq.EAGAIN

    .. versionadded:: 13.0
    c                0    ddl m} t        |   |       y )Nr   )EAGAIN)r0   r:   r1   r   )r   r   r   r:   r#   s       r   r   zAgain.__init__g   s     r   r2   r4   r6   s   @r   r8   r8   a   s    
! !r   r8   c                  2     e Zd ZdZeZ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
    c                ,    t         |   t               y r   )r1   r   r   )r   r   r   r#   s      r   r   zInterruptedSystemCall.__init__x   s    r   c                *    t         |          }|dz   S )NzB: This call should have been retried. Please report this to pyzmq.)r1   r    )r   sr#   s     r   r    zInterruptedSystemCall.__str__{   s    GOWWWr   r2   )	r   r	   r
   r   r   r   r   r    r5   r6   s   @r   r<   r<   m   s      E X Xr   r<   Nc                    | dk(  r^|ddl m}  |       }|dk(  r|syddlm}m} |t
        k(  rt        |      ||k(  rt        |      ||k(  rt        |      t        |      y)zhinternal utility for checking zmq return condition

    and raising the appropriate Exception class
    Nr   )r   )r:   r/   )
r   r   r0   r:   r/   r   r<   r8   r-   r   )rcr   error_without_errnor   r:   r/   s         r   	_check_rcrD      sn    
 
Rx=-KEA:1%E>'..f_,e^#E**5/!! r   c                  *    e Zd ZdZdZdddZd Zd Zy)ZMQVersionErrorzgRaised when a feature is not provided by the linked version of libzmq.

    .. versionadded:: 14.2
    Nc                \    t         ddlm}  |       a || _        || _        t         | _        y )Nr   )zmq_version)_zmq_versionr0   rH   r   min_versionversion)r   rJ   r   rH   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    "3t9+R00r   c                R    | j                    d| j                   d| j                   S )Nz requires libzmq >= z, have )r   rJ   rK   r   s    r   r    zZMQVersionError.__str__   s)    ((/0@0@/AWWr   Feature)rJ   r   r   r   )r   r	   r
   r   rJ   r   r$   r    r   r   r   rF   rF      s    
 K$1Xr   rF   c                    t         ddlm}  |       a t         | k  r$dj                  d | D              }t	        ||      y)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  2   K   | ]  }t        |        y wr   rM   ).0vs     r   	<genexpr>z!_check_version.<locals>.<genexpr>   s     @!s1v@s   )_zmq_version_infor0   rR   joinrF   )min_version_infor   rR   rJ   s       r   _check_versionr[      sF      (,.++hh@/?@@k3// ,r   )r   r(   r   r+   r-   r<   r8   rF   )NTrO   )rZ   z3tuple[int] | tuple[int, int] | tuple[int, int, int]r   r   )r   
__future__r   r   r   	Exceptionr   r   r(   r+   r-   r8   InterruptedErrorr<   rD   rX   rI   NotImplementedErrorrF   r[   __all__r   r   r   <module>ra      s    & # 99 92;| 2;j< l 	  	 	!H 	!XH&6 X&"0  X) X6 0I0	0(	r   