|
import os |
|
import warnings |
|
from IPython import get_ipython |
|
|
|
|
|
class suppress_output: |
|
def __enter__(self): |
|
self._stdout = os.dup(1) |
|
self._stderr = os.dup(2) |
|
self._null = os.open(os.devnull, os.O_RDWR) |
|
os.dup2(self._null, 1) |
|
os.dup2(self._null, 2) |
|
return self |
|
|
|
def __exit__(self, *args): |
|
|
|
os.dup2(self._stdout, 1) |
|
os.dup2(self._stderr, 2) |
|
|
|
os.close(self._stdout) |
|
os.close(self._stderr) |
|
os.close(self._null) |
|
|
|
def is_notebook() -> bool: |
|
""" |
|
Returns True if running in a Jupyter notebook, False otherwise. |
|
""" |
|
try: |
|
|
|
shell = get_ipython().__class__.__name__ |
|
|
|
if shell == 'ZMQInteractiveShell': |
|
return True |
|
elif shell == 'TerminalInteractiveShell': |
|
return False |
|
else: |
|
return False |
|
except NameError: |
|
return False |
|
|