Source code for pymt.utils.utils

import contextlib
import os
from functools import partial

import click

out = partial(click.secho, bold=True, err=True)
err = partial(click.secho, fg="red", err=True)


[docs]@contextlib.contextmanager def as_cwd(path): prev_cwd = os.getcwd() os.chdir(path) yield os.chdir(prev_cwd)
[docs]@contextlib.contextmanager def suppress_stdout(): null_fds = [os.open(os.devnull, os.O_RDWR) for x in range(2)] # Save the actual stdout (1) and stderr (2) file descriptors. save_fds = [os.dup(1), os.dup(2)] os.dup2(null_fds[0], 1) os.dup2(null_fds[1], 2) yield # Re-assign the real stdout/stderr back to (1) and (2) os.dup2(save_fds[0], 1) os.dup2(save_fds[1], 2) # Close the null files for fd in null_fds + save_fds: os.close(fd)