In an application that I'm writing the user can provide a class which will then be trial runned in a thread to see if it throws any exceptions.
However, I want to suppress any printing by that class in that thread. I know how to do this based on this solution, but my question is if this will block the printing for the whole application? So when this thread is running can other threads still print to the console?
EDIT: Adding example code from that solutions answer for your convenience:
import os, sys
class HiddenPrints:
def __enter__(self):
self._original_stdout = sys.stdout
sys.stdout = open(os.devnull, 'w')
def __exit__(self, exc_type, exc_val, exc_tb):
sys.stdout.close()
sys.stdout = self._original_stdout
with HiddenPrints():
print("This will not be printed")
print("This will be printed as before")