summaryrefslogtreecommitdiff
path: root/psutil/_compat.py
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-04-23 05:16:41 +0200
committerGitHub <noreply@github.com>2020-04-23 05:16:41 +0200
commit97796454d5a14b38b1a036958ad3dfe35faa3b4a (patch)
treea8432a83b26e39af084658b6f4bc3f4a4b8753fd /psutil/_compat.py
parent9e50354fa37da96040b9a23431c7cec9f6a5326d (diff)
downloadpsutil-97796454d5a14b38b1a036958ad3dfe35faa3b4a.tar.gz
MemoryLeakTest class enhancements (#1731)
Diffstat (limited to 'psutil/_compat.py')
-rw-r--r--psutil/_compat.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/psutil/_compat.py b/psutil/_compat.py
index 2965fd1b..64a5761e 100644
--- a/psutil/_compat.py
+++ b/psutil/_compat.py
@@ -5,13 +5,14 @@
"""Module which provides compatibility with older Python versions."""
import collections
+import contextlib
import errno
import functools
import os
import sys
__all__ = ["PY3", "long", "xrange", "unicode", "basestring", "u", "b",
- "lru_cache", "which", "get_terminal_size",
+ "lru_cache", "which", "get_terminal_size", "redirect_stderr",
"FileNotFoundError", "PermissionError", "ProcessLookupError",
"InterruptedError", "ChildProcessError", "FileExistsError"]
@@ -343,3 +344,17 @@ except ImportError:
return (res[1], res[0])
except Exception:
return fallback
+
+
+# python 3.4
+try:
+ from contextlib import redirect_stderr
+except ImportError:
+ @contextlib.contextmanager
+ def redirect_stderr(target):
+ original = sys.stderr
+ try:
+ sys.stderr = target
+ yield
+ finally:
+ sys.stderr = original