diff --git a/autosklearn/ensemble_builder.py b/autosklearn/ensemble_builder.py index 56f06dd086..a2d90dc601 100644 --- a/autosklearn/ensemble_builder.py +++ b/autosklearn/ensemble_builder.py @@ -257,13 +257,15 @@ def read_ensemble_preds(self): if self.shared_mode is False: pred_path = os.path.join( - self.dir_ensemble, - 'predictions_ensemble_%s_*.npy' % self.seed) + glob.escape(self.dir_ensemble), + 'predictions_ensemble_%s_*.npy' % self.seed, + ) # pSMAC else: pred_path = os.path.join( - self.dir_ensemble, - 'predictions_ensemble_*_*.npy') + glob.escape(self.dir_ensemble), + 'predictions_ensemble_*_*.npy', + ) y_ens_files = glob.glob(pred_path) # no validation predictions so far -- no files @@ -453,13 +455,21 @@ def get_valid_test_preds(self, selected_keys: list): for k in selected_keys: valid_fn = glob.glob( - os.path.join(self.dir_valid, 'predictions_valid_%d_%d.npy' - % (self.read_preds[k]["seed"], - self.read_preds[k]["num_run"]))) + os.path.join( + glob.escape(self.dir_valid), + 'predictions_valid_%d_%d.npy' % ( + self.read_preds[k]["seed"], + self.read_preds[k]["num_run"]) + ) + ) test_fn = glob.glob( - os.path.join(self.dir_test, 'predictions_test_%d_%d.npy' % - (self.read_preds[k]["seed"], - self.read_preds[k]["num_run"]))) + os.path.join( + glob.escape(self.dir_test), + 'predictions_test_%d_%d.npy' % ( + self.read_preds[k]["seed"], + self.read_preds[k]["num_run"]) + ) + ) # TODO don't read valid and test if not changed if len(valid_fn) == 0: diff --git a/autosklearn/util/backend.py b/autosklearn/util/backend.py index 858122bc2b..03dfafac98 100644 --- a/autosklearn/util/backend.py +++ b/autosklearn/util/backend.py @@ -244,7 +244,7 @@ def get_smac_output_directory_for_run(self, seed): def get_smac_output_glob(self, smac_run_id: Union[str, int] = 1) -> str: return os.path.join( - self.temporary_directory, + glob.escape(self.temporary_directory), 'smac3-output', 'run_%s' % str(smac_run_id), ) @@ -346,8 +346,9 @@ def save_model(self, model, idx, seed): def list_all_models(self, seed): model_directory = self.get_model_dir() if seed >= 0: - model_files = glob.glob(os.path.join(model_directory, - '%s.*.model' % seed)) + model_files = glob.glob( + os.path.join(glob.escape(model_directory), '%s.*.model' % seed) + ) else: model_files = os.listdir(model_directory) model_files = [os.path.join(model_directory, mf) @@ -408,9 +409,11 @@ def load_ensemble(self, seed): self.logger.warning('Directory %s does not exist' % ensemble_dir) return None + print(seed) if seed >= 0: - indices_files = glob.glob(os.path.join(ensemble_dir, - '%s.*.ensemble' % seed)) + indices_files = glob.glob( + os.path.join(glob.escape(ensemble_dir), '%s.*.ensemble' % seed) + ) indices_files.sort() else: indices_files = os.listdir(ensemble_dir) @@ -419,6 +422,7 @@ def load_ensemble(self, seed): with open(indices_files[-1], 'rb') as fh: ensemble_members_run_numbers = pickle.load(fh) + print(indices_files) return ensemble_members_run_numbers