o
    -wiW                     @  sb   d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
 er(ddlmZ G dd	 d	ZdS )
zmodule server.    )annotationsN)TYPE_CHECKINGAny)util)InternalApi)Settingsc                   @  s0   e Zd ZdddZddd
dZedddZdS )Serversettingsr   returnNonec                 C  s"   t |d| _i | _i | _|| _d S )N)default_settings)r   _api_viewer_flags	_settings)selfr	    r   Q/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/lib/server.py__init__   s   
zServer.__init__   timeoutint | floatc                 C  st   | j jrd S tj| jj|d}z| \}}W n
 ty    Y d S w | r'd S |\| _| _	t
| jdd| _d S )N)r   flagsz{})r   x_disable_viewerr   
async_callr   viewer_server_info	Exceptionis_aliver   _serverinfojsonloadsgetr   )r   r   async_viewerviewer_tupleviewer_threadr   r   r   query_with_timeout   s   zServer.query_with_timeoutdict[str, Any]c                 C  s   | j s| jjs|   | j S )a:  Returns information about the currently authenticated user.

        If the API key is valid, the following is returned:
        - id
        - entity
        - username
        - flags
        - teams

        If the API key is not valid or the server is not reachable,
        an empty dict is returned.
        )r   r   _offliner%   )r   r   r   r   viewer)   s   zServer.viewerN)r	   r   r
   r   )r   )r   r   r
   r   )r
   r&   )__name__
__module____qualname__r   r%   propertyr(   r   r   r   r   r      s
    
	r   )__doc__
__future__r   r   typingr   r   wandbr   
wandb.apisr   wandb.sdk.wandb_settingsr   r   r   r   r   r   <module>   s    