o
    xi                     @  sn   d dl mZ d dlZd dlZd dlZd dlZd dlZddlmZ ddlm	Z
 dd
dZdddZdddZdS )    )annotationsN   )config)filesrun_settingswandb.Settingsreturnboolc                   sx   t drdS t d}|sdS tjtj  d fddtdD }t dt }| d	| d	| | _	|| _
d
S )zeSet a run ID and group when using SageMaker.

    Returns whether the ID and group were updated.
    WANDB_RUN_IDFTRAINING_JOB_NAME c                 3  s    | ]}t  V  qd S )N)secretschoice).0_alphanumeric Y/home/ubuntu/.local/lib/python3.10/site-packages/wandb/integration/sagemaker/resources.py	<genexpr>    s    zset_run_id.<locals>.<genexpr>   CURRENT_HOST-T)osgetenvstringascii_lowercasedigitsjoinrangesocketgethostnamerun_id	run_group)r   r#   randomhostr   r   r   
set_run_id   s   


r&   settingsNonec                 C  s8   t   }r
| | t }|d }r|| _dS dS )z;Set global W&B settings based on the SageMaker environment.wandb_api_keyN)parse_sm_secretsupdate_from_env_varsr   parse_sm_configgetapi_key)r'   env	sm_configr.   r   r   r   set_global_settings)   s   


r1   dict[str, str]c                  C  sD   t  } tjtjr ttjD ]}| dd\}}|| |< q| S )z2We read our api_key from secrets.env in SageMaker.=r   )	dictr   pathexistssm_files
SM_SECRETSopenstripsplit)env_dictlinekeyvalr   r   r   r*   7   s   
r*   )r   r   r   r	   )r'   r   r   r(   )r   r2   )
__future__r   r   r   r    r   wandbr   r   r   r7   r&   r1   r*   r   r   r   r   <module>   s    

