Source code for pettingzoo.utils.capture_stdout
import io
import sys
[docs]
class capture_stdout:
    r"""Class allowing to capture stdout.
    Example:
        >>> from pettingzoo.utils.capture_stdout import capture_stdout
        >>> with capture_stdout() as var:
        ...     print("test")
        ...     data = var.getvalue()
        ...
        >>> data
        'test\n'
    """
    def __init__(self):
        self.old_stdout = None
    def __enter__(self) -> io.StringIO:
        self.old_stdout = sys.stdout
        self.buff = io.StringIO()
        sys.stdout = self.buff
        return self.buff
    def __exit__(self, type, value, traceback):
        sys.stdout = self.old_stdout
        self.buff.close()