
    _iN                    z    d Z ddlmZ ddlZddlZddlmZmZmZ  G d dej	        e                   Z
ddddZdS )zA custom asyncio.Task that allows checking if a task has been sent a cancellation request.
Can be removed once we drop Python 3.10 support in favor of asyncio.Task.cancelling.    )annotationsN)Any	CoroutineOptionalc                  D     e Zd Zddd fd	Zdd fdZddZddZ xZS )_TaskNnamecoroCoroutine[Any, Any, Any]r
   Optional[str]returnNonec                   t                                          ||           d| _        t          j        |            d S )Nr	   r   )super__init___cancel_requestsasyncio_register_task)selfr   r
   	__class__s      8D:\Nbitz\venv\Lib\site-packages\pymongo/_asyncio_task.pyr   z_Task.__init__   s?    D))) !t$$$$$    msgboolc                h    | xj         dz  c_         t                                          |          S )N   )r   )r   r   cancel)r   r   r   s     r   r   z_Task.cancel!   s/    "ww~~#~&&&r   intc                F    | j         dk    r| xj         dz  c_         | j         S )Nr   r   r   r   s    r   uncancelz_Task.uncancel%   s-     1$$!!Q&!!$$r   c                    | j         S Nr!   r"   s    r   
cancellingz_Task.cancelling*   s    $$r   )r   r   r
   r   r   r   r%   )r   r   r   r   )r   r   )__name__
__module____qualname__r   r   r#   r&   __classcell__)r   s   @r   r   r      s        PT % % % % % % % %
' ' ' ' ' ' '% % % %
% % % % % % % %r   r   r	   r   r   r
   r   r   asyncio.Task[Any]c               p    t           j        dk    rt          j        | |          S t	          | |          S )N)      r	   )sysversion_infor   create_taskr   )r   r
   s     r   r1   r1   .   s9    
7"""4d3333D!!!!r   )r   r   r
   r   r   r+   )__doc__
__future__r   r   r/   typingr   r   r   Taskr   r1    r   r   <module>r7      s   X X # " " " " "  



 + + + + + + + + + +% % % % %GL % % %& JN " " " " " " " "r   