Source code for snakemake.common.workdir_handler
from dataclasses import dataclass, field
import os
from pathlib import Path
from typing import Optional
from snakemake.logging import logger
[docs]
@dataclass
class WorkdirHandler:
workdir: Optional[Path] = None
olddir: Optional[Path] = field(init=False, default=None)
def change_to(self):
if self.workdir is not None:
self.olddir = Path.cwd()
if not self.workdir.exists():
logger.info(f"Creating specified working directory {self.workdir}.")
self.workdir.mkdir(parents=True)
os.chdir(self.workdir)
def change_back(self):
if self.workdir is not None:
os.chdir(self.olddir)