Source code for ccobra.benchmark.contextmanager

""" Model import context manager to temporarily switch working directories.

"""

import sys
import os
from contextlib import contextmanager


[docs]@contextmanager def dir_context(path): """ Context manager for the working directory. Stores the current working directory before switching it. Finally, resets to the old wd. Parameters ---------- path : str String to set the working directory to. """ context = os.path.abspath(path) if os.path.isfile(context): context = os.path.dirname(context) old_dir = os.getcwd() os.chdir(context) sys.path.append(context) try: yield finally: os.chdir(old_dir) sys.path.remove(context)