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)