Ë
    Ü_Ëi  ã                  óv   — 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y)
z¯A 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©Únamec               ó`   •— t         ‰| �  ||¬«       d| _        t        j                  | «       y )Nr	   r   )ÚsuperÚ__init__Ú_cancel_requestsÚasyncioÚ_register_task)ÚselfÚcoror
   Ú	__class__s      €úX/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/_asyncio_task.pyr   z_Task.__init__   s+   ø€ Ü‰Ñ˜ DÐÔ)Ø !ˆÔÜ×Ñ˜tÕ$ó    c                óN   •— | xj                   dz  c_         t        ‰| �	  |¬«      S )Né   )Úmsg)r   r   Úcancel)r   r   r   s     €r   r   z_Task.cancel!   s%   ø€ Ø×Ò Ñ"ÕÜ‰w‰~ #ˆ~Ó&Ð&r   c                ób   — | j                   dkD  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   úCoroutine[Any, Any, Any]r
   úOptional[str]ÚreturnÚNoner   )r   r"   r#   Úbool)r#   Úint)Ú__name__Ú
__module__Ú__qualname__r   r   r   r    Ú__classcell__)r   s   @r   r   r      s   ø„ ØPT÷ %ö
'ó%÷
%r   r   r	   c               óp   — t         j                  dk\  rt        j                  | |¬«      S t	        | |¬«      S )N)é   é   r	   )ÚsysÚversion_infor   Úcreate_taskr   )r   r
   s     r   r0   r0   .   s0   € Ü
×Ñ˜7Ò"Ü×"Ñ" 4¨dÔ3Ð3Ü�˜DÔ!Ð!r   )r   r!   r
   r"   r#   zasyncio.Task[Any])Ú__doc__Ú
__future__r   r   r.   Útypingr   r   r   ÚTaskr   r0   © r   r   ú<module>r6      s=   ðñXõ #ã Û 
ß +Ñ +ô%ˆG�L‰L˜Ñô %ð& JNö "r   