|
import streamlit as st |
|
from io import StringIO |
|
import contextlib |
|
import sys |
|
|
|
|
|
original_stdout = sys.stdout |
|
original_stderr = sys.stderr |
|
sys.stdout = StringIO() |
|
sys.stderr = StringIO() |
|
|
|
@st.cache |
|
def capture_logs(func): |
|
with contextlib.redirect_stdout(sys.stdout), contextlib.redirect_stderr(sys.stderr): |
|
func() |
|
|
|
|
|
def get_captured_logs(): |
|
captured_stdout = sys.stdout.getvalue() |
|
captured_stderr = sys.stderr.getvalue() |
|
return captured_stdout, captured_stderr |
|
|
|
|
|
def restore_original_streams(): |
|
sys.stdout = original_stdout |
|
sys.stderr = original_stderr |
|
|