Ë
    ïñþiY  ã            
       óp   — d Z ddlmZmZmZ ddlZddlmZ ddlm	Z	 	 ddee
gee	   f   de
ded	ee	   fd
„Zy)uæ   
Shared polling utilities for task operations.

This module provides generic polling logic that works for both clientâ†’server
and serverâ†’client task polling.

WARNING: These APIs are experimental and may change without notice.
é    )ÚAsyncIteratorÚ	AwaitableÚCallableN)Úis_terminal)ÚGetTaskResultÚget_taskÚtask_idÚdefault_interval_msÚreturnc                óà   K  — 	  | |«      ƒ d{  –—† }|­–— t        |j                  «      ry|j                  �|j                  n|}t        j                  |dz  «      ƒ d{  –—†  Œf7 ŒZ7 Œ­w)uà  
    Poll a task until it reaches terminal status.

    This is a generic utility that works for both clientâ†’server and serverâ†’client
    polling. The caller provides the get_task function appropriate for their direction.

    Args:
        get_task: Async function that takes task_id and returns GetTaskResult
        task_id: The task to poll
        default_interval_ms: Fallback poll interval if server doesn't specify

    Yields:
        GetTaskResult for each poll
    Niè  )r   ÚstatusÚpollIntervalÚanyioÚsleep)r   r	   r
   r   Úinterval_mss        úe/root/aria/mcps/aria-brain/venv/lib/python3.12/site-packages/mcp/shared/experimental/tasks/polling.pyÚpoll_until_terminalr      sj   è ø€ ð& Ù Ó(×(ˆØ‹ä�v—}‘}Ô%Øà-3×-@Ñ-@Ð-L�f×)Ò)ÐReˆÜ�k‰k˜+¨Ñ,Ó-×-Ð-ð Ø(øð 	.ús"   ‚A.�A*�AA.Á$A,Á%A.Á,A.)iô  )Ú__doc__Úcollections.abcr   r   r   r   Ú%mcp.shared.experimental.tasks.helpersr   Ú	mcp.typesr   ÚstrÚintr   © ó    r   ú<module>r      s_   ðñ÷ ?Ñ >ã å =Ý #ð  #ñ.Ø˜�u˜i¨Ñ6Ð6Ñ7ð.àð.ð ð.ð �=Ñ!ô	.r   