o
    -wÖiÖ	  ã                   @   s‚   d Z ddlZddlZddlmZmZ ddlmZmZ e 	e
¡ZG dd„ dƒZdedefd	d
„Zdedefdd„ZG dd„ dƒZdS )zContext Keeper.é    N)ÚDictÚOptional)ÚRecordÚResultc                   @   s@   e Zd ZU ejed< d
dd„Zd
dd„Zedejfdd	„ƒZ	dS )ÚContextÚ_cancel_eventÚreturnNc                 C   s   t  ¡ | _d S ©N)Ú	threadingÚEventr   ©Úself© r   úW/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/internal/context.pyÚ__init__   ó   zContext.__init__c                 C   s   | j  ¡  d S r	   )r   Úsetr   r   r   r   Úcancel   r   zContext.cancelc                 C   s   | j S r	   )r   r   r   r   r   Úcancel_event   s   zContext.cancel_event©r   N)
Ú__name__Ú
__module__Ú__qualname__r
   r   Ú__annotations__r   r   Úpropertyr   r   r   r   r   r      s   
 


r   Úrecordr   c                 C   ó   | j j}|S r	   ©ÚcontrolÚmailbox_slot)r   Ú
context_idr   r   r   Úcontext_id_from_record   ó   r!   Úresultc                 C   r   r	   r   )r#   r    r   r   r   Úcontext_id_from_result#   r"   r$   c                   @   sŠ   e Zd ZU eeef ed< ddd„Zdede	e fdd„Z
d	edefd
d„Zd	ede	e fdd„Zd	eddfdd„Zd	edefdd„ZdS )ÚContextKeeperÚ_active_itemsr   Nc                 C   s
   i | _ d S r	   )r&   r   r   r   r   r   +   s   
zContextKeeper.__init__r   c                 C   s   t |ƒ}|sd S |  |¡}|S r	   )r!   Úadd)r   r   r    Úcontext_objr   r   r   Úadd_from_record.   s
   
zContextKeeper.add_from_recordr    c                 C   s   |sJ ‚t ƒ }|| j|< |S r	   )r   r&   )r   r    r(   r   r   r   r'   9   s   
zContextKeeper.addc                 C   s   | j  |¡}|S r	   )r&   Úget©r   r    Úitemr   r   r   r*   ?   s   zContextKeeper.getc                 C   s   |sd S | j  |d ¡}d S r	   )r&   Úpop)r   r    Ú_r   r   r   ÚreleaseC   s   zContextKeeper.releasec                 C   s   |   |¡}|r| ¡  dS dS )NTF)r*   r   r+   r   r   r   r   H   s
   
zContextKeeper.cancelr   )r   r   r   r   Ústrr   r   r   r   r   r)   r'   r*   r/   Úboolr   r   r   r   r   r%   (   s   
 
r%   )Ú__doc__Úloggingr
   Útypingr   r   Úwandb.proto.wandb_internal_pb2r   r   Ú	getLoggerr   Úloggerr   r0   r!   r$   r%   r   r   r   r   Ú<module>   s    
