
    Rǻi                     f    d dl mZ d dlmZ  G d d      ZeZd Zed        Zd Z	d Z
ed	        Zy
)    )contextmanager)	monotonicc                   b    e Zd Zd Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zed
        Zd Zy)Deadlinec                     ||t        d      k(  rt        d      | _        || _        y t               |z   | _        || _        y )Ninf)float	_deadliner   _original_timeoutselftimeouts     M/opt/lhia/marcimex/agent/venv/lib/python3.12/site-packages/neo4j/_deadline.py__init__zDeadline.__init__   s?    ?gu5"5\DN ") '[72DN!(    c                     | j                   S Nr   r   s    r   original_timeoutzDeadline.original_timeout   s    %%%r   c                 (    | j                         dk(  S )Nr   )
to_timeoutr   s    r   expiredzDeadline.expired!   s     A%%r   c                 z    | j                   t        d      k(  ry | j                   t               z
  }t        d|      S )Nr   r   )r
   r	   r   maxr   s     r   r   zDeadline.to_timeout$   s1    >>U5\)..9;.1gr   c                 `    t        |t              r| j                  |j                  k(  S t        S r   
isinstancer   r
   NotImplementedr   others     r   __eq__zDeadline.__eq__*   %    eX&>>U__44r   c                 `    t        |t              r| j                  |j                  kD  S t        S r   r   r    s     r   __gt__zDeadline.__gt__/   %    eX&>>EOO33r   c                 `    t        |t              r| j                  |j                  k\  S t        S r   r   r    s     r   __ge__zDeadline.__ge__4   r#   r   c                 `    t        |t              r| j                  |j                  k  S t        S r   r   r    s     r   __lt__zDeadline.__lt__9   r&   r   c                 `    t        |t              r| j                  |j                  k  S t        S r   r   r    s     r   __le__zDeadline.__le__>   r#   r   c                 .    t        ||       r|S  | |      S r   )r   )clsr   s     r   from_timeout_or_deadlinez!Deadline.from_timeout_or_deadlineC   s    gs#N7|r   c                 "    d| j                    dS )NzDeadline(timeout=)r   r   s    r   __str__zDeadline.__str__I   s    "4#9#9":!<<r   N)__name__
__module____qualname__r   propertyr   r   r   r"   r%   r(   r*   r,   classmethodr/   r2    r   r   r   r      sW    ) & &&




  
=r   r   c                  L    t        t        j                  |       }t        |      S r   )mapr   r/   merge_deadlines)deadline	deadliness     r   merge_deadlines_and_timeoutsr>   P   s    H55x@I9%%r   c              #      K   t        | |      5  t        | |      5  d  d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wwr   )connection_read_deadlineconnection_write_deadline
connectionr<   s     r   connection_deadlinerD   U   sJ      	!X6!*h7 		     s)   A
>2>	A
;	>AA
c                 l    t        || j                  j                  | j                  j                        S r   )_connection_deadline_wrappersocketget_read_deadlineset_read_deadlinerB   s     r   r@   r@   ^   s0    '++++ r   c                 l    t        || j                  j                  | j                  j                        S r   )rF   rG   get_write_deadlineset_write_deadlinerB   s     r   rA   rA   f   s0    ',,,, r   c              #      K   | d  y  |       }t        d | |fD              }  ||        	 d   ||       y #  ||       w xY ww)Nc              3   &   K   | ]	  }||  y wr   r8   ).0ds     r   	<genexpr>z/_connection_deadline_wrapper.<locals>.<genexpr>u   s      AMs   )r;   )r<   deadline_getterdeadline_setteroriginal_deadlines       r   rF   rF   n   s\     ') /0 H H+)*)*s   +A; 	A
AAN)
contextlibr   timer   r   minr;   r>   rD   r@   rA   rF   r8   r   r   <module>rX      sV   " & 5= 5=p &
   + +r   