
    ,hW                    j    d dl mZ d dlmZmZ d dlmZ ddlmZ erd dl	m
Z
 edd       ZddZdd	Zy
)    )annotations)AbstractContextManagercontextmanager)TYPE_CHECKING   )_core)	Generatorc              #    K   d}t        j                         }|j                  }|j                  }	 d | r)|j                  |k(  s|j                  |k(  rt	        d      | s*|j                  |k7  s|j                  |k7  rt	        d      yy# | s*|j                  |k7  s|j                  |k7  rt	        d      w w xY ww)z5Check if checkpoints are executed in a block of code.TNz'assert_checkpoints block did not yield!z$assert_no_checkpoints block yielded!)r   current_task_cancel_points_schedule_pointsAssertionError)expected__tracebackhide__taskorig_cancelorig_schedules        [/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/trio/testing/_checkpoints.py_assert_yields_or_notr      s      D%%K))M
I;.$2G2G=2X !JKK;.$2G2G=2X !GHH 3Y x;.$2G2G=2X !GHH 3Y s   /B?/B !-B?.B<<B?c                     d} t        d      S )a  Use as a context manager to check that the code inside the ``with``
    block either exits with an exception or executes at least one
    :ref:`checkpoint <checkpoints>`.

    Raises:
      AssertionError: if no checkpoint was executed.

    Example:
      Check that :func:`trio.sleep` is a checkpoint, even if it doesn't
      block::

         with trio.testing.assert_checkpoints():
             await trio.sleep(0)

    Tr   r   s    r   assert_checkpointsr       s       &&    c                     d} t        d      S )a  Use as a context manager to check that the code inside the ``with``
    block does not execute any :ref:`checkpoints <checkpoints>`.

    Raises:
      AssertionError: if a checkpoint was executed.

    Example:
      Synchronous code never contains any checkpoints, but we can double-check
      that::

         send_channel, receive_channel = trio.open_memory_channel(10)
         with trio.testing.assert_no_checkpoints():
             send_channel.send_nowait(None)

    TFr   r   s    r   assert_no_checkpointsr   4   s       ''r   N)r   boolreturnzGenerator[None, None, None])r   zAbstractContextManager[None])
__future__r   
contextlibr   r   typingr    r   collections.abcr	   r   r   r    r   r   <module>r%      s7    " =   ) I I&'((r   