summaryrefslogtreecommitdiffstats
path: root/src/python/redirect.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/python/redirect.py')
-rw-r--r--src/python/redirect.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/python/redirect.py b/src/python/redirect.py
index 498fe150..0afccb77 100644
--- a/src/python/redirect.py
+++ b/src/python/redirect.py
@@ -25,6 +25,23 @@ def _dup( f ):
os.close(fd)
@contextmanager
+def save_stdout( src = sys.stdout ):
+ """
+ Redirect
+ """
+ fd = os.dup( src.fileno() )
+ own = True
+
+ try:
+ with os.fdopen( fd, "w", 0) as f:
+ own = False
+ yield f
+ except:
+ if own:
+ os.close(fd)
+ raise
+
+@contextmanager
def redirect(dst = null_file, src = sys.stdout):
"""