import os import wandb from wandb import env from wandb.sdk import wandb_setup def sagemaker_auth(overrides=None, path=".", api_key=None): """Write a secrets.env file with the W&B ApiKey and any additional secrets passed. Args: overrides (dict, optional): Additional environment variables to write to secrets.env path (str, optional): The path to write the secrets file. """ settings = wandb_setup.singleton().settings current_api_key = wandb.wandb_lib.apikey.api_key(settings=settings) overrides = overrides or dict() api_key = overrides.get(env.API_KEY, api_key or current_api_key) if api_key is None: raise ValueError( "Can't find W&B ApiKey, set the WANDB_API_KEY env variable " "or run `wandb login`" ) overrides[env.API_KEY] = api_key with open(os.path.join(path, "secrets.env"), "w") as file: for k, v in overrides.items(): file.write(f"{k}={v}\n")