§
    ¾<iS  ã                  ó:   — d dl mZ d dlZdgZ G d„ d¦  «        ZdS )é    )ÚannotationsNÚDeadlinec                  ó(   — e Zd ZdZdd„Zddœdd„ZdS )r   zŒ
    Manage timeouts across multiple steps.

    Args:
        timeout: Time available in seconds or :obj:`None` if there is no limit.

    Útimeoutúfloat | NoneÚreturnÚNonec                óV   — |  |€	d | _         d S t          j        ¦   «         |z   | _         d S )N)ÚdeadlineÚtimeÚ	monotonic)Úselfr   s     ú/Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/websockets/sync/utils.pyÚ__init__zDeadline.__init__   s0   € ØÐ#Øˆ?Ø ˆDŒMˆMˆMå œNÑ,Ô,¨wÑ6ˆDŒMˆMˆMó    T)Úraise_if_elapsedr   Úboolc               ó|   — | j         €dS | j         t          j        ¦   «         z
  }|r|dk    rt          d¦  «        ‚|S )aL  
        Calculate a timeout from a deadline.

        Args:
            raise_if_elapsed: Whether to raise :exc:`TimeoutError`
                if the deadline lapsed.

        Raises:
            TimeoutError: If the deadline lapsed.

        Returns:
            Time left in seconds or :obj:`None` if there is no limit.

        Nr   z	timed out)r   r   r   ÚTimeoutError)r   r   r   s      r   r   zDeadline.timeout   sH   € ð Œ=Ð Ø4Ø”-¥$¤.Ñ"2Ô"2Ñ2ˆØð 	, ¨1¢ Ý˜{Ñ+Ô+Ð+Øˆr   N)r   r   r   r	   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r   r   r   r   	   sU   € € € € € ðð ð7ð 7ð 7ð 7ð 37ð ð ð ð ð ð ð ð r   )Ú
__future__r   r   Ú__all__r   r   r   r   ú<module>r      s[   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€ð ˆ,€ð$ð $ð $ð $ð $ñ $ô $ð $ð $ð $r   