§
    ‹ŸjI  ã                  ó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     €úV/var/www/finuniver-perm.ru/html/student/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 )ÚZMQErrorzàWrap 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àˆ=Ø�I‘K”KˆEÝ�e�SÑ!Ô!ð 
	$ØˆDŒJØˆ{Ø ( ¨¡¤�”��à #�”��àˆ{Ý # 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°©Y¬YÐ:Ð:Ð:Ð:r   )NN)r   r   r   r!   )r'   r   )	r   r   r   r   r   Ú__annotations__r
   r+   r.   r   r   r   r   r      s~   € € € € € € ð	ð 	ð €EÐÐÐÑØ€M€M�Mð$ð $ð $ð $ð $ð@ð ð ð ð;ð ;ð ;ð ;ð ;ð ;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 )ÚNotDonez°Raised 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 )ÚInterruptedSystemCallz¥Wrapper 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"   ø€ Ý‰GŒG�OŠOÑÔˆØÐWÑWÐWr   r;   )
r   r   r   r   r   r   r/   r
   r+   r   r   s   @r   rA   rA   ~   s{   ø€ € € € € € ðð ð €EØ€M€M�Mð ð  ð  ð  ð  ð  ð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°   € ð
 
ˆR‚x€xØˆ=Ø-Ð-Ð-Ð-Ð-Ð-à�I‘K”KˆEØ�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   € Ø0¥3 t¡9¤9Ð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_infoú3tuple[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 )zÇCheck 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(   è è € Ð@Ð@¨!�s 1™vœvÐ@Ð@Ð@Ð@Ð@Ð@r   )Ú_zmq_version_infor:   rY   ÚjoinrK   )rV   r   rY   rM   s       r   Ú_check_versionra   Ç   sp   € õ Ð Ø(Ð(Ð(Ð(Ð(Ð(à,Ð,Ñ.Ô.ÐÝÐ+Ò+Ð+Ø—h’hÐ@Ð@Ð/?Ð@Ñ@Ô@Ñ@Ô@ˆÝ˜k¨3Ñ/Ô/Ð/ð ,Ð+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ð 9�9ñ 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   