§
    ‹Ÿj×  ã                  óÆ   — d Z ddlmZ ddlZddlmZmZmZ ddlZddl	Zddl
mZ  G d„ de¦  «        Zdd„Zdd„Ze	 ddd„¦   «         Ze	 dd d„¦   «         Z	 dd!d„ZddgZdS )"zJModule holding utility and convenience functions for zmq event monitoring.é    )ÚannotationsN)Ú	AwaitableÚ	TypedDictÚoverload)Ú_check_versionc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú_MonitorMessageÚintÚeventÚvalueÚbytesÚendpointN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú^/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/zmq/utils/monitor.pyr	   r	      s+   € € € € € € Ø€J€J�JØ€J€J�JØ€O€O�O€O€Or   r	   Úmsgúlist[bytes]Úreturnc                ó  — t          | ¦  «        dk    st          | d         ¦  «        dk    rt          d| › �¦  «        ‚t          j        d| d         ¦  «        \  }}t	          j        |¦  «        t	          j        |¦  «        | d         dœ}|S )aÄ  decode zmq_monitor event messages.

    Parameters
    ----------
    msg : list(bytes)
        zmq multipart message that has arrived on a monitor PAIR socket.

        First frame is::

            16 bit event id
            32 bit event value
            no padding

        Second frame is the endpoint as a bytestring

    Returns
    -------
    event : dict
        event description as dict with the keys `event`, `value`, and `endpoint`.
    é   r   é   zInvalid event message format: z=hié   )r   r   r   )ÚlenÚRuntimeErrorÚstructÚunpackÚzmqÚEvent)r   Úevent_idr   r   s       r   Úparse_monitor_messager$      s‹   € õ* ˆ3�x„x�1‚}€}�˜C œF™œ qÒ(Ð(ÝÐA¸CÐAÐAÑBÔBÐBÝ”m E¨3¨q¬6Ñ2Ô2�O€Hˆeå”˜8Ñ$Ô$Ý”˜5Ñ!Ô!Ø˜”Fðð €Eð
 €Lr   Úawaitable_msgúAwaitable[list[bytes]]c              ƒ  ó4   K  — | ƒ d{V —†}t          |¦  «        S )zyLike parse_monitor_msg, but awaitable

    Given awaitable message, return awaitable for the parsed monitor message.
    N)r$   )r%   r   s     r   Ú_parse_monitor_msg_asyncr(   6   s-   è è € ð Ð
Ð
Ð
Ð
Ð
Ð
€Cå  Ñ%Ô%Ð%r   Úsocketúzmq.asyncio.SocketÚflagsr
   úAwaitable[_MonitorMessage]c                ó   — d S ©Nr   ©r)   r+   s     r   Úrecv_monitor_messager0   C   s	   € ð "% r   úzmq.Socket[bytes]c                ó   — d S r.   r   r/   s     r   r0   r0   J   s	   € ð �cr   ú
zmq.Socketú,_MonitorMessage | Awaitable[_MonitorMessage]c                ó²   — t          dd¦  «         |                      |¦  «        }t          |t          ¦  «        rt	          |¦  «        S t          |¦  «        S )u�  Receive and decode the given raw message from the monitoring socket and return a dict.

    Requires libzmq â‰¥ 4.0

    The returned dict will have the following entries:
      event : int
        the event id as described in `libzmq.zmq_socket_monitor`
      value : int
        the event value associated with the event, see `libzmq.zmq_socket_monitor`
      endpoint : str
        the affected endpoint

    .. versionchanged:: 23.1
        Support for async sockets added.
        When called with a async socket,
        returns an awaitable for the monitor message.

    Parameters
    ----------
    socket : zmq.Socket
        The PAIR socket (created by other.get_monitor_socket()) on which to recv the message
    flags : int
        standard zmq recv flags

    Returns
    -------
    event : dict
        event description as dict with the keys `event`, `value`, and `endpoint`.
    )é   r   zlibzmq event API)r   Úrecv_multipartÚ
isinstancer   r(   r$   )r)   r+   r   s      r   r0   r0   Q   s[   € õD �6Ð-Ñ.Ô.Ð.à
×
Ò
 Ñ
&Ô
&€Cõ �#•yÑ!Ô!ð -Ý'¨Ñ,Ô,Ð,õ ! Ñ%Ô%Ð%r   r$   r0   )r   r   r   r	   )r%   r&   r   r	   )r   )r)   r*   r+   r
   r   r,   )r)   r1   r+   r
   r   r	   )r)   r3   r+   r
   r   r4   )Ú__doc__Ú
__future__r   r   Útypingr   r   r   r!   Úzmq.asyncioÚ	zmq.errorr   r	   r$   r(   r0   Ú__all__r   r   r   ú<module>r?      sD  ðØ PÐ Pð
 #Ð "Ð "Ð "Ð "Ð "à €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à 
€
€
€
Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð �iñ ô ð ðð ð ð ð@
&ð 
&ð 
&ð 
&ð 
ð ð%ð %ð %ð %ñ 
„ð%ð 
ð ðð ð ð ñ 
„ðð ð,&ð ,&ð ,&ð ,&ð ,&ð^ #Ð$:Ð
;€€€r   