--- /dev/null
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License.
+
+import contextlib
+try:
+ from io import StringIO
+except ImportError:
+ from StringIO import StringIO # 2.7
+import sys
+
+
+@contextlib.contextmanager
+def noop_cm():
+ yield
+
+
+@contextlib.contextmanager
+def hide_stdio():
+ """Swallow stdout and stderr."""
+ ignored = IgnoredIO()
+ sys.stdout = ignored
+ sys.stderr = ignored
+ try:
+ yield
+ finally:
+ sys.stdout = sys.__stdout__
+ sys.stderr = sys.__stderr__
+
+
+class IgnoredIO(StringIO):
+ """A noop "file"."""
+ def write(self, msg):
+ pass