def from_environment_or_defaults(cls, environment=None): """Create a Run object taking values from the local environment where possible. The run ID comes from WANDB_RUN_ID or is randomly generated. The run mode ("dryrun", or "run") comes from WANDB_MODE or defaults to "dryrun". The run directory comes from WANDB_RUN_DIR or is generated from the run ID. The Run will have a .config attribute but its run directory won't be set by default. """ if environment is None: environment = os.environ run_id = environment.get('WANDB_RUN_ID') resume = environment.get('WANDB_RESUME') storage_id = environment.get('WANDB_RUN_STORAGE_ID') mode = environment.get('WANDB_MODE') run_dir = environment.get('WANDB_RUN_DIR') sweep_id = environment.get('WANDB_SWEEP_ID') program = environment.get('WANDB_PROGRAM') wandb_dir = environment.get('WANDB_DIR') config = Config.from_environment_or_defaults() run = cls(run_id, mode, run_dir, config, sweep_id, storage_id, program=program, wandb_dir=wandb_dir, resume=resume) return run
def from_environment_or_defaults(cls, environment=None): """Create a Run object taking values from the local environment where possible. The run ID comes from WANDB_RUN_ID or is randomly generated. The run mode ("dryrun", or "run") comes from WANDB_MODE or defaults to "dryrun". The run directory comes from WANDB_RUN_DIR or is generated from the run ID. The Run will have a .config attribute but its run directory won't be set by default. """ if environment is None: environment = os.environ run_id = environment.get(env.RUN_ID) resume = environment.get(env.RESUME) storage_id = environment.get(env.RUN_STORAGE_ID) mode = environment.get(env.MODE) disabled = InternalApi().disabled() if not mode and disabled: mode = "dryrun" elif disabled and mode != "dryrun": wandb.termwarn( "WANDB_MODE is set to run, but W&B was disabled. Run `wandb on` to remove this message" ) elif disabled: wandb.termlog( 'W&B is disabled in this directory. Run `wandb on` to enable cloud syncing.' ) group = environment.get(env.RUN_GROUP) job_type = environment.get(env.JOB_TYPE) run_dir = environment.get(env.RUN_DIR) sweep_id = environment.get(env.SWEEP_ID) program = environment.get(env.PROGRAM) description = environment.get(env.DESCRIPTION) args = env.get_args() wandb_dir = env.get_dir() tags = env.get_tags() config = Config.from_environment_or_defaults() run = cls(run_id, mode, run_dir, group, job_type, config, sweep_id, storage_id, program=program, description=description, args=args, wandb_dir=wandb_dir, tags=tags, resume=resume) return run
def from_environment_or_defaults(cls, environment=None): """Create a Run object taking values from the local environment where possible. The run ID comes from WANDB_RUN_ID or is randomly generated. The run mode ("dryrun", or "run") comes from WANDB_MODE or defaults to "dryrun". The run directory comes from WANDB_RUN_DIR or is generated from the run ID. The Run will have a .config attribute but its run directory won't be set by default. """ if environment is None: environment = os.environ run_id = environment.get('WANDB_RUN_ID') resume = environment.get('WANDB_RESUME') storage_id = environment.get('WANDB_RUN_STORAGE_ID') mode = environment.get('WANDB_MODE') disabled = Api().disabled() if not mode and disabled: mode = "dryrun" elif disabled and mode != "dryrun": wandb.termlog( "WARNING: WANDB_MODE is set to run, but W&B was disabled. Run `wandb on` to remove this message" ) elif disabled: wandb.termlog( 'W&B is disabled in this directory. Run `wandb on` to enable cloud syncing.' ) run_dir = environment.get('WANDB_RUN_DIR') sweep_id = environment.get('WANDB_SWEEP_ID') program = environment.get('WANDB_PROGRAM') wandb_dir = environment.get('WANDB_DIR') config = Config.from_environment_or_defaults() run = cls(run_id, mode, run_dir, config, sweep_id, storage_id, program=program, wandb_dir=wandb_dir, resume=resume) return run