|
''' |
|
* Project : Screenipy |
|
* Author : Pranjal Joshi |
|
* Created : 07/05/2021 |
|
* Description : Class for supressing stdout & stderr |
|
''' |
|
|
|
|
|
import os, sys |
|
|
|
class SuppressOutput: |
|
def __init__(self,suppress_stdout=False,suppress_stderr=False): |
|
self.suppress_stdout = suppress_stdout |
|
self.suppress_stderr = suppress_stderr |
|
self._stdout = None |
|
self._stderr = None |
|
def __enter__(self): |
|
devnull = open(os.devnull, "w") |
|
if self.suppress_stdout: |
|
self._stdout = sys.stdout |
|
sys.stdout = devnull |
|
if self.suppress_stderr: |
|
self._stderr = sys.stderr |
|
sys.stderr = devnull |
|
def __exit__(self, *args): |
|
if self.suppress_stdout: |
|
sys.stdout = self._stdout |
|
if self.suppress_stderr: |
|
sys.stderr = self._stderr |