diff --git a/species/data/isochrone_data/iso_linder2019.py b/species/data/isochrone_data/iso_linder2019.py index 5c94ddd..fe78aea 100644 --- a/species/data/isochrone_data/iso_linder2019.py +++ b/species/data/isochrone_data/iso_linder2019.py @@ -1,5 +1,3 @@ -import shutil - from pathlib import Path import h5py @@ -9,7 +7,7 @@ from typeguard import typechecked from species.core import constants -from species.util.data_util import extract_tarfile +from species.util.data_util import extract_tarfile, remove_directory @typechecked @@ -79,7 +77,7 @@ def add_linder2019(database: h5py._hl.files.File, input_path: str) -> None: # unpacked because the file permissions are set to read-only # such that the extract_tarfile will cause an error if the # files need to be overwritten - shutil.rmtree(data_folder) + remove_directory(data_folder) data_folder.mkdir() diff --git a/species/data/spec_data/spec_allers2013.py b/species/data/spec_data/spec_allers2013.py index 7b385a9..817b849 100644 --- a/species/data/spec_data/spec_allers2013.py +++ b/species/data/spec_data/spec_allers2013.py @@ -6,8 +6,6 @@ `_. """ -import shutil - from pathlib import Path import h5py @@ -19,7 +17,7 @@ from astroquery.simbad import Simbad from typeguard import typechecked -from species.util.data_util import extract_tarfile +from species.util.data_util import extract_tarfile, remove_directory from species.util.query_util import get_simbad @@ -87,7 +85,7 @@ def add_allers2013(input_path: str, database: h5py._hl.files.File) -> None: ) if data_folder.exists(): - shutil.rmtree(data_folder) + remove_directory(data_folder) print(f"\nUnpacking {print_text} (173 kB)...", end="", flush=True) extract_tarfile(str(data_file), str(data_folder)) diff --git a/species/data/spec_data/spec_bonnefoy2014.py b/species/data/spec_data/spec_bonnefoy2014.py index d085694..eb260cc 100644 --- a/species/data/spec_data/spec_bonnefoy2014.py +++ b/species/data/spec_data/spec_bonnefoy2014.py @@ -5,7 +5,6 @@ """ import gzip -import shutil from pathlib import Path @@ -16,7 +15,7 @@ from astropy.io import fits from typeguard import typechecked -from species.util.data_util import extract_tarfile +from species.util.data_util import extract_tarfile, remove_directory @typechecked @@ -58,7 +57,7 @@ def add_bonnefoy2014(input_path: str, database: h5py._hl.files.File) -> None: ) if data_folder.exists(): - shutil.rmtree(data_folder) + remove_directory(data_folder) print(f"\nUnpacking {print_text} (2.3 MB)...", end="", flush=True) extract_tarfile(str(data_file), str(data_folder)) diff --git a/species/data/spec_data/spec_kesseli2017.py b/species/data/spec_data/spec_kesseli2017.py index 51015ef..18832d7 100644 --- a/species/data/spec_data/spec_kesseli2017.py +++ b/species/data/spec_data/spec_kesseli2017.py @@ -3,8 +3,6 @@ Kesseli et al. (2017) to the database. """ -import shutil - from pathlib import Path import h5py @@ -14,7 +12,7 @@ from astropy.io import fits from typeguard import typechecked -from species.util.data_util import extract_tarfile +from species.util.data_util import extract_tarfile, remove_directory @typechecked @@ -53,7 +51,7 @@ def add_kesseli2017(input_path: str, database: h5py._hl.files.File) -> None: ) if data_folder.exists(): - shutil.rmtree(data_folder) + remove_directory(data_folder) print( "\nUnpacking SDSS spectra from Kesseli et al. 2017 (145 MB)...", diff --git a/species/util/data_util.py b/species/util/data_util.py index aeccbfa..84f013d 100644 --- a/species/util/data_util.py +++ b/species/util/data_util.py @@ -1065,3 +1065,30 @@ def convert_units( ) return flux_out + + +@typechecked +def remove_directory(dir_in: Path) -> None: + """ + Function for removing all files and directories within a + specified input directory. + + Parameters + ---------- + dir_in : Path + Directory that should be recursively removed, that is, + including all the files and directories within ``dir_in``. + + Returns + ------- + NoneType + None + """ + + for path_item in dir_in.iterdir(): + if path_item.is_dir(): + remove_directory(path_item) + else: + path_item.unlink() + + dir_in.rmdir() diff --git a/species/util/fit_util.py b/species/util/fit_util.py index 5a36cf1..e7daf43 100644 --- a/species/util/fit_util.py +++ b/species/util/fit_util.py @@ -309,12 +309,14 @@ def get_residuals( else: n_fixed = 0 - warnings.warn("The 'fixed_param' group is not found in " - f"the results of {tag}. Probably the " - "results were obtained with an older " - "version of the package. Please rerun " - "FitModel to update the results. Setting " - "the number of fixed parameters to zero.") + warnings.warn( + "The 'fixed_param' group is not found in " + f"the results of {tag}. Probably the " + "results were obtained with an older " + "version of the package. Please rerun " + "FitModel to update the results. Setting " + "the number of fixed parameters to zero." + ) print("\nModel parameters:") for param_idx in range(n_param):