o
    xi-                     @   s~   U d dl Z d dlmZ d dl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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    S/home/ubuntu/.local/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
   dictstr__annotations__r   r   r   r   r   r   <module>   s   
 