Source code for immuneML.util.PathBuilder
# quality: gold
import errno
import os
import shutil
import warnings
from pathlib import Path
[docs]
class PathBuilder:
[docs]
@staticmethod
def build(path, warn_if_exists=False):
path = Path(path)
if warn_if_exists and path.is_dir():
warnings.warn(f"PathBuilder: directory {path} already exists. Writing in the existing directory...", RuntimeWarning)
else:
try:
os.makedirs(path)
except OSError as e:
if e.errno != errno.EEXIST:
raise
return path
[docs]
@staticmethod
def remove_old_and_build(path):
path = Path(path)
if path.is_dir():
shutil.rmtree(path)
path.mkdir(parents=True)
return path