def create_new_experiment()

in experiment_utils/experiment_repo.py [0:0]


    def create_new_experiment(self, hyperparameters,
                              name='', description='', verbose=True):
        
        new_id = self.gen_short_uuid()
        # get job IDs from cluster
        job_id = ""
        try:
            # HYDRA + SUBMITIT
            if submitit.JobEnvironment().job_id is not None:
                job_id = submitit.JobEnvironment().job_id
        except:
            print("Does not use submitit")
        new_id = new_id + "_" + job_id
        creation_time = datetime.now(
            timezone.utc).strftime('%Y-%m-%d_%H-%M-%S_%Z')
        username = getpass.getuser()
        # name enables extra name for experiment ID
        # experiment_id_by_name maps name to ID
        if name != '':
            assert name not in self.experiment_id_by_name
            assert name not in self.experiments
        new_experiment = {'id': new_id,
                          'hyperparameters': hyperparameters,
                          'username': username,
                          'name': name,
                          'description': description,
                          'creation_time': creation_time,
                          'best_acc1': -1,
                          'acc1': -1,
                          'acc5': -1,
                          'val_loss': -1,
                          }
        self.experiments[new_id] = new_experiment
        if name != '':
            self.experiment_id_by_name[name] = new_id
        
        # save experiment metadata in json file
        local_exp_json_folder = os.path.join(self.metadata_filepath,
            self.local_dir_name)
        print(local_exp_json_folder)
        if not os.path.isdir(local_exp_json_folder):
            os.makedirs(local_exp_json_folder)
        json_filename_local = new_id + "_exp.json"
        self.experiment_metadata_filepath_local = os.path.join(
            local_exp_json_folder, json_filename_local)
        self.store_experiment_metadata_local()
        
        if verbose:
            print(f'Created a new experiment with id "{new_id}"')

        return new_id