
    mBNj                        d dl mZ d dlmZ d dlmZ ddlmZ ej                  rddl
mZ ddlmZ  G d d	      ZeZ	 	 	 	 dd
Ze	 	 	 	 	 	 dd       Z	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZe	 	 	 	 	 	 	 	 dd       Zy)    )annotations)contextmanager)	monotonic   )_typing)	AsyncBolt)Boltc                      e Zd ZddZedd       ZddZddZddZddZ	ddZ
ddZdd	Ze	 	 	 	 dd
       ZddZddZy)Deadlinec                    ||t        d      k(  rt        d      | _        || _        y t               |z   | _        || _        y )Ninf)float	_deadliner   _original_timeoutselftimeouts     `/Users/ahmed/devFolder/Ultron/claude-voice/.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__3   %    eX&>>U__44r   c                `    t        |t              r| j                  |j                  kD  S t        S r   r"   r%   s     r   __gt__zDeadline.__gt__8   %    eX&>>EOO33r   c                `    t        |t              r| j                  |j                  k\  S t        S r   r"   r%   s     r   __ge__zDeadline.__ge__=   r(   r   c                `    t        |t              r| j                  |j                  k  S t        S r   r"   r%   s     r   __lt__zDeadline.__lt__B   r+   r   c                `    t        |t              r| j                  |j                  k  S t        S r   r"   r%   s     r   __le__zDeadline.__le__G   r(   r   c                F    t        |t        t        f      s| | |      S |S r   )r#   r   int)clsr   s     r   from_timeout_or_deadlinez!Deadline.from_timeout_or_deadlineL   s%     gs|,w<r   c                "    d| j                    dS )NzDeadline(timeout=)r   r   s    r   __str__zDeadline.__str__T   s    "4#9#9":!<<r   c                2    | j                   t        d      k7  S )z@Whether a deadline is set (:data:`True`) or not (:data:`False`).r   )r   r   r   s    r   __bool__zDeadline.__bool__W   s    ~~u--r   N)r   float | NonereturnNone)r<   r;   )r<   bool)r   zt.Self | float | Noner<   zt.Self)r<   str)__name__
__module____qualname__r   propertyr   r   r   r'   r*   r-   r/   r1   classmethodr5   r8   r:    r   r   r   r      sl    ) & &&




 +	 =.r   r   c                 L    t        t        j                  |       }t        |      S r   )mapr   r5   merge_deadlines)deadline	deadliness     r   merge_deadlines_and_timeoutsrK   _   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
connectionrI   s     r   connection_deadlinerQ   f   s;      	!X6!*h7 	8 	7677 	76s)   A
>2>	A
;	>AA
c                l    t        || j                  j                  | j                  j                        S r   )_connection_deadline_wrappersocketget_read_deadlineset_read_deadlinerO   s     r   rM   rM   r   s2     (++++ r   c                l    t        || j                  j                  | j                  j                        S r   )rS   rT   get_write_deadlineset_write_deadlinerO   s     r   rN   rN   }   s2     (,,,, r   c              #     K   | d  y  |       }t        d | |fD              }  ||        	 d   ||       y #  ||       w xY ww)Nc              3  &   K   | ]	  }||  y wr   rE   ).0ds     r   	<genexpr>z/_connection_deadline_wrapper.<locals>.<genexpr>   s      0aAM0s   )rH   )rI   deadline_getterdeadline_setteroriginal_deadlines       r   rS   rS      s^      ') /0 H H+)*)*s   +A; 	A
AAN)rI   Deadline | Noner<   r   )rP   AsyncBolt | BoltrI   rb   r<   t.Generator[None])rP   rc   rI   rb   r<   zt.AbstractContextManager[None])rI   rb   r_   zt.Callable[[], Deadline]r`   z#t.Callable[[Deadline | None], None]r<   rd   )
__future__r   
contextlibr   timer    r   tTYPE_CHECKING	_async.ior   _sync.ior	   r   minrH   rK   rQ   rM   rN   rS   rE   r   r   <module>rn      s   " # %   ??$;. ;.| &&&      $  $ ++-+ 9+ 	+ +r   