import platform | |
import shutil | |
from contextlib import contextmanager | |
from time import sleep | |
from hw_asr.utils.parse_config import ConfigParser | |
def clear_log_folder_after_use(config_parser: ConfigParser): | |
# this context manager deletes the log folders weather the body was executed succesfully or not | |
try: | |
yield config_parser | |
finally: | |
if platform.system() == "Windows": | |
# Running unittest on windows results in a delete lock on the log directories just skip | |
# this cleanup for windows and wait 1s to have a different experiment name. | |
# (if you know how to fix it, you are welcome to make pull request) | |
sleep(1) | |
else: | |
shutil.rmtree(config_parser.save_dir) | |
shutil.rmtree(config_parser.log_dir) | |