#!/usr/bin/env python3
-from abc import abstractmethod
import difflib
import io
import logging
import re
import sys
+from abc import abstractmethod
from typing import Any, Callable, Dict, Iterable, Optional, Tuple
from overrides import overrides
class StdoutInterceptor(io.TextIOBase):
def __init__(self):
- self.saved_stdout: Optional[io.TextIOBase] = None
+ self.saved_stdout: io.TextIO = None
self.buf = ''
@abstractmethod
def write(self, s: str):
pass
- def __enter__(self) -> None:
+ def __enter__(self):
self.saved_stdout = sys.stdout
sys.stdout = self
- return None
+ return self
- def __exit__(self, *args) -> bool:
+ def __exit__(self, *args) -> Optional[bool]:
sys.stdout = self.saved_stdout
print(self.buf)
return None