Source code for deepr.jobs.copy_dir

"""Copy Directory"""

from dataclasses import dataclass
import logging

from deepr.jobs import base
from deepr.io.path import Path


LOGGER = logging.getLogger(__name__)


[docs]@dataclass class CopyDir(base.Job): """Copy Directory. Overwrite destination by default""" source: str target: str skip_copy: bool = False overwrite: bool = True
[docs] def run(self): if self.skip_copy: LOGGER.info(f"NOT COPYING {self.source} to {self.target} (skip_copy=True)") return if self.overwrite and Path(self.target).is_dir(): Path(self.target).delete_dir() LOGGER.info(f"Copying {self.source} to {self.target}") Path(self.source).copy_dir(self.target)