o
    -wi3                     @   s   U d dl Z d dlmZ d dlmZmZmZmZmZ ededef dZ	ddiZ
eeef ed	< d
ede	fddZG dd dZdS )    N)wraps)AnyCallableDictTypeVarcastFuncT.)boundzreport-editing:v0WANDB_REQUIRE_REPORT_EDITING_V0requirement_env_var_mappingrequirementreturnc                    s*   t   dtdtf fdd}tt|S )z7Decorate functions to gate features with wandb.require.funcr   c                    s0   t  dtdtdtf fdd}tt|S )Nargskwargsr   c                     s(   t  stdd| i |S )Nz4You need to enable this feature with `wandb.require(z)`)osgetenv	Exception)r   r   )env_varr   r    \/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/wandb_require_helpers.pywrapper   s
   

z'requires.<locals>.deco.<locals>.wrapper)r   r   r   r   )r   r   r   r   )r   r   deco   s    
zrequires.<locals>.deco)r   r   r   )r   r   r   r   r   requires   s   
r   c                   @   s.   e Zd ZdZd
ddZd
ddZd
dd	ZdS )RequiresMixin r   Nc                 C      |    d S N_check_if_requirements_metselfr   r   r   __init__!      zRequiresMixin.__init__c                 C   r   r   r   r!   r   r   r   __post_init__$   r$   zRequiresMixin.__post_init__c                 C   s*   t | j }t|std| j dd S )Nz=You must explicitly enable this feature with `wandb.require("z)")r   r   r   r   r   )r"   r   r   r   r   r    '   s   

z(RequiresMixin._check_if_requirements_met)r   N)__name__
__module____qualname__r   r#   r%   r    r   r   r   r   r      s
    

r   )r   	functoolsr   typingr   r   r   r   r   r   r   str__annotations__r   r   r   r   r   r   <module>   s   
 