import os | |
import warnings | |
# Define a context manager to suppress output | |
class suppress_output: | |
def __enter__(self): | |
self._stdout = os.dup(1) | |
self._stderr = os.dup(2) | |
self._null = os.open(os.devnull, os.O_RDWR) | |
os.dup2(self._null, 1) | |
os.dup2(self._null, 2) | |
return self | |
def __exit__(self, *args): | |
# First restore the original file descriptors | |
os.dup2(self._stdout, 1) | |
os.dup2(self._stderr, 2) | |
# Then close all our saved descriptors | |
os.close(self._stdout) | |
os.close(self._stderr) | |
os.close(self._null) | |