Source code for gain_calculator.core.utility

# -*- coding: utf-8 -*-

import contextlib
import os
import sys


@contextlib.contextmanager
def no_stdout(output=os.devnull):
    sys.stdout.flush()  # <--- important when redirecting to files
    save_stdout = sys.stdout
    new_stdout = os.dup(1)
    devnull = os.open(output, os.O_WRONLY)
    os.dup2(devnull, 1)
    os.close(devnull)
    sys.stdout = os.fdopen(new_stdout, 'w')
    yield
    sys.stdout = save_stdout


# taken from https://gist.github.com/aubricus/f91fb55dc6ba5557fbab06119420dd6a