#!/usr/bin/env python # # __init__.py - # # Author: Paul McCarthy # import os import shlex import tempfile import contextlib as ctxlib import subprocess as sp import fsl_ci_utils.conda_api as api # noqa # pylint: disable=unused-import import fsl_ci_utils.conda as conda # noqa # pylint: disable=unused-import def fprint(*args, **kwargs): """Print with flush=True. """ print(*args, **kwargs, flush=True) @ctxlib.contextmanager def tempdir(): """Context manager to create, and change into, a temporary directory, and then afterwards delete it and change back to the original working directory. """ with tempfile.TemporaryDirectory() as td: prevdir = os.getcwd() os.chdir(td) try: yield td finally: os.chdir(prevdir) @ctxlib.contextmanager def indir(dirname): """Context manager to change into a directory, and then afterwards change back to the original working directory. """ prevdir = os.getcwd() os.chdir(dirname) try: yield finally: os.chdir(prevdir) def sprun(cmd, **kwargs): """Runs the given command with subprocess.run. """ print(f'Running {cmd}') cmd = shlex.split(cmd) return sp.run(cmd, check=True, **kwargs)