o
    ni                     @   sH   d Z ddlZddlmZmZ ddlmZ ddlm	Z	 G dd de	Z
dS )	zMessageFuturePoll - Derived from MessageFuture but implementing polling loop.

MessageFuture represents a message result of an asynchronous operation.

MessageFuturePoll implements a polling loop to periodically query for a
completed async operation.

    N)AnyOptional)wandb_internal_pb2   )MessageFuturec                       sr   e Zd ZU eed< eed< dededdf fddZdd	ee dee	j
 fd
dZdd	ee ddfddZ  ZS )MessageFuturePoll_fn_xidfnxidreturnNc                    s   t    || _|| _d S N)super__init__r   r	   )selfr
   r   	__class__ e/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/interface/message_future_poll.pyr      s   

zMessageFuturePoll.__init__timeoutc                 C   s    | j |d | j r| jS d S )N)r   )_poll_object_readyis_set_object)r   r   r   r   r   get   s   
zMessageFuturePoll.getc                 C   s   | j  rd S d}t }d}|sA| j| jd}|r"| | d}qt }|r1|| |kr1d}qt| t|d d}|rd S d S )NFg      ?)r   T      )r   r   timer   r	   _set_objectsleepmin)r   r   done
start_time
sleep_timeresultnow_timer   r   r   r   !   s$   


zMessageFuturePoll._pollr   )__name__
__module____qualname__r   __annotations__strr   r   intpbResultr   r   __classcell__r   r   r   r   r      s   
  r   )__doc__r   typingr   r   wandb.protor   r,   message_futurer   r   r   r   r   r   <module>   s    	